显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。
一. imshow函数
比image和imagesc更常用,它能自动设置句柄图像的各种属性。imshow可用于显示各类图像。直接使用imshow函数显示的是真实尺寸的图像,即图像的每个像素都与电脑显示器的每个像素相对应。通过设置参数InitialMagnification可调节图像大小。
对于每类图像,调用方法如下:
imshow(filename):显示图像文件。
imshow(BW):显示二值图像,BW为黑白二值图像矩阵。
显示索引图像:
[X,map]=imread(filename);
imshow(X,map); 或者分两步 imshow(X); colormap(map);
imshow(I):显示灰度图像,I为二值图像矩阵。
imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。
imshow(I,[low high]):拉伸灰度,[low,high]定义显示区域,图像数据I中所有小于low的像素显示为黑色,所有大于high的像素被显示为白色。中间的值都被归一到[low,high]区间。若使用空参数,则相当于使用了[min(I(:)) max(I(:))]作参数,其实就是显示原图。利用此属性可起到增强图像对比度的效果。
有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB还提供了一些用于进行图像的特殊显示的函数。
colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。
getimage:获取图像数据。
immovie:将多帧索引图像制作成连续图像格式。其调用格式为:
mov = immovie(D,map)
不过这种功能只对索引图像有效,其中D为多帧索引图像阵列,map为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。
montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。
movie:播放多帧连续图像。
subimage:在一个图形区域内显示多个图像。
truesize:调整图像显示的尺寸。
warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像显示在空间三维曲面上。这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。
zoom:将图像或二维图形进行放大或缩小显示。zoom本身是是一个开关键,zoom on用于打开缩放模式,zoom off用于关闭该模式,zoom in用于放大局部图像,zoom out用于缩小图像。
二. image函数
其附带坐标地显示图像。并将图像矩阵当作索引图像或RGB图像来显示,所以在显示灰度图像时非常不方便。常用调用形式:image(X);
显示索引图像:
[X,map]=imread(filename);
image(X);
colormap(map); %要设置颜色查找表,如果要显示灰度图像,应该跟上colormap(gray(256))语句。
三. imagesc函数
四. subimage函数
可以subplot函数配合用来实现一个窗口中显示多幅图像的效果。
调用形式:subimage(X,map),若为灰度图像则无map参数。