matlab中image和imshow显示图像方式的区别

上代码

simage=imread('test.jpg');

figure('Name','image方式','MenuBar','none','ToolBar','none','NumberTitle','off')

image(simage)

figure('Name','imshow方式','MenuBar','none','ToolBar','none','NumberTitle','off')

imshow(simage)

上面代码运行效果图

 

 

matlab中image和imshow显示图像方式的区别

matlab中image和imshow显示图像方式的区别

解释说明

1、test.jpg是一张1600*1200的灰度图,使用imread读入到内存后里面包含了1200*1600个0到255之间的整数值,如下图所示

matlab中image和imshow显示图像方式的区别

2、使用image方式显示图像的时候,matlab会把上述整数值当作颜色索引值,根据这个索引从默认的调色板中取出相应的颜色填充在相应的区域。

  • 调色板。matlab中默认的调色板为parula,除此之外还很多的内置的调色板,比如prism、jet(256)、winter、spring、autumn、summer等,每个调色板是一个256*3的数组,包含256种颜色,每种颜色为一个(r,g,b)三元组,更改调色板的方式为:colormap(prism),也可以自己定义一个n*3的颜色数组传递给colormap函数。
  • 区域划分。matlab根据simage图像的大小将整个绘图区域划分1200*1600个小方格。绘图区域大小是预先设置的,更改方式有多种,比如:set(gcf,'position',[0,0,468,468])

3、使用imshow方式显示图像的时候,matlab会把simage数组中的每个元素当作一个像素,按照显示器的DPI进行绘制。这里的元素可以是单个的整数(灰度图),也可以是[r,g,b]三元组(彩色)