imadjust從用法到原理—Matlab灰度變換函數之一


imadjust從用法到原理—Matlab灰度變換函數之一

 

imadjust函數是MATLAB的一個工具箱函數,一般的語法調用格式為:

f1=imadjust(f,[low_in  high_in],[low_out  high_out],gamma)

(注:本文所述圖像數據均為Uint8,對於Matlab,矩陣中的一個元素即是一個像素點)

該函數的意義如圖1所示,把圖像灰度變換到新圖像f1的過程中,中灰度值低於low_in的像素點在f1中灰度值被賦值為low_out,同理,f中灰度值高於high_in的像素點變換到f1時其灰度值也被賦值為high_out;而對於參數gamma,當gamma<1時,灰度圖像靠近low_in的灰度值較低像素點灰度值變高,其灰度變化范圍被拉伸,灰度值靠近high_in的一端灰度變化范圍被壓縮,圖像整體變明亮。如圖1(a)所示,同理,當gamma>1時,則灰度圖像的靠近low_in的灰度值較低像素點灰度值變低,其灰度變化范圍被壓縮,灰度值靠近high_in的一端的灰度變化范圍被拉伸,如圖1(c)所示。

a
b
c

圖1

​而對於中間的兩個參數,通過調整其值,主要可以實現以下四種變換。

(1).負片變換

即取反變換,對一個灰度圖像取反(負片)變換即為255減去中的每個像素點的灰度值,得到的新圖像f1 即為負片變換后的圖像。

示例代碼:

f1=imadjust(f,[0 1],[1 0]);

圖2

(2).兩參數為空的變換

變換命令代碼如下:

                   f1=imadjust(f,[ ],[ ],0.6);

其實質就是只改變參數gamma的變換,文章開篇已述,此處便不再贅述。

當然,該變換也可結合Matlab工具箱函數stretchlim得到。其具體調用格式為:

f1=imadjust(f,stretchlim(f),[ ]);

該調用方法能自動確定閾值,完成對比度拉伸。

(3).大到小變換

所謂大到小變換,即將圖片f較大的灰度值變化區間壓縮為較小的灰度值變化區間達到降低圖片f1對比度的作用,示例代碼如下:

  f1=imadjust(f,[0 1],[0.3 0.7]);

圖3

 

其意義為將圖像中灰度值區間壓縮變換到f1 中,且f1的灰度值變化范圍為255*0.3~255*0.7。變化公式大致如此,對於任意的變換區間,有:  

圖片中的任一像素點的灰度值x,變換后得到f1圖像中對應像素點灰度值Xf,變換公式如下:

(4).小到大變換

與大到小變換相反,將圖片較小的灰度值變化區間擴展為較大的灰度值變化區間;示例代碼如下:

                  f1=imadjust(f,[0.3 0.6],[0.1 1]);

與(3)變換相反,該類型變換能提高圖片f1對比度,如圖3所示。

圖4

其變換過程類似變換(3),對於任一的  

圖片中的任一像素點的灰度值x,變換后得到f1 圖像中相應像素點的灰度值Xf ,變換公式如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM