2.圖像顯示

更多MATLAB圖像處理視頻請點擊  http://study.163.com/course/courseMain.htm?courseId=1003594013

圖像的顯示過程是將數學圖像從一組離散數據還原爲一幅可見圖像的過程,通過圖像顯示,可以直觀地查看和驗證我們對圖像的操作是否正確。

更多MATLAB圖像處理視頻請點擊  http://study.163.com/course/courseMain.htm?courseId=1003594013

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圖映射到球體上');




更多MATLAB圖像處理視頻請點擊  http://study.163.com/course/courseMain.htm?courseId=1003594013

發佈了91 篇原創文章 · 獲贊 320 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章