1. 程式人生 > >影象直方圖均衡化次數不同,結果相同簡要說明

影象直方圖均衡化次數不同,結果相同簡要說明

背景介紹

如果一幅影象灰度級分佈不均、很密,集中在某個區域,那麼其對比度就較差,顯示效果不好。直方圖均衡化就是把影象灰度級進行平均展寬,使其儘可能均勻分佈,從而進而提高了對比度和灰度色調的變化,使影象更加清晰,顯示效果更好。

理論證明

設影象灰度級為L,直方圖均衡化理論公式:

sk=T(rk)=j=0kPr(rj)
式中Pr(rj)表示原始灰度值rj對應出現的概率,Ps(rj)表示直方圖均衡化後灰度值rj對應出現的概率,k=0,1,2,3,,L1。通過gray=sk(G1)可得到均衡化對應的灰度值,概率大小不變。 直方圖均衡化均衡結果只與灰度值出現的概率小大有關,而與灰度值的大小無關。

根據均衡化變換函式一個重要性質:單值且單調遞增[1]。即說明經過灰度變換後,相對大小不變,較大的灰度仍對應較大的灰度,其概率也不發生任何變化。在此將

k[0,L1]Pr(rk)=Ps(rk)=0中出現概率為0的灰度值k去掉(因為其在影象上不顯示相應灰度),剩餘M個灰度值,灰度序列記為W。因為灰度相對大小不變和對應非零概率大小也不變,因此灰度均衡化前後得到新的灰度序列W相同。即有公式

j=0kPr(rj)=j=0kPs(rj)k=0,1,2,3,,M1成立。所以第二次直方圖均衡化之後的變換函式跟第一次直方圖均衡化一樣,直方圖均衡化結果也相同。

實驗論證

對影象pout.tif分別進行一次和連續兩次直方圖均衡化,比較兩個均衡後的灰度直方圖,程式碼如下:

function [ output_args ] = image_junheng( input_args )
%%無輸入輸出引數 I=imread('pout.tif');
subplot(3,2,1),imshow(I),title('原始影象'),hold on; subplot(3,2,2),imhist(I),title('原始影象直方圖'),hold on; I1=histeq(I); subplot(3,2,3),imshow(I1),title('一次均衡化'),hold on; subplot(3,2,4),imhist(I1),title('一次均衡化直方圖'),hold on; I2=histeq(I1); subplot(3,2,5),imshow(I2),title('二次均衡化'
),hold on; subplot(3,2,6),imhist(I2),title('二次均衡化直方圖'),hold on; end

實驗結果如下圖:
這裡寫圖片描述
從上圖可以看出經過直方圖均衡化的影象對比度更加高,顯示效果更好,同時經過一次直方圖均衡化和兩次的結果和對應的灰度直方圖幾乎一樣(那一點點差別因為離散化計算近似取值造成)。進而可以得出影象直方圖均衡化次數不同,結果相同。

[1]Gonzalez R C, Woods R E, 數字影象處理. 阮秋琦, 譯[J]. 數字影象處理, 第二版, 北京電子工業出版社, 北京, 2003:72-73