OpenCV单通道图像保存后为何再载入还是3通道的?

用OpenCV打开一幅3通道的图形,用cvtColor(image,result,COLOR_BGR2GRAY)函数将image转换为灰度图,并用std::cout<<"... 用OpenCV打开一幅3通道的图形,用cvtColor(image,result,COLOR_BGR2GRAY)函数将image转换为灰度图,并用std::cout<<"channnels : "<<result.channels(); 语句确认了channel为1,用imwrite("single.bmp",result)或imwrite("single.jpg",result)语句将单通道图像保存为单通道后,再用image2=imread()重新加载single.bmp或single.jpg,结果图像又是3通道的了,这是怎么回事呢,求大神赐教 展开
 我来答
365988768
推荐于2017-10-06 · TA获得超过1089个赞
知道小有建树答主
回答量:295
采纳率:75%
帮助的人:281万
展开全部

猜测你后面去读图像的时候应该使用的是imread()函数的第二个参数使用的是默认值,那么这个时候都是以color形式读取的,所有就又变回3通道了;下面是第二个参数的介绍

flags – Flags specifying the color type of a loaded image:
– CV_LOAD_IMAGE_ANYDEPTH - If set, return 16-bit/32-bit image when the input has
the corresponding depth, otherwise convert it to 8-bit.
– CV_LOAD_IMAGE_COLOR - If set, always convert image to the color one
– CV_LOAD_IMAGE_GRAYSCALE - If set, always convert image to the grayscale one


如果你想读取图像的原样,建议使用如下:"..."替换为自己的图像

Mat test = imread("...", -1);
黄先生
2024-12-26 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式