1. 程式人生 > >matlab 直方圖均衡化

matlab 直方圖均衡化

直方圖均衡化又稱為灰度均衡化,是指通過某種灰度對映使輸入影象轉換為在每一個灰度級上都有近似相同的畫素點數的輸出影象(輸出的直方圖是均勻的),在經過均衡化處理後的影象中,畫素將佔有可能多的灰度級並且分佈均勻。

影象歸一化就是將影象轉化成唯一的標準 形式以抵抗各種變換,從而可消除同類影象不同的變形體之間的外觀差異。當影象歸一化用於消除灰度因素(光照等)造成的影象外觀變化時,成為影象灰度歸一化。下面用直方圖均衡化技術實現影象的灰度歸一化

I=imread('lena.jpg');
I=rgb2gray(I);
I=im2double(I);
% 對於對比度變大的影象
I1=2*I-55/255;
subplot(4,4,1);
imshow(I1);
subplot(4,4,2);
imhist(I1);
title('對比度增強的影象、直方圖及均衡化的影象、直方圖');
subplot(4,4,3);
imshow(histeq(I1));
subplot(4,4,4);
imhist(histeq(I1));

% 對於對比度變小的影象
I2=0.5*I-55/255;
subplot(4,4,5);
imshow(I2);
subplot(4,4,6);
imhist(I2);
title('對比度減小的影象、直方圖及均衡化的影象、直方圖');
subplot(4,4,7);
imshow(histeq(I2));
subplot(4,4,8);
imhist(histeq(I2));
% 對於線性增亮的影象
I3=I+55/255;
subplot(4,4,9);
imshow(I3);
subplot(4,4,10);
imhist(I3);
title('對線性增加亮度的影象、直方圖及均衡化的影象、直方圖');
subplot(4,4,11);
imshow(histeq(I3));
subplot(4,4,12);
imhist(histeq(I3));

結果如下: