点的表示: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. Oracle 11g系统分区表中的新功能

    在11g有一个新的特点是分区表系统.下面做一个实验: SQL> select * from v$version; BANNER --------------------------------- ...

  2. python 教程 第五章、 函数

    第五章. 函数 定义语句后面要加冒号 1)    定义函数 def sayHello(): print 'Hello World!' sayHello() 2)    变量作用域 LEGB原则 L本地 ...

  3. python 教程 第一章、 简介

    第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...

  4. matlab 工具函数(一) —— 添加指定 SNR 的噪声

    SNR=PsignalPnoise=10⋅log10∑x=1Nx∑y=1Nyf2(x,y)∑x=1Nx∑y=1Ny(f(x,y)−f^(x,y))2=20⋅log10∥f(x,y)∥∥f^(x,y)− ...

  5. zlog 程序日志的库 交叉编译(Linux生成ARM库,观察执行步骤)

    1. zlog 是个很好的写程序日志的库,功能比较强大,上手快. 2. 下载地址:https://github.com/bmanojlovic/zlog 3. cd 到文件夹下,对 autogen.s ...

  6. AngularJS 计时器

    <div ng-controller="MyController"> <!--显示$scope.clock的now属性--> <h1>hello ...

  7. Django 创建超级管理员失败

    django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1") 解决方案 在执行mi ...

  8. [原译]实现IEnumerable接口&理解yield关键字

    原文:[原译]实现IEnumerable接口&理解yield关键字 著作权声明:本文由http://leaver.me 翻译,欢迎转载分享.请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢 ...

  9. Android项目实战(四十四):Zxing二维码切换横屏扫描

    原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=&q ...

  10. 【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历

    原来没有仔细注意C++读写文件的二进制模式和文本模式,这次吃了大亏.(平台:windows  VS2012) BUG出现: 写了一个程序A,生成一个文本文件F保存在本地,然后用程序B读取此文件计算MD ...