OpenCV-基础知识总结
目录
OpenCV 基础知识总结
学习网站
命名空间
- using namespace cv;
Mat
- 作用
- 创建图像(矩阵)
- 格式
Mat image; //创建一个空图像image,大小为0
Mat image(100,100,CV_8U); //指定矩阵大小(矩阵行数/列数)、数据类型
Mat image(100,100,CV_8U, 100); //指定矩阵大小、数据类型、初始值
Mat image(100,100,CV_8U, Scalar(100)); //对于灰度图像:可以直接给出初始值,也可以使用Scalar()
Mat image(100,100,CV_8UC3, Scalar(100,100,100)); //对于三通道图像,使用Scalar()
// 数据类型
// CV_8U:8位无符号型(0~255),即灰度图像
// CV_8UC3:三通道8位无符号型。三通道指:B(蓝)G(绿)R(红)。
- 扩展
image.rows //获取图像的高度,行数
image.cols //获取图像的宽度,列数
image.channels() //获取图像的通道数,彩色图=3,灰度图=1;
image.size //获取图像的尺寸,行*列;
image.empty()) //检测image有无数据,无数据返回“真”
imread
- 格式
- imread(图像路径, 图像形式);
- 示例
image = imread("1.jpg", IMREAD_COLOR);
image = imread("1.jpg", 1);
// 参数说明
IMREAD_COLOR //(1) 加载彩色图像(默认加载形式)
IMREAD_GRAYSCALE //(0) 加载灰度模式图像
IMREAD_UNCHANGED //(-1) 加载图像,包括alpha通道
imwrite
- 格式
- imwrite(保存图像名称及格式,图像名称)
- 示例
imwrite("1.png", image); //保存图像为png格式,文件名称为1
imshow
- 格式
- imshow(窗口名称,图像名称)
- 示例
namedWindow("IMAGE"); //创建显示窗口。不加这行代码,也能显示,默认窗口大小不能改变
imshow("IMAGE", image); //在窗口显示图像
cvtColor
NV12转RGB
- 示例
cv::cvtColor(SrcYUV, RGBImage, cv::COLOR_YUV2RGB_NV12)
I420转RGB
- 示例
cv::cvtColor(SrcYUV, RGBImage, cv::COLOR_YUV2RGB_I420)
rectangle
- 作用
- 绘制一个矩形轮廓或一个填充矩形,其两个相对的角是pt1和pt2
- 示例
cv::rectangle(image, cv::Point(100, 150), cv::Point(250, 300), cv::Scalar(0, 0, 255),4);
circle
- 作用
- 在图像上绘制圆
- 示例
cv::circle(image, cv::Point(417, 143), 95, 0, 3); //参数:图片、圆心、半径、颜色、轮廓厚度
putText
- 作用
- 在图像上写入文本
- 示例
cv::putText(image, "This is a dog", cv::Point(300, 261), cv::FONT_HERSHEY_PLAIN, 2.0, 255, 3); //参数:图片、文本内容、文本起始位置、字体类型、字体大小、字体颜色、文本厚度
Rect
- 作用
- 定义一个感兴趣区域
- 示例
Mat imageROI(image, Rect(0,0,10,10)); //定义感兴趣区域
waitKey
- 示例
waitKey(0); //暂停,保持图像显示,等待按键结束