需要解释matlab代码片段

时间:2010-04-08 17:02:18

标签: matlab image-manipulation

%# load a grayscale image
img = imread('coins.png');

%# display the image
figure
imshow(img,[]);

%# false-color
colormap('hot')

以上代码来自:

Infrared image processing in Matlab

但是我不明白figure(有/有什么不同?)和colormap(它如何影响已经显示的img?)工作?

1 个答案:

答案 0 :(得分:1)

figure不是必需的,imshow只显示img。如果尚未打开figure,则imshow会创建一个新的。{/ p>

colormap为图像的强度着色。 hot地图颜色值增加,黑色,红色,黄色和白热。另一种流行的色彩映射是jet,它有许多有趣的颜色。

假色

因此,您想要查看的矩阵具有可以具有任何值范围的强度。为了获得更好的可视化效果,强度会以一系列颜色或一组假色显示。通常,灰度图像将显示灰度阴影的图像,其中白色最大而黑色最小。假色是这个概念的延伸,中间有几种颜色(如jet)和hot中加热金属的效果。

像素级别的色彩映射

假设您的矩阵的像素值范围为[cmin xmax]。现在,将值标准化,使范围为[0,1]。此外,假设您有一个颜色贴图,这样一系列颜色被映射到0到1之间的某些值(例如0.5被映射到RGB(100,200,100)) - 然后通过找到最接近的强度来获得假颜色映射。映射并显示相应的颜色。

有关MATLAB documentation中色彩映射的更多信息。我在这里附上了一些图片:

喷气

alt text http://www.mathworks.com/access/helpdesk/help/techdoc/ref/graphics_c15.gif

alt text http://www.mathworks.com/access/helpdesk/help/techdoc/ref/bone_spine.gif