Store array to Mat

From: http://blog.csdn.net/u010417185/article/details/53114452

 

当采用这种方法取元素值得时候,type成为一个麻烦的问题,因为一般我们生成Mat的时候,都是这样的:

 

而取元素值时不能写成”a.at(x,y)”或者”a.at<a.type()>(x,y)”。

所以这里列出OpenCV中定义的型别和C++中型别的对应关系,

 

CV_8SC1 -> char

CV_8UC1 -> unsigned char

CV_16SC1 -> short

CV_16UC1 -> unsigned short

CV_32SC1 -> int

CV_32FC1 -> float

CV_64FC1 -> double

OpenCv中的数据型别命名规则为:CV_(比特数)+(数据类型)+(Channel数),我们也可以直接根据命名规则得到相应的数据型别。

 

下面举例:

 
若不知道所属的属性,则可以通过转变数据类型进行获取值。本人一般喜欢转为double型,代码如下:

 

 

对于保存图片的Mat来说,下面给出读取Mat中数据的例子:

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *