雙邊濾波
雙邊濾波很有名,使用廣泛,簡單的說就是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。
先看看我們熟悉的高斯濾波器
其中w是權重,i和j是畫素索引,k是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。
再來看看雙邊濾波器,它只是在原有高斯函式的基礎上加了一項,如下
其中 i 是畫素的強度值,所以在強度差距大的地方(邊緣),權重會減小,濾波效應也就變小。總體而言,在畫素強度變換不大的區域,雙邊濾波有類似於高斯濾波的效果,而在影象邊緣等強度梯度較大的地方,可以保持梯度。
引導濾波
引導濾波是近三年才出現的濾波技術,知道的人還不多。它與雙邊濾波最大的相似之處,就是同樣具有保持邊緣特性。在引導濾波的定義中,用到了區域性線性模型,至於該模型,可以暫時用下圖簡單的理解
該模型認為,某函式上一點與其鄰近部分的點成線性關係,乙個複雜的函式就可以用很多區域性的線性函式來表示,當需要求該函式上某一點的值時,只需計算所有包含該點的線性函式的值並做平均即可。這種模型,在表示非解析函式上,非常有用。
同理,我們可以認為影象是乙個二維函式,而且沒法寫出解析表示式,因此我們假設該函式的輸出與輸入在乙個二維視窗內滿足線性關係,如下
其中,q是輸出畫素的值,i是輸入影象的值,i和k是畫素索引,a和b是當視窗中心位於k時該線性函式的係數。其實,輸入影象不一定是待濾波的影象本身,也可以是其他影象即引導影象,這也是為何稱為引導濾波的原因。對上式兩邊取梯度,可以得到
即當輸入影象i有梯度時,輸出q也有類似的梯度,現在可以解釋為什麼引導濾波有邊緣保持特性了。
下一步是求出線性函式的係數,也就是線性回歸,即希望擬合函式的輸出值與真實值p之間的差距最小,也就是讓下式最小
這裡p只能是待濾波影象,並不像i那樣可以是其他影象。同時,a之前的係數(以後都寫為e)用於防止求得的a過大,也是調節濾波器濾波效果的重要引數。通過最小二乘法,我們可以得到
其中,在計算每個視窗的線性係數時,我們可以發現乙個畫素會被多個視窗包含,也就是說,每個畫素都由多個線性函式所描述。因此,如之前所說,要具體求某一點的輸出值時,只需將所有包含該點的線性函式值平均即可,如下
這裡,w_k是所有包含畫素i的視窗,k是其中心位置。
當把引導濾波用作邊緣保持濾波器時,往往有 i = p ,如果e=0,顯然a=1, b=0是e(a,b)為最小值的解,從上式可以看出,這時的濾波器沒有任何作用,將輸入原封不動的輸出。如果e>0,在畫素強度變化小的區域(或單色區域),有a近似於(或等於)0,而b近似於(或等於)
在濾波效果上,引導濾波和雙邊濾波差不多,在一些細節上,引導濾波較好。引導濾波最大的優勢在於,可以寫出時間複雜度與視窗大小無關的演算法(打算在之後的文章中討論),因此在使用大視窗處理時,其效率更高。
關於引導濾波更多的討論和應用,可以參看下面的**
guidedfilter_eccv10.pdf
**:
保邊濾波器 雙邊濾波與引導濾波
雙邊濾波 雙邊濾波很有名,使用廣泛,簡單的說就是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。先看看我們熟悉的高斯濾波器 其中w是權重,i和j是畫素索引,k是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。再來看看雙...
保邊濾波中雙邊濾波與引導濾波的區別
雙邊濾波 雙邊濾波是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。高斯濾波器如下 其中w是權重,i和j是畫素索引,k是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。再來看看雙邊濾波器,它只是在原有高斯函式的基礎上加...
C C OpenCV中值濾波 雙邊濾波
中值濾波 void medianblur inputarray src,outputarray dst,int ksize 只能3,5,7,9後的奇數 如下 include include include using namespace cv int main 執行結果 雙邊濾波bilateralf...