圖像處理中濾波(filtering)與卷積(convolution)的區別

本人轉自 http://blog.csdn.net/haoji007/article/details/53911940

圖像處理中濾波和卷積是常用到的操作。很多人認爲卷積就是濾波,兩者並無區別,其實不然。兩者在原理上相似,但是在實現的細節上存在一些區別。這篇博文主要敘述這兩者之間的區別。

1、濾波

簡單來說,濾波操作就是圖像對應像素與掩膜(mask)的乘積之和。

比如有一張圖片和一個掩膜,如下圖:



那麼像素(i,j)的濾波後結果可以根據以下公式計算:

其中G(i,j)是圖片中(i,j)位置像素經過濾波後的像素值。

當掩膜中心m5位置移動到圖像(i,j)像素位置時,圖像(i,j)位置像素稱爲錨點

濾波步驟:

  1. 對原始圖像的邊緣進行某種方式的填充(一般爲0填充)。
  2. 將掩膜劃過整幅圖像,計算圖像中每個像素點的濾波結果。
依照這個步驟,假設我們有一個二維矩陣I,掩膜M,則濾波的結果如下:


濾波後的圖像大小不變。



2、卷積

卷積的原理與濾波類似。但是卷積卻有着細小的差別。
卷積操作也是卷積核與圖像對應位置的乘積和。但是卷積操作在做乘積之前,需要先將卷積核翻轉180度,之後再做乘積。

卷積步驟:
  1. 180度翻轉卷積核。
  2. 不做邊界填充,直接對圖像進行相應位置乘積和。
從以上步驟可以看出,如果卷積核不是中心對稱的,那麼卷積和濾波操作將會得到完全不一樣的結果。另外,卷積操作會改變圖像大小!

由於卷積操作會導致圖像變小(損失圖像邊緣),所以爲了保證卷積後圖像大小與原圖一致,經常的一種做法是人爲的在卷積操作之前對圖像邊緣進行填充。

最後,關於卷積後圖像尺寸的計算:假設原始圖像爲M*M,卷積核大小爲N*N,邊緣填充像素個數爲pad,步長爲stride。則卷積後圖像的尺寸變爲:m =(M-N+2*pad)/sride+1。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章