图像处理 - 在Matlab中将TIFF图像转换为灰度图像

7
在Matlab中,当我使用
imshow('trees.tif')

这个函数可以显示RGB图像,但是当我使用这两个函数时

I=imread('trees.tif')
imshow(I)

它显示的是灰度图像,但仍然是完全相同的图像。

这只会发生在TIFF图像上,因为当我把它用于JPEG图像时:

I=imread('flower.jpg')
imshow(I)

它显示一张RGB图像,和imshow('flower.jpg')是同样的东西。

请问为什么使用imread/imshow读取TIFF图像时会以灰度形式显示?


看起来 trees.tif 使用了索引颜色映射(尝试使用 >> imageinfo('trees.tif') 并查看 ColorType 字段),因此 imread 显然只返回索引。我不确定如何将其转换为 RGB 或其他格式,以便获取颜色映射表。 - Nicu Stiurca
你说得对,所以如果它是一个索引图像,我应该获取颜色映射将其转换为RGB,现在我明白了,你有什么书推荐给初学者吗?谢谢你。 - user3089045
1个回答

9

同时加载颜色映射:

[I,cmap] = imread('trees.tif');

使用地图显示:

imshow(I,cmap)

将其转换为RGB:

Irgb = ind2rgb(I,cmap)

因此,您可以在没有色彩映射的情况下显示和操作它:

imshow(Irgb)
imagesc(Irgb)
% etc.

视觉盛宴:

enter image description here enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接