OpenCV 基础知识总结

发布于:2025-09-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

学习网站

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

命名空间

  • 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); //暂停,保持图像显示,等待按键结束