OpenCV里depth与nChannels关系
我自己创建了一个9*9的256色BMP,位深度是8,我用cvLoadImage读取的时候发现nChannels的值是3,我不明白这是为什么?我的图里只有两种颜色,黑白,而我用matlab读取此图显示的矩阵也是9*9的,而不是9*9*3的,请教高手解释下
[解决办法]
nChannels是图像通道数,rgb就是3个通道;
depth是每个像素数值的类型
[解决办法]
cvLoadImage默认转成了3个通道,三个通道的值都相等。所以和matlab并不矛盾。你可以验证一下。
[解决办法]
cvLoadImage( filename, -1 ); 默认读取图像的原通道数。
cvLoadImage( filename, 0 ); 强制转化读取图像为灰度图
cvLoadImage( filename, 1 ); 读取彩色图,默认读取方式。
祥见百度百科。
1楼已经将opencv图像的深度和通道数讲清楚了。4楼言之有物。
2楼瞎说。这个是参数问题。
建议楼主去下本opencv帮助文档。
以下是cvLoadImage的参数对应:
enum
{
/* 8bit, color or not */
CV_LOAD_IMAGE_UNCHANGED =-1,
/* 8bit, gray */
CV_LOAD_IMAGE_GRAYSCALE =0,
/* ?, color */
CV_LOAD_IMAGE_COLOR =1,
/* any depth, ? */
CV_LOAD_IMAGE_ANYDEPTH =2,
/* ?, any color */
CV_LOAD_IMAGE_ANYCOLOR =4
};