如何将灰度图像转换为全彩色的rgb?

时间:2014-02-17 15:59:23

标签: matlab image-processing matlab-figure

我正在尝试将灰度图像转换为rgb图像。我搜索了网,发现了这段代码:

rgbImage = repmat(grayImage,[1 1 3]);
rgbImage = cat(3,grayImage,grayImage,grayImage);

但是这样做只是用三维矩阵给出灰度图像。 我希望有一种方法可以将其转换为真彩色图像。

2 个答案:

答案 0 :(得分:3)

不可能直接从灰度版本中恢复彩色图像。正如@Luis Mendo在评论中正确地说的那样,所需的信息并没有实际存储在那里。

你可以做的是尝试在强度等级和颜色之间进行映射,然后进行插值。然而,这不会产生良好的结果,而只是一些可能与您想要的距离很远的颜色映射信息。

如果您有其他彩色图像,并且想要将其颜色与灰度图像相匹配,则可能需要查看:http://blogs.mathworks.com/pick/2012/11/25/converting-images-from-grayscale-to-color/
特别是引用的功能可以在这里找到:http://www.mathworks.com/matlabcentral/fileexchange/8214-gray-image-to-color-image-conversion#comments

请记住,这将是缓慢的,不会产生很好的结果,但我不认为你可以做更多。

答案 1 :(得分:2)

是的,不可能直接将灰度图像转换为rgb ..但是可以添加功能或通过添加它来显示像在rgb中的灰度图像上检测到的边缘的东西..如果你想要你可以使用它..

rgb = zeros([size(I_temp) 3]);

rgb(:,:,1) = im2double(rr);

rgb(:,:,2) = im2double(rg)+.05*double(I_temp) ;

rgb(:,:,3) = im2double(rb);

其中rr,rg,rb是rgb基本图像..