本文共 1401 字,大约阅读时间需要 4 分钟。
最近在整理一些OpenCV的基本视觉数据结构和函数,重新梳理自己的思路,也回顾了之前理解的内容。对于编程而言,细节决定成败,静下心来反而能收获意想不到的收获呢!专注力的重要性不言而喻,面对各种任务时都能保持一定的专注力是一个不错的习惯。
1. Point数据结构
点数据结构在图像处理中是基本的单元,用于表示二维坐标系中的点,主要包含x和y坐标。点的使用非常简单acos
Point myPoint; //声明一个点变量myPoint.x = 100; // 设置x坐标myPoint.y = 50; // 设置y坐标或者用构造函数初始化
Point myPoint(100, 50);2. Scalar颜色值向量
Scalar是OpenCV中表示颜色信息的通道向量,既包含四个元素(α、红、绿、蓝),但实际应用中通常只使用其中的三个或单个通道,而OpenCV图像默认存储是BGR格式。以下是常见用法示例
Scalar(255, 255, 255) // 表示白色Scalar(0, 0, 0) // 表示黑色需要注意的是,RGB和BGR的对应关系,其中红色对应蓝色通道,绿色对应绿色通道,蓝色对应红色通道。
3. Size图像尺寸
Size用于表示图像的宽度和高度,简单而实用的结构体
Size imgSize(1920, 1080); // 常见的分辨率示例4. Rect矩形表示
矩形数据结构用于表示图像中的矩形区域,其包含四个参数:左上角点、右下角点和矩形宽、高。下列是Rect的常用功能示例
Rect myRect(0, 0, 200, 100); // 矩形左上角在(0,0),宽度200、高度100Rect的功能包括面积计算、矩形合并与分割以及矩形的位置变换等。例如:
Rect intersectRect = rect1 & rect2; // 矩形交集运算Rect unionRect = rect1 | rect2; // 矩形并集运算矩形的具体位置和尺寸可以通过以下方式进行调整:
Rect movedRect = rect1 + Point(50, 60); // 向上移动50单位,向右60单位Rect scaledRect = rect1 + Size(-50, 100); // 以原矩形的左上角为顶点进行缩放,宽度减少50,高度增加1005. CVTColor颜色空间转换
CvtColor是处理颜色空间转换的核心函数,支持将图像从一种颜色空间转换为另一种颜色空间。常见的转换类型包括BGR到HSV、RGB到灰度等
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0); // 参数解析:src:输入图像数组dst:输出图像数组code:颜色转换代码dstCn:目标图像通道数,默认值为0(保持与原图像结构一致)使用样例:将BGR格式图像转换为HSV格式图像
cvtColor(srcImg, dstImg, COLOR_BGR2HSV); // 注意:在OpenCV3+版本中,COLOR_BGR2HSV已被替换为CV_BGR2HSV
转载地址:http://iegoz.baihongyu.com/