把OpenCV Mat当一个普通数组来用
来源:互联网 发布:淘宝高压气瓶违规吗 编辑:程序博客网 时间:2024/05/22 05:37
最近在移植MATLAB图像处理算法,要将这个算法移植到OpenCV当中去,因为MATLAB对于数组的操作非常简单,而C++里面的数组就没那么好用,于是就想到了要用OpenCV的Mat。
在网上,关于OpenCV,关于Mat的文章,代码都非常多,但是都是相对简单的应用,当做一个图像数据来用,用到的格式也基本都是CV_8U和CV_8UC3类型。
CV_8UC
就是创建单通道的图像,在读取图像的时候就用image.at<uchar>(i,j)
来进行像素值读取。CV_8UC3
就是创建三通道图像,读取图像的时候就用image.at<Vec3b>(i,j)[k]
来进行读取。除了这两种形式,基本上就有了。但确实,Mat类型还有很多类型和应用
首先来讲一下如何创建一个三维的矩阵,如果此刻我要创建一个6Mat MatArray(6,6,CV_8UC(6)
,稍微解释一下这个类型,8是8 bits的意思,就是char型,然后这里的U是unsigned的意思,看这个类型的样子跟CV_8UC3很像,那为什么这里要把6用括号括起来呢。我们转到CV_8UC3的定义去看一下。
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)#define CV_8UC2 CV_MAKETYPE(CV_8U,2)#define CV_8UC3 CV_MAKETYPE(CV_8U,3)#define CV_8UC4 CV_MAKETYPE(CV_8U,4)#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
我们在types_c.h头文件中看到了这个定义,从这个定义里面我们可以看到OpenCV将常用的一些类型进行了定义,其余的进行另一类定义。我们读取CV_8UC3的时候是image.at<Vec3b>(i,j)[k]
这样来进行读取的,那CV_8UC(6)
这个是怎么读取的呢,那我们转到<Vec3b>
的定义看一下。
typedef Vec<uchar, 2> Vec2b;typedef Vec<uchar, 3> Vec3b;typedef Vec<uchar, 4> Vec4b;
在core.hpp头文件中,有以上的定义,同样,我们平常用的<Vec3b>
是Vec<uchar,3>
的一个缩写,那我们要访问CV_8UC(6)
的话,就直接用Vec<uchar,6>
这样的形式去访问就行了,也就是image.at<Vec<uchar,6>>(i,j)[k]
。
上面讲到的都是uchar类型的,只能是8 bits的无符号整形,那我要用int型,float型或者有符号型的呢,那这里就需要用到CV_32FC
,CV_64SC
之类的类型。相关的定义在OpenCV的types_c.h和core.hpp中都有。
Mat MatArray30x30; MatArray30x30.create(30,30,CV_32SC(81));
上面是创建一个30
- 把OpenCV Mat当一个普通数组来用
- 把一个json数组串转换成普通数组 等
- 把一个json数组串转换成普通数组
- 如何把windows2003当xp来用
- opencv 数组转换为mat
- 把一个数组里的组合全部列出来.
- 把一个数组写到文件中并读出来
- js 中如何把一个普通的字符串转化为数组对象呢
- Opencv中Mat数组相关应用
- Opencv学习笔记(mat数组操作)
- opencv Mat与数组之间值传递
- opencv图像拼接,即把两个矩阵合并为一个(vconcat和hconcat)、Mat成员函数size()
- opencv(四)把鼠标当画笔
- 如何把win2003当xp来使用
- eval( )把字符串当语句来运行
- 学习OpenCV——Mat数据操作之普通青年、文艺青年、暴力青年.& Mat注意事项
- js把普通数组转换成json
- 当你把爱好当事业来做......
- tf.app.run
- LeetCode 11. Container With Most Water
- 【Spring】切面编程AOP
- 自动、强制类型转换 | 变量作用域 | java初学笔记 新手理解
- 数据挖掘工程师入门资料
- 把OpenCV Mat当一个普通数组来用
- Event事件处理机制的实例应用
- iOS 如何移除Main.storyboard
- 第五章 基于TCP的服务器端/客户端(2)
- 给Java程序猿们推荐一些值得一看的好书
- LeetCode 70 Climbing Stairs
- 欢迎使用CSDN-markdown编辑器
- 如何在AWS上面安装openvpn as
- MQTT-SN协议阅读之MQTT-SN vs MQTT