matlab影象灰度調整——imadjust函式的使用
在MATLAB中,通過函式imadjust()進行影象灰度的調整,該函式呼叫格式如下:
J=imadjust( I ) 對影象I進行灰度調整
J=imadjust( I,[low_in;high_in],[low_out;high_out]) [low_in;high_in]為原影象中要變換的灰度範圍,[low_out;high_out]為變換後的灰度範圍
J=imadjust( I,[low_in;high_in],[low_out;high_out],gamma) 該gamma引數為對映的方式,預設值為1,即線性對映。當gamma不等於1時為非線性對映
RGB2=imadjust(RGB1,......)
1. 通過函式imadjust()調整灰度影象灰度範圍
close all;clear all;clc;
%通過imadjust()函式調整灰度影象的灰度範圍
I=imread('F:/paohui.jpg');
J=imadjust(I,[0.2 0.5],[0 1]); %調整灰度範圍
figure;
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));
在程式中通過函式imadjust()調整灰度影象的灰度範圍。原影象灰度範圍為0-255,程式將小於255×0.2的灰度值設定為0,將大於255×0.5的灰度值設定為255。程式執行後輸出如下:
2. 通過函式imadjust()調整灰度影象的亮度
close all;clear all;clc;
%調整灰度影象的灰度和顯示亮度
I=imread('F:/paohui.jpg');
J=imadjust(I,[0.1 0.5],[0 1],0.4); %調整影象灰度並調高亮度
K=imadjust(I,[0.1 0.5],[0 1],4); %調整影象灰度並調低亮度
figure,
subplot(131),imshow(uint8(I));
subplot(132),imshow(uint8(J));
subplot(133),imshow(uint8(K));
左側是原圖,中間是調整影象灰度並加強亮色值的輸出後顯示的影象,右側是調整影象灰度並加強暗色值的輸出後顯示的影象。
3. 通過函式imadjust()對彩色影象進行增強
close all;clear all;clc;
%imadjust()對彩色影象進行增強
I=imread('F:/pao1.jpg');
J=imadjust(I,[0.2 0.3 0;0.6 0.7 1],[]); %imadjust()對RGB影象進行處理
figure,
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));
左側為原圖,右側為處理後的影象,可以看到影象亮度顯著增強:4. 通過函式stretchlim()和函式imadjust()進行影象增強
可以採用stretchlim()計算灰度影象的最佳輸入區間,即函式imadjust(I,[low_in;high_in],[low_out;high_out])中的第二個引數,以此來實現影象增強,具體例項如下:
close all;clear all;clc;
%通過函式stretchlim()和imadjust()進行影象增強
I=imread('pout.tif');
M=stretchlim(I); %獲取最佳區間
J=imadjust(I,M,[]); %調整灰度範圍
figure,
subplot(121),imshow(uint8(I));
subplot(122);imshow(uint8(J));
5. 用函式imcomplement()進行灰度影象的反轉變換
灰度影象的反轉變換,將灰度值為0的畫素值轉換為255,將灰度值為255的畫素值轉換為0,將灰度值為x的畫素值轉換為255-x。通過灰度反轉,能夠增強暗色背景下的白色或灰色細節資訊。
程式碼如下:
close all;clear all;clc;
%利用函式imcomplement()實現灰度影象灰度反轉
I=imread('F:/pao1.jpg');
J=imcomplement(I); %實現灰度反轉
figure;
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));
------願你每一個夢不會一場空------