点的表示:Point类

Point类数据结构表示二维坐标系下的点,即由其图像坐标x,y指定的2D点。

用法如下

Point point;
point.x = 10;
point.y = 8; 或者
Point point = Point(10, 8);

Point_、Point2i、Point互相等价。Point_、Point2f互相等价。

颜色的表示:Scalar类

注意OpenCV默认的图片通道存储顺序是BGR,即蓝绿红,而不是RGB。

Scalar()表示具有4个元素的数组,在OpenCV中被大量用于传递像素值,如RGB。如果用不到四个参数,则多余的参数不用写出。

用法如下

Scalar( a, b, c);
// 定义的RGB颜色值:红色分量为c,绿色分量为b,蓝色分量为a。

尺寸的表示:Size类

Size_、Size2i、Size等价

用法如下

// 可以用 xxx.width 和 xxx.height 获取 宽 和 高
Size(5 ,5); // 构造出的Size宽度和高度都为5,即xxx.width和xxx.height都为5

矩形的表示:Rect类

Rect 类的成员变量有x,y,width,height,分别表示左上角点的坐标和矩形的宽高。常用的成员函数有:

  • Size()返回值为Size;
  • area()返回矩形的面积;
  • contains(Point)判断点是否在矩形内;
  • inside(Rect)判断矩形是否在该函数内;
  • tl()返回左上角点的坐标;
  • br()返回右下角点的坐标;

求交集并集

Rect rect = rect1 & rect2;  // 交集
Rect rect = rect1 | rect2; // 并集

平移和缩放

Rect rectShift = rect + point;  // 平移
Rect rectScale = rect + size; // 缩放

颜色空间转换:cvtColor()函数

原型如下:

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0);
  • 参数一:输入图像
  • 参数二:输出图像
  • 参数三:颜色空间转换标识符(参表)
  • 参数四:目标图像的通道数,若参数为0,表示目标图像取源图像的通道数。

    用法如下
cvtColor(srcImage, dstImage, COLOR_GRAY2BGR);

OpenCV常用数据结构和函数的更多相关文章

  1. OpenCV——创建Mat对象、格式化输出、常用数据结构和函数(point,vector、Scalar、Size、Rect、cvtColor)

    创建Mat对象:

  2. opencv常用数据结构之:IplImage

    typedef struct_IplImage{      int nSize; //IplImage大小      int ID; //版本(=0)      int nChannels; //大多 ...

  3. OpenCV常用基本处理函数(8)图像变换

    傅里叶变换 傅里叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅里叶变换就表示f的频谱. 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.如:大面积的沙 ...

  4. OpenCV常用基本处理函数(7)图像金字塔和直方图

    高斯金字塔 高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的.顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值. 这样操作一次一个 MxN 的图像就变成了一个 M/2xN/ ...

  5. OpenCV常用基本处理函数(6)图像梯度

    形态学转换 腐蚀 img = cv2.imread() kernel = np.ones((,),np.uint8) erosion = cv2.erode(img,kernel,iterations ...

  6. OpenCV常用基本处理函数(5)图像模糊

    2D卷积操作 cv.filter2D() 可以让我们对一幅图像进行卷积操作, 图像模糊(图像平滑)使用低通滤波器可以达到图像模糊的目的.这对与去除噪音很有帮助.其实就是去除图像中的高频成分(比如:噪音 ...

  7. OpenCV常用基本处理函数(4)简单变换,阈值等

    几何变换 缩放 img=cv2.imread('messi5.jpg') # 下面的 None 本应该是输出图像的尺寸,但是因为后边我们设置了缩放因子 # 因此这里为 None res=cv2.res ...

  8. OpenCV常用基本处理函数(3)颜色空间

    颜色空间转换 对图像进行颜色空间转换,比如从 BGR 到灰度图,或者从BGR 到 HSV 等 我们要用到的函数是:cv2.cvtColor(input_image ,flag),其中 flag就是转换 ...

  9. OpenCV常用基本处理函数(2)图像基本操作

    可以根据像素的行和列的坐标获取他的像素值.对 BGR 图像而言,返回值为 B,G,R 例如获取蓝色的像素值: img=cv2.imread('messi5.jpg')px=img[100,100]bl ...

随机推荐

  1. 利用tcpdump分析工具来验证tcp连接的建立和关闭过程

    本文要求读者在阅读之前应该对TCP通过三次握手建立和关闭连接有一定的了解,本文并没有详细讲解三次握手,只是通过一个实例对三次握手进行了一下验证. tcp连接的建立和关闭想必大家都已经非常熟悉了!通过三 ...

  2. 编译wxWidgets —— windows、vc71、bcc32、MinGW与命令行

    编译wxWidgets —— windows.vc71.bcc32.MinGW与命令行 http://www.diybl.com/course/3_program/vc/vc_js/20071226/ ...

  3. QT 内存文件映射就是如此简单!

    QFile file(fileName); file.open(QIODevice::ReadWrite ); uchar* fpr = file.map(0, file.size());//映射文件 ...

  4. git clone命令简介

    git clone: 正如上图,当我们打开终端的情况下,默认我们所在的目录是在/home/shiyanlou的,大家可以在终端输入以下命令把目录切换到桌面cd  /home/Desktop这个时候输入 ...

  5. ORA-00600: internal error code, arguments: [4194], [53], [41], [], [], [], [], []

    真的不动,关闭同事开发测试IBM 3650server它直接关系到电源插头行??? 第二天加点重新启动之后oracle 打开报错ORA-00600: internal error code, argu ...

  6. nyoj 92 图片实用面积【bfs】

    图像实用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 "ACKing"同学曾经做一个图像处理的项目时.遇到了一个问题,他须要摘取出图片中某 ...

  7. vagrant up default: Warning: Authentication failure. Retrying...的一些解决办法

    vagrant up default: Warning: Authentication failure. Retrying...的一些解决办法 一般看到这个信息时,虚拟机已经启动成功,可以中断命令后v ...

  8. Redis 一些高级用法

    延迟消息队列 利用 expire keyspace notification Redis 过期时,会向特定的消息队列发送消息,监听该消息队列 在 redis.conf 修改 notify-keyspa ...

  9. PostMessage和SendMessage有什么区别?(有EnumChildWindowsProc的例子)

    PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行.PostMessage的返回值表示PostMes ...

  10. Win8 Metro(C#)数字图像处理--2.63图像指数增强

    原文:Win8 Metro(C#)数字图像处理--2.63图像指数增强  [函数名称]   指数增强      WriteableBitmap IndexenhanceProcess(Writea ...