无法在OpenCV中将Gray转换为BGR

时间:2012-10-06 16:29:15

标签: c opencv

以下是使用OpenCV中的cvCvtColor函数将灰度图像转换为RGB的简单代码片段。

input = cvLoadImage("test.jpg", CV_LOAD_IMAGE_GRAYSCALE);
output = cvCreateImage(cvSize(input->width, input->height), 8, 3);
cvCvtColor(input, output, CV_GRAY2BGR);
cvSaveImage("output.jpg", output);

test.jpg是灰度图像。

但它似乎没有正常工作,因为output.jpg即最终输出也是灰度,与输入本身相同。为什么这样?

任何形式的帮助都将受到高度赞赏。提前致谢 !

1 个答案:

答案 0 :(得分:11)

我认为你误解了cvCvtColor。 cvCvtColor(input, output, CV_GRAY2BGR);会将单通道图像更改为3通道图像。但是如果你看一下图像,它仍然看起来像一个灰色的图像,因为,例如,154的灰色像素已被转换为RGB(154,154,154)。

将彩色图像转换为灰色图像时,所有颜色信息都将消失,无法恢复。因此,如果没有附加信息和相应的操作,您无法真正使灰度图像显示彩色图像。

相关问题