3 基本圖像濾波運算
3.1 介紹
對於N*N的圖像,FFT將時間複雜度從
相比傅里葉正反變化及頻域相乘操作,直接在空間域卷積或許會節省計算量。
3.2 通過高斯平滑的噪聲抑制
低通濾波器鋒利截斷會產生震盪,e.g. 矩形窗<->(sinx/x)。
高斯濾波器:
f(x) =
一種接近高斯性質的卷積蒙板:
儘管抑制了噪聲,同時有用信號也被影響。
3.3 中值濾波
限幅濾波器(“limit” filter)
for all pixels in image do {
minP = min(P1,P2,P3,P4,P5,P6,P7,P8);
maxP = max(P1,P2,P3,P4,P5,P6,P7,P8);
if(P0 < minP)Q0 = minP;
else if(P0 > maxP)Q0 = maxP;
else Q0 = P0;
}
中值濾波器(median filter)
for(i = 0; i <= 255; i++)hist[i]=0;
for all pixels in image do {
for(m = 0; m <= 8; m++)hist[P[m]]++;
i = 0; sum = 0;
while(sum < 5){
sum = sum + hist[i];
i = i + 1;
}
Q0 = i - 1;
for(m = 0; m <= 8; m++)hist[P[m]] = 0;
}
中值濾波器在抑制脈衝噪聲上有很好的表現,並且減少了模糊,彌補了高斯平滑濾波器的主要缺陷。
對於n*n鄰域的中值濾波,若採用冒泡排序,時間複雜度高達
3.4 衆數濾波器(mode filters)
由於區域亮度分佈只計算鄰域中非常少的亮度值,所以我們很可能得到多峯值的分佈,而分佈的最高點不一定能象徵潛在的衆數。所以在計算衆數前分佈需要進行相當的平滑(smooth out)。
邊緣附近的分佈固有存在雙峯,平滑圖像一般爲單峯。
若鄰域橫跨一條邊緣,並且亮度分佈是雙峯的,則應該選取較大的峯作爲該點亮度值。選取較大峯的一種好的策略是消除較小峯。
衆數的位置能在中值確定後合理的估計。
首先找到衆數mode,然後找到與衆數最接近的極限值e,向相反方向移動衆數與極限值之間的距離得到截斷值2*mode-e。由於最初不知道衆數,可以用中值代替來估計。
截斷後分佈的中值更接近衆數,可以通過迭代的方式用中值來逼近衆數。
TMF(truncated median filter),截斷中值濾波器,不僅去除了噪聲,還增強了邊界。
TMF的一種實現:
do{//as many passes over image as necessary
for all pixels in image do{
compute local intensity distribution;
do{//iterate to improve estimate of mode
find minimum,median,and maximum intensity values;
decide from which end local intensity distribution should be truncated;
deduce where local intensity distribution should be truncated;
truncate local intensity distribution;
find median of truncated local intensity distribution;
}until median sufficiently close to mode of local distribution;
transfer estimate of mode to output image space;
}
}until sufficient enhancement of image;
使用場景:
中值濾波器:需要較大的脈衝信號抑制能力。
衆數濾波器 or TMF:銳化邊緣來增強圖像。
儘管TMF設計更多的是用來圖像增強,但是實際發現當脈衝噪聲非常多時,TMF的抑制效果很好。
3.5 排序濾波器(rank order filters)
鄰域n個值中的第r位作爲輸出。中值濾波器可以看作r=(n+1)/2的排序濾波器。
3.6 減少計算壓力
對於256*256的圖像,用30*30的高斯卷積蒙板來平滑,需要6400萬次基本運算。
可以將二維高斯卷積分解成一位高斯卷積:
將3*3高斯濾波器分解成:
可以將一個
高斯濾波器的分解是精確而不是近似的,而中值濾波器無法不近似的分解。通常的做法是依次進行兩次一維的中值濾波。
不能精確分解並不是非線性濾波器的特點,很多線性濾波器也不能精確分解。因爲n*n蒙板係數
3.7 銳化-反銳化蒙板(Sharp-Unsharp Masking)
將原圖像進行模糊處理,並用原圖像去減模糊的圖像。
3.8 中值濾波器引進的移位
3.8.1 連續二值圖像模型
如圖,對於連續二值圖像,對於r=b的圓形邊界B(圖像中圓B內部應爲黑色),以r=a的圓A爲鄰域,進行中值濾波,獲得到的邊界D(r=d),有:
兩個圓形重疊部分面積
重疊部分面積
其中
以及:
當
由中值濾波引進的邊界半徑減小
3.8.2 推廣到灰度圖像
同樣的,對於直線邊界,中值濾波不帶來移位。
對於曲線邊界,灰度圖像具有有限斜率。我們只需要找到一條等亮線,能把鄰域中的圖像分爲兩個相同大小的部分。
3.9 中值移位的離散模型
同樣的,對於直線邊界,不帶來移位。
假設一個像素的亮度是整個像素區域的平均值。
對於3×3鄰域,考慮中值等亮度線的曲率爲
其中
當中值落在中間一列的上下兩個像素,設曲率半徑
3.10 衆數濾波器引進的移位
同樣的,對於直線邊界,由於對稱性,不會帶來移位。
對於階躍曲線邊界,衆數濾波器與中值濾波器表現相同,由衆數濾波引進的邊界半徑減小
對於亮度平滑變化的邊界,圓形鄰域C中,等亮度線最長的那條成爲結果的亮度。顯而易見這條等亮度線與C的兩個交點,相連是一條直徑。我們需要計算該等亮度線的中點與直徑中點的偏差,模型同3.9中最後一例,有
鄰域平均濾波器的移位概括:
邊緣類型 | 均值濾波器 | 中值濾波器 | 衆數濾波器 |
---|---|---|---|
階躍 | |||
中間型?(Intermediate) | ~ |
||
線性 |
3.11 均值濾波器和高斯濾波器引進的移位
同樣的,對於直線邊界,不會帶來移位。
對於階躍曲線邊界,模型與中值和衆數濾波器相同,邊界半徑減小
對於亮度平滑變化的邊界,直觀的得到
3.12 排序濾波器引進的移位
//TBD
3.13 濾波器在視覺的工業應用中的作用
中值濾波器在抑制噪聲的同時會清除一些有用的細節。
邊界移位是噪聲抑制濾波器的普遍特徵。
可以採用邊緣檢測算法,然後在一個整體內抑制噪聲。
3.14 彩色圖像濾波
顏色會增加計算量,但是在評估水果成熟度等應用中非常有用。
中值濾波在彩色域中沒有定義,一種簡單的方式是分別對三個通道進行中值濾波,然後重新組成彩色圖像。
但是會帶來很多問題,最明顯的一個就是滲色(bleeding)。這種情況發生在脈衝噪聲只發生在一個通道且該點處於邊界附近。
一種標準的解決方案:
單通道的度量 median =
擴展到三色彩域 median =
其中
儘管矢量中值濾波器(VMF)不再分開對待三個通道,但是絕不保證完全消除滲色效應。
對於顏色的交匯處,會迷惑這些濾波算法,並無意中帶來少量的滲色效應。
矢量中值濾波器和矢量衆數濾波器都顯著的拜託了滲色效應,標量衆數濾波器和標量中值濾波器一樣會產生滲色效應
3.15 結論
本章詳述了基於鄰域的噪聲抑制和圖像增強算法的實現。
展示了針對特定需求設計特定算法的重要性:不僅有效實現功能,並且針對速度、存儲等條件優化。
另外論述了選擇策略時要考慮和處理不利的屬性,例如移位。
接着論述了一些處理離散化圖像的基本問題。
最後,特定類型的排序濾波器的邊界移位十分重要,因爲它可以在形態學處理時轉化爲有利條件。
下一章將介紹圖像分割,以尋找圖像中目標的位置。
3.16 參考文獻
//忽略
//本章完,不定時糾錯與補充