以下是使用cvCvtColorOpenCV中的函数将灰度图像转换为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);
Run Code Online (Sandbox Code Playgroud)
test.jpg是灰度图像.
但它似乎没有正常工作,因为output.jpg即最终输出也是灰度,与输入本身相同.为什么这样 ?
任何形式的帮助将受到高度赞赏.提前致谢 !
Tae*_*hin 14
我觉得你误解了cvCvtColor.cvCvtColor(input, output, CV_GRAY2BGR);将单通道图像更改为3通道图像.但是,如果你看一下图像,它仍然看起来像一个灰色图像,因为,例如,154的灰色像素已被转换为RGB(154,154,154).
将彩色图像转换为灰色图像时,所有颜色信息都将消失,无法恢复.因此,如果没有附加信息和相应的操作,您无法真正使灰度图像显示彩色图像.