直方图均衡化取整怎么计算_玩转直方图处理之直方图均衡化、规定化
冒泡....雙十一剛過~購物狂歡完還是要收心學(xué)習(xí)鴨!今天來說一說直方圖。
直方圖
定義:
直方圖是一種統(tǒng)計報告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。 一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。
灰度直方圖是灰度級的函數(shù),描述的是圖像中具有該灰度級的像元的個數(shù)。以橫軸表示灰度級,以縱軸表示每一灰度級具有的像元數(shù)或該像元數(shù)占總像元數(shù)的比例值,做出的條形統(tǒng)計圖即為灰度直方圖。如以下:
直方圖示例.png
由圖像可以得到的一些直方圖的性質(zhì):
a.圖形直觀可以發(fā)現(xiàn)它首先是一個一維離散函數(shù)圖像。
b.直方圖表示一幅圖像中不同灰度像素出現(xiàn)的統(tǒng)計信息,它只能反映該圖像中不同灰度值出現(xiàn)的頻數(shù)(概率),而不能表示出像素的位置等其他信息。
c.任何一幅特定的圖像都有唯一的直方圖與之對應(yīng),但不同的圖像可以有相同的直方圖。
根據(jù)直方圖的形態(tài)可以大致推斷圖像質(zhì)量的好壞。由于圖像包含有大量像元,其像元灰度值分布應(yīng)符合概率統(tǒng)計分布規(guī)律。假定像元的灰度值是隨機分布,那么其直方圖應(yīng)該是正態(tài)分布。
image.png
直方圖的均衡化
直方圖均衡化是將原圖像的直方圖通過變換函數(shù)變?yōu)榫鶆虻闹狈綀D,然后按均勻直方圖修改原圖像,從而獲得一幅灰度分布均勻的新圖像。
image.png
image.png
接下來就推導(dǎo)一下均衡化的過程:
首先考慮連續(xù)的灰度值,用變量 r 表示輸入圖像的灰度,用 s 表示輸出圖像的灰度。r 范圍是 [ 0, L-1],則函數(shù): s = T(r), r 的范圍:[0 , L-1] (0為全黑,L-1為全白)。
T(r)滿足下列兩個條件:
1.T(r)在區(qū)間0≤r≤1中為 嚴格單調(diào)遞增函數(shù),保證原圖各灰度級在變換后仍保持從黑 到白(或從白到黑)的排列次序)
2.當(dāng)0≤r≤1時,0≤T(r) ≤1,保證變換前后灰度值動態(tài)范圍的一致性。
在處理的過程中需要引入重要的變換函數(shù):
image.png其中:
根據(jù)學(xué)過的概率論可知:
image.png
所以可以得到如下過程:
image.png
最后可以發(fā)現(xiàn):得到ps(s)是一個均勻的概率密度函數(shù),與pr(r)無關(guān)
對于離散值,我們處理其概率(直方圖值)與求和來替代處理概率密度函數(shù)與積分。因此,一幅數(shù)字圖像中灰度級出現(xiàn)的概率(近似)和離散變換形式如下:
iMN為圖像的總像素
接下來舉例說明:
image.png
1.第一步利用變換公式求出s
image.png
2.把S的值化為近似的整數(shù)
s0 = 1.33≈1 ;s1 =3.08≈3 ;s2= 4.05≈4 ;
s3 = 5.67≈6 ;s4 =6.23≈6 ;s5 = 6.66≈7;
s6= 6.86≈7 ;s7 = 7.00≈7 ;
近似完之后,發(fā)現(xiàn)剩下1、3、4、6、7這五個不同的灰度級
(r0=0被映射為S0=1)
3.接下來就統(tǒng)計新的輸出的灰度的相關(guān)參數(shù)
注意:sk=6的為s3和s4故nk是兩個的疊加,p(sk)的值為nk/MN(4096)
作圖直觀:
image.png
Matlab代碼參考
I = imread('rice.png');
[height,width] = size(I);
figure
subplot(221)
imshow(I)%顯示原始圖像
subplot(222)
imhist(I)%顯示原始圖像直方圖
%進行像素灰度統(tǒng)計;
NumPixel = zeros(1,256);%統(tǒng)計各灰度數(shù)目,共256個灰度級
for i = 1:height
for j = 1: width
NumPixel(I(i,j) + 1) = NumPixel(I(i,j) + 1) + 1;%對應(yīng)灰度值像素點數(shù)量增加一
end
end
%計算灰度分布密度
ProbPixel = zeros(1,256);
for i = 1:256
ProbPixel(i) = NumPixel(i) / (height * width * 1.0);
end
%計算累計直方圖分布
CumuPixel = zeros(1,256);
for i = 1:256
if i == 1
CumuPixel(i) = ProbPixel(i);
else
CumuPixel(i) = CumuPixel(i - 1) + ProbPixel(i);
end
end
%累計分布取整
CumuPixel = uint8(255 .* CumuPixel + 0.5);
%對灰度值進行映射(均衡化)
for i = 1:height
for j = 1: width
I(i,j) = CumuPixel(I(i,j));
end
end
subplot(223)
imshow(I)%顯示原始圖像
subplot(224)
imhist(I)%顯示原始圖像直方圖
直方圖的規(guī)定化
從文字就可以看出,規(guī)定化就是把直方圖轉(zhuǎn)化為既定的規(guī)定化的形狀。
過程如下:
先設(shè) Pr(r)和Pz(z)分別表示原始灰度圖像和目標圖像的灰度分布概率密度函數(shù).根據(jù)直方圖規(guī) 定化的特點與要求,應(yīng)使原始圖像的直方圖具有Pz(z)所表示的形狀。因此建立Pr(r)和 Pz(z)之間的關(guān)系是直方圖規(guī)定化必須解決的問題。
離散表達形式:
接下來舉個例子說明:
image.png
第一步:要先根據(jù)圖a提供的直方圖求出輸出之后均衡的值
公式參考:
求得完成后取近似值
s0 = 1.33≈1 ;s1 =3.08≈3 ;s2= 4.05≈4 ;
s3 = 5.67≈6 ;s4 =6.23≈6 ;s5 = 6.66≈7;
s6= 6.86≈7 ;s7 = 7.00≈7 ;
第二步:求變換函數(shù)G的所有值
參考公式如下:
image.png
過程如下:
image.png
再將求好的換成近似值
G(z0)≈0;G(z1)≈0;G(z2)≈0;
G(z3)≈1;G(z4)≈2;G(z5)≈5;
G(z6)≈6;G(z7)≈7;
第三步:尋找組射關(guān)系
根據(jù)剛剛兩步的計算,可以發(fā)現(xiàn)G(z3)≈1,s0≈1,這種情況下就是一個完美的匹配了,也就是從s0→z3
因此可以列表
image.png
然后可以求出相應(yīng)的概率,比如S=1映射到Z=3,790個像素為1,概率為790/4096=0.19.具體如下:
image.png
說明:和上一題聯(lián)系
Pz(z=4)相當(dāng)于Pr(r=1)
Pz(z=5)相當(dāng)于Pr(r=2)--S=5映射到Z=5
Pz(z=6)相當(dāng)于Pr(r=3)+Pr(r=4)
Pz(z=7)相當(dāng)于Pr(r=5)+Pr(r=6)+Pr(r=7)
圖形直觀:
image.png
雖然沒有完全匹配,但是也達到了將灰度明確移動到灰度級高端。
Ending 不容易地收尾啦~
總結(jié)
以上是生活随笔為你收集整理的直方图均衡化取整怎么计算_玩转直方图处理之直方图均衡化、规定化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各式各样的计算机教学设计,7. 各式各样
- 下一篇: 黑茶