宏 | 图像像素类型 |
IPL_DEPTH_8U | 无符号8位整数 |
IPL_DEPTH_8S | 有符号8位整数 |
IPL_DEPTH_16S | 有符号16位整数 |
IPL_DEPTH_32S | 有符号32位整数 |
IPL_DEPTH_32F | 32位浮点数单精度 |
IPL_DEPTH_64F | 64位浮点数双精度 |
在OpenCV中一个幅图像有上面表格中的数据类型。当我们想从图像中拿出某个位置的数据时,有3中方法:在《Learning OpenCV》中说到,根据效率分别戏称为简单的方法,麻烦的方法,恰当的方法。
以简单的方法为例:CV_MAT_ELEM().这个宏传入矩阵、带提取元素的类型,行和列数 4 个参数,返回提取出的元素的值。
我想说的就是这个待提取元素的类型问题:按上面的表来依次对应的是:unsigned char, char, short, int, float, double
比如一个位深8位的图像,那么提取元素值的方法如下所示:unsigned char = CV_MAT_ELEM( *MAT, unsigned char, 3, 2)