1. 程式人生 > >基本影象增強方法——直方圖均衡

基本影象增強方法——直方圖均衡

一、  直方圖均衡化方法對影象實施增強

直方圖均衡化的計算過程如下:

1.      列出原始影象和變換後圖像的灰度級: ,其中L是灰度級的個數。

2.      統計原影象各灰度級的畫素個數 。

3.      計算原始影象直方圖: ,n為原始影象畫素總個數。

4.      計算累計直方圖 

5.      利用灰度變化函式計算變換後的的灰度值,並四捨五入取整: 

6.      確定灰度變換關係 ,據此將原影象的灰度值 修正為 

7.      統計變換後像各灰度級的畫素個數

8.      計算變換後圖像的直方圖 

程式碼:

clear all
I=imread('56.jpg');                 %讀入JPG彩色影象檔案
I_gray =rgb2gray(I); %灰度化後的資料存入陣列
% imwrite(I_gray,'1_gray.bmp'); %儲存灰度影象
figure,subplot(221),imshow(I_gray);
title('原始灰度圖')
 
[row,col]=size(I_gray);  %測量影象尺寸引數
p=zeros(1,256);                            %預建立存放灰度出現概率的向量
fori=1:row
    for j=1:col
     p(I_gray(i,j) + 1) = p(I_gray(i,j) +1)  + 1;
    end
end
subplot(223),imhist(I_gray);
%% 計算原始直方圖
p1=p/(col*row);
q=cumsum(p1);
post_L=255.*q+0.5;
post_L=floor(post_L);
g=zeros(row,col);
form=1:row
    for n=1:col
        g(m,n)=post_L(I_gray(m,n)+1);
    end
end
subplot(222),imshow(g,[]);
title('直方圖均衡化');
subplot(224),imhist(uint8(g));
figure,mesh(g);
title('Three-dimensional map');


結果:




由以上結果可知,直方圖均衡化對原影象進行灰度變換,使得變換後圖像的直方圖能均勻分佈,這樣就能使原影象中具有相近灰度且佔有大量畫素點的區域之灰度範圍展寬,使大區域中的微小變化顯現出來,使影象更清晰。