卷積是圖像處理中一個操作,是kernel在圖像的每個像素上的操作。Kernel本質上一個固定大小的矩陣數組,其中心點稱為錨點(anchor point)。把kernel放到像素數組之上,求錨點周圍覆蓋的像素乘積之和(包括錨點),用來替換錨點覆蓋下像素點值稱為卷積處理。數學表達如下:
$${\rm{H}}\left( {x,y} \right) = \sum\limits_{i = 0}^{{M_i} - 1} {\sum\limits_{j = 0}^{{M_j} - 1} {I\left( {x + i - {a_i},y + j - {a_j}} \right)K\left( {i,j} \right)} }$$
Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+2x1+8x1。
中心錨點像素 = sum / (m*n)。
常用的算子包括
1.Sobel卷積核:
卷積效果如圖所示:
2.Robert卷積核
卷積效果如圖所示:
3.拉普拉斯算子
得到的是整個圖像的差異,常用於邊緣檢測,獲取輪廓。
卷積效果如下:
4.邊緣處理
在卷積開始之前增加邊緣像素,填充的像素值為0或者RGB黑色,比如3x3在四周各填充1個像素的邊緣,這樣就確保圖像的邊緣被處理,在卷積處理之后再去掉這些邊緣。,圖像卷積的時候邊界像素,不能被卷積操作,原因在於邊界像素沒有完全跟卷積核重疊,所以當3x3卷積核濾波時候有1個像素的邊緣沒有被處理,5x5卷積核濾波的時候有2個像素的邊緣沒有被處理。