为什么opencv用CV_GRAY2RGB无法将灰度图转为彩色图?

可以用cvtColor(srcImage,dstImage,CV_RGB2GRAY);将彩色图转化为灰度图,可是将灰度图再转为彩色图用cvtColor(srcImage,... 可以用cvtColor(srcImage,dstImage,CV_RGB2GRAY);将彩色图转化为灰度图,可是将灰度图再转为彩色图用cvtColor(srcImage,dstImage,CV_GRAY2BGR);总是报错,怎么回事 展开
 我来答
kicktom
2019-04-25 · TA获得超过373个赞
知道小有建树答主
回答量:147
采纳率:100%
帮助的人:55.5万
展开全部
因为RGB2GRAY的过程中,是丢失了颜色比例信息的,丢失以后是永远也找不回来了。比如0.2×R(30)+0.5×G(100)+0.3×B(200)=GRAY(116),在转换过程中你最后只得到了116这个灰度值。已知的还有0.2 ,0.5, 0.3这个比例。还原的时候,一个方程0.2×R(?)+0.5×G(?)+0.3×B(?)=GRAY(116), 三个未知数,是没有唯一解的。因此无法还原成彩色图像了。
DoramiHe
2017-04-11 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25335 获赞数:59534
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
CV_GRAY2RGB 不是 BGR
灰度图转为彩色图, 并不知道 RGB 与 灰度 的比例关系,只能简单地 设 一点的 R=G=B=灰度;
就算转成功了,看上去还是灰色。

if (img.type()==CV_8UC1) {

//input image is grayscale

cvtColor(img, cimg, CV_GRAY2RGB);
} else {

//input image is colour

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2015-06-01 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5526万
展开全部
CV_GRAY2RGB 不是 BGR
灰度图转为彩色图, 并不知道 RGB 与 灰度 的比例关系,只能简单地 设 一点的 R=G=B=灰度;
就算转成功了,看上去还是灰色。

if (img.type()==CV_8UC1) {

//input image is grayscale

cvtColor(img, cimg, CV_GRAY2RGB);
} else {

//input image is colour

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式