OpenCV Mat仅适用于整数类型

Ben*_*son 0 c++ opencv

我正在使用一种算法,该算法要求Mat图像仅保存为无符号整数,而不保存为Mat(rows,cols,CV_8U)提供的无符号char(uchar)。到目前为止,我尝试使用CV_8U,并且在读取uchar值时算法失败。有没有一种方法可以将Mat图像仅保存为8位整数?谢谢。

hao*_*hao 6

没有的Mat类型unsigned int。您可以使用CV_32SC1一种int类型。

可以在此处找到类型列表:http : //ninghang.blogspot.fr/2012/11/list-of-mat-type-in​​-opencv.html


如果博客不可用:

无符号8位uchar 0〜255
IplImage:IPL_DEPTH_8U
Mat:CV_8UC1,CV_8UC2,CV_8UC3,CV_8UC4

带符号的8位字符
-128〜127 IplImage:IPL_DEPTH_8S
Mat:CV_8SC1?CV_8SC2?CV_8SC3?CV_8SC4

无符号16位ushort
0〜65535 IplImage:IPL_DEPTH_16U
Mat:CV_16UC1?CV_16UC2?CV_16UC3?CV_16UC4

有符号16位短
-32768〜32767 IplImage:IPL_DEPTH_16S
Mat:CV_16SC1?CV_16SC2?CV_16SC3?CV_16SC4

带符号的32位int -2147483648〜2147483647
IplImage:IPL_DEPTH_32S
Mat:CV_32SC1?CV_32SC2?CV_32SC3?CV_32SC4

浮点数32位浮点数-1.18 *
10-38〜3.40 * 10-38 IplImage:IPL_DEPTH_32F
Mat:CV_32FC1?CV_32FC2?CV_32FC3?CV_32FC4


64位 Mat:CV_64FC1?CV_64FC2?CV_64FC3?CV_64FC4

无符号的1位布尔
IplImage:IPL_DEPTH_1U