> 技术文档 > OpenCV 基础知识总结

OpenCV 基础知识总结


学习网站

  • https://zhuanlan.zhihu.com/p/483604320

命名空间

  • using namespace cv;

Mat

  • 作用
  • 格式
Mat image; //创建一个空图像image,大小为0Mat 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); //暂停,保持图像显示,等待按键结束