OpenCV 用imread函数读入灰度图变成彩色图怎么回事

 我来答
kid3000
2017-03-01 · TA获得超过488个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:114万
展开全部
opencv中的imread函数用法为:
Mat imread(const string& filename, intflags=1 );
其中第一个参数是载入图片名,第二个参数是int类型的flags,为载入标识,它指定一个加载图像的颜色类型。可以看到它自带缺省值1.在higui_c.h中发现这个枚举的定义是这样的:
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
};
其中:
flags >0返回一个3通道的彩色图像。
flags =0返回灰度图像。
flags <0返回包含Alpha通道的加载的图像。

你用函数的时候没有设置第二个参数,就会默认值为1。尽管你读入的是灰度图,还是自动转化成三通道图像。可以将第二个参数置为0得到灰度图像
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式