热图到彩色图像matlab

时间:2014-01-30 18:36:42

标签: matlab image-processing matlab-figure

我有一个灰色图像。我可以使用以下方法在matlab中创建热图:

        I = imagesc(I);

它以彩色显示强度值。我想用这个热图获得彩色图像。我该怎么办?

这是imagesc的输出:This is the output of imagesc

2 个答案:

答案 0 :(得分:6)

据推测,“彩色图像”是指RGB或真彩色图像(具有三个颜色通道的图像阵列)。你称之为“热图”的是colormap,Matlab默认应用于灰度图像(仅有一个颜色通道的图像数组)。灰度图像加上颜色图称为索引颜色图像(更多地了解该here)。您可以使用ind2rgb函数将索引颜色转换为RGB:

IMG_gray = rand(100);
map = colormap; % Get the current colormap
IMG_rgb = ind2rgb(IMG_gray,map);

请注意,默认情况下,Matlab中的色彩图仅使用64种颜色而不是256种。要获得更平滑的色彩渐变,您可以通过map = colormap(jet(256));map = colormap(hsv(256));手动设置色彩映射。

如果您想要一个图像文件,可以使用imwrite,它可以将RGB图像或带有色彩图的索引彩色图像作为输入。

答案 1 :(得分:4)

将图像中的强度值缩放为imagesc,并使用色彩图(默认为jet):

N = 256;
IN = round(N * (I-min(I(:)))/(max(I(:))-min(I(:))));
cmap = jet(N); % see also hot, etc.
IRGB = ind2rgb(IN,cmap);