matlab 實現圖像的二值化、對比度拉伸變化


一、將一幅圖像轉化為二值圖像,可以使用如下函數:
BW = im2bw(I, level) %輸出像素點小於level的像素,I是代表圖像的變量,level是閾值,level屬於[0 1].
BW = im2bw(RGB, level)%將RGB彩色圖像轉換為二值圖像,轉換過程中先轉化為灰度圖像,再轉換為二值圖像

二值圖像:取值只有0和1的邏輯數組(logical型的數組)。如果是一個unit8的數組只包含0,1,則它不是二值數組。
轉化EXAMPLE:
f=imread('p1.jpg');
g=im2double(f);%將圖形轉化為double型的或者g=mat2gray(f);灰度圖像,保證每個像素點的取值在0-1之間
a=mean(g(:));%設置閾值,一般取矩陣的均值作為圖像的閾值
g=im2bw(g);
t=im2bw(g,a);imshow(g),figure,imshow(t);%顯示兩個圖像,如果想要看閾值的大小對圖像的影響,設置這個值大於或者小於a

ps:
其他的圖像轉化函數,都是matlab的庫函數
im2unit8()  圖像轉換為無符號8位的整數
im2unit16()  圖像轉化為無符號16位的整數
mat2gray()  圖像轉換為灰度圖像
im2double()  圖像轉換為0-1的double類
二、圖像的對比度拉伸變化,(調整灰度級m,函數斜率k,觀看最后的圖像顯示結果)
使用如下對比度拉伸變換工具,進行動態范圍的壓縮:
g=c*log(1+double(f));
 拉伸的函數形式為:
s=T(r)=1/(1+(m/r)^E);
g=1./(1+(m./(double(f)+eps)).^E);%eps可避免f出現溢出情況

對比度拉伸即:使圖像亮的地方更亮,暗的地方更暗,從而增加圖像的可視細節


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com