2.图像显示

来源:互联网 发布:a 算法八数码 编辑:程序博客网 时间:2024/05/16 12:06

图像的显示过程是将数学图像从一组离散数据还原为一幅可见图像的过程,通过图像显示,可以直观地查看和验证我们对图像的操作是否正确。

1.imshow 函数

调用imshow函数显示图像时,MATLAB将自动设置图像窗口、坐标轴和图像的属性,在MATLAB中,imshow函数的语法如下:

 

imshow(I):            

imshow(I,[low hight]);   %显示灰度

imshow(RGB):显示RGB图

imshow(BW):显示二进制图

imshow(X,map):显示索引图

imshow(filename):显示文件中的图像


(1)显示灰度图像

imshow函数显示灰度图像的语法如下

imshow(I):其中I为灰度图像的数据结构

inshow(I,[low  higt]):其中I为灰度图像的数据矩阵,[low  high]用于指定对应灰度颜色映射表中的灰度值,MATLAB将小于low的像素值设为黑色,将大于等于high的像素值设为白色。

例:

 I=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\1.tif');
figure;
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(I,[0 180]);


(2)显示二进制图像

  imshow函数显示二进制图像的语法如下:

 imshow(BW):BW为二进制位图的数据矩阵。

图像数据矩阵中值为0对应的像素点显示为黑色,值1对应的像素点显示为白色。

例:

A=[0 0 1;1 1 0; 0 0 1];
>> imshow(A,'InitialMagnification','fit')          %调整合适的窗口显示A。



(3)显示索引图

使用imshow函数显示MATLAB的索引图时,可以同时设置图像的数据矩阵(X矩阵)和颜色映射表(调色板矩阵、map矩阵),具体语法格式如下

imshow(X,map):其中,对于X中的每一个像素,imshow都将其显示为存储map映射表矩阵的相应行所对应的颜色。

例:

[X,map]=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\suoyin.bmp');
imshow(X,map);

 title('imshow()显示索引图');



(4)显示RGB图

   使用imshow函数显示RGB图的语法格式

  imshow(RGB):其中,RGB为一个mXnX3的图像数据阵列,在MATLAB中,该数据整列属于double类,uint8类或unit16,。数据阵列中元素的取值取决于该矩阵所属类型。如果该数据阵列属于double类,则其元素的取值范围是[0 1];如果该数据矩阵属于unit8类,则其元素的取值范围是[0 255];如果该数据阵列属于uint16类,则其元素取值范围是[0 65535]。


(5)显示文件中的图像

    显示图像时,该图像的对象数据保存在MATLAB运行内存的一个或多个变量中。但是,如果用户将图像保存在可以通过imread或dicomread函数读取的图形文件中,则可以通过下面的语句直接将其显示出来。

  imshow(filename):filename是需要打开的图像文件路径及文件名。

例:

imshow('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\原图.jpg');
>> title('显示文件中的图形');



特殊图像显示技术

在MATLAB图像处理工具箱中,除了imshow函数外,还提供了一些实现特殊显示功能的函数,他们与MATLAB提供的图形函数想结合,为图像显示提供了各种特殊的显示技术,包括在图像显示中添加颜色条、将图像纹理映射到表面对象等。

2. 添加颜色条

在MATLAB的图像显示中,可以利用colorbar函数将颜色条添加到坐标轴对象中,如果该坐标轴对象包含一个图像图像,则添加的颜色条将显示该图像不同颜色的数据值。

例:

A=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\1.tif');
>> B=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\原图.jpg');
>> figure
>> imshow(A);
>> colorbar;
>> title('灰度图像');
>> figure
>> imshow(B);
>> colorbar;
>> title('RGB图像');




3.子图像显示

 在前面的内容里,我们也有用到过子图像的显示方式,在同一个窗口中放置多幅图像;对于图像而言,还有专门为其定制的自图像显示函数,语法格式和imshow类似

   subimage(X, map)  :索引图
    subimage(I)  :    灰度图
    subimage(BW)  :二进制图

    subimage(RGB) :RGB图
    subimage(x, y...)   :指定坐标
    h = subimage(...) :返回句柄


subimage 显示坐标
imshow 不显示坐标

例1:

A=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\原图.jpg');
subplot(2,1,1),subimage(100,100,A);
subplot(2,1,2),subimage(A)

例2

A=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\原图.jpg');

subplot(2,1,1),subimage(A);
>> title('subimagex显示');
>> subplot(2,1,2),imshow(A);
>> title('imshow显示');



4.纹理映射

在使用imshow函数时,MATLAB在二维空间显示图像,除此之外,MATLAB专门提供了一个对图像进行纹理映射处理的函数wrap,使之显示在三维空间,三维的面可以是柱面、球面或自定义的三维曲面。wrap函数的语法格式如下:

   warp(X,map)  :索引图像映射到简单的矩形表面
    warp(I,n)         :灰度图像映射到简单的矩形表面
    warp(BW):      二进制图像映射到简单的矩形表面
    warp(RGB):    RGB图像映射到简单的矩形表面
    warp(z,...) :     :图像映射到Z表面
    warp(x,y,z...) :  图像映射到(x,y,z)表面。
    h = warp(...):    返回句柄。


例:

A=imread('C:\Users\Administrator\Desktop\picture\MATLAB图像处理\part2\原图.jpg');
>> figure
>> imshow(A);
>> title('原始图片');
>> figure
>> warp(A);
>> title('RGB图映射到矩形上');
>> [x,y,z]=sphere;  %画出一个球体,返回值是球体的x,y,z坐标。把图片映射到球体上
>> figure
>> warp(x,y,z,A);
>> title('RGB图映射到球体上');



0 0
原创粉丝点击