色彩图和GIF图像在Matlab(Colormap and GIF images in Matlab

2019-10-23 17:53发布

我理解在Matlab颜色表,并用它们来导入和diplay .gif图片的问题。

我想导入使用im = imread(“I.gif”),然后使用imshow(IM)显示它的图象,但结果是错误的

如果我做[IM,地图] = imread(“I.gif”),然后用imshow(IM,地图)显示其能正常工作,但我仍然不明白这个颜色表的需要

有没有一种办法,而不必担心颜色表导入和转换我GIF图像灰度图像,这样,当我做imshow(IM),它显示了正确的灰度图像?

遗憾的noob问题,但我刚开始用Matlab中的图像处理,我会很感激一些帮助。 这是我的第一个问题! :)

再见和感谢!

Answer 1:

如果你想你的GIF转换为灰度,使用ind2gray :

[im,map] = imread('I.gif');
imGray = ind2gray(im,map);

您需要的颜色映射的原因是,GIF格式不存储图像强度,它存储colormap的索引。 所以颜色0可以是红色或绿色或淡紫色的一个很轻的阴影。 它存储的图像,需要实际的RGB颜色的颜色表。 ind2gray将采取的每一种颜色,将它们转换为灰度强度,以及与这些强度图像中的替换索引。



Answer 2:

它看起来像你真的已经回答了这个问题。 看来,.gif文件支持索引颜色格式,节省空间的方式。 看到:

https://en.wikipedia.org/wiki/Indexed_color

这是一个比一个更典型的RGB颜色,这就是通常从IMREAD呼叫收到不同。

要转换为灰度,你需要去通过颜色映射和分配的灰度值每种颜色,然后替换这些值回im变量。



文章来源: Colormap and GIF images in Matlab