OpenCV基础篇之Mat数据结构
2016-06-12 20:59
459 查看
程序及分析
??
?
IplImage*是C语言操作OpenCV的数据结构,在当时C操纵OpenCV的时候,地位等同于Mat,OpenCV为其提供了一个接口,很方便的直接将IplImage转化为Mat,即使用构造函数
?
关于Mat数据复制:前面说过Mat包括头和数据指针,当使用Mat的构造函数初始化的时候,会将头和数据指针复制(注意:只是指针复制,指针指向的地址不会复制),若要将数据也复制,则必须使用copyTo或clone函数
Mat还有几个常用的成员函数,在之后的文章中将会使用到:
?
三通道RGB存储方式如下,每列含有三个通道,
为了加快访问的速度,openCV往往会在内存中将像素数据连续地存储成一行,isContinus()函数的作用就是用于判断是否连续存储成一行。存储成一行有什么好处呢?给定这行的头指针p,则只要使用p++操作就能逐个访问数据。
因此当判断存放在一行的时候,可以通过数据指针++很容易遍历图像像素:
?
?
效果
左边是矩阵的一些操作输出结果,右边的图是通过IplImage *结构读入,转换为Mat后显示结果。
相关文章推荐
- 数据结构之队列
- 数据结构之栈
- 数据结构之链表
- 数据结构与算法:数组(二)
- 经典算法与数据结构的c++实现——带头结点的单链表
- 数据结构(线段树):BZOJ 1103 [POI2007]大都市meg
- 数据结构(线段树):CodeForces 145E Lucky Queries
- 数据结构(C语言)-单向链表
- 数据结构与算法分析(8)表、栈和队列(三)
- 循环队列
- UVA - 247 - Calling Circles(floyd算法)
- 程序员必须知道的10个算法和数据结构有哪些?
- 顺序队列
- 顺序表
- 大话数据结构——串
- 读《数据结构》1-4章[线性结构]
- 数据结构(树链剖分,线段树):SDOI 2016 游戏
- 数据结构 Merge合并排序
- 万山千山都是情,你说行我就行之大型数据结构纪录篇之顺序
- HDUOJ_1166_敌兵布阵_线段树