首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

OpenCV里depth与nChannels关系解决办法

2012-12-30 
OpenCV里depth与nChannels关系我自己创建了一个9*9的256色BMP,位深度是8,我用cvLoadImage读取的时候发现nC

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
};

热点排行