7

cvCvtColor以下是使用OpenCV 中的函数将灰度图像转换为 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 即最终输出也是灰度的,与输入本身相同。为什么这样 ?

任何形式的帮助将不胜感激。提前致谢 !

4

1 回答 1

24

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

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

于 2012-10-06T17:27:59.900 回答