前言:電腦視覺是讓電腦理解映像與視頻,本系列部落格的目的在於加深自己在學習電腦視覺過程中對相關知識理解與回顧。其中很多內容參照:教材《ComputerVision: Algorithms and Applications》,教材《Learning Image Processing with OpenCV》工具書《LearningOpenCV》,國外大學的課程《Computer Vision》和課程《ComputerVision》。
映像濾波既可以在實域進行,也可以在頻域進行。映像濾波可以更改或者增強映像。通過濾波,可以強調一些特徵或者去除映像中一些不需要的部分。濾波是一個鄰網域作業運算元,利用給定像素周圍的像素的值決定此像素的最終的輸出值。(個人認為《LearningImage Processing with OpenCV》中這一段寫的很好:Image filtering is a process to modify or enhance images.Emphasizing certain features or removing others in an image are examples ofimage filtering. Filtering is a neighborhood operation. The neighborhood is aset of pixels around a selected one. Image filtering determines the outputvalue of a certain pixel located at a position (x,y) by performing someoperations with the values of the pixels in its neighborhood.)
映像濾波可以通過公式:
進行計算,其中K為濾波器,在很多文獻中也稱之為核(kernel)。常見的應用程式套件括去噪、映像增強、檢測邊緣、檢測角點、模板匹配等。其中用於平滑映像的常見濾波運算元包括(Code:https://github.com/opencv/opencv/blob/master/samples/cpp/tutorial_code/ImgProc/Smoothing.cpp):
1. 均值濾波(normalized box filter):用其像素點周圍像素的平均值代替元像素值,在濾除雜訊的同時也會濾掉映像的邊緣資訊。在OpenCV中,可以使用boxFilter和blur函數進行均值濾波。均值濾波的核為:
2. 高斯濾波(Gaussian filter):高斯濾波為最常用的濾波器,具有可分離性質,可以把二維高斯運算轉換為一維高斯運算,其本質上為一個低通濾波器。在OpenCV中可通過函數GaussianBlur進行操作。
3. 中值濾波(median filter):中值濾波用測試像素周圍鄰域像素集中的中值代替原像素。中值濾波去除椒鹽雜訊和斑塊雜訊時,效果非常明顯。在OpenCV中,可以使用函數medianBlur進行操作。
4. 雙邊濾波(bilateral filter):雙邊濾波在平滑映像時能夠很好的保留邊緣特性,但是其運算速度比較慢。在OpenCV中,可以使用函數bilateralFilter進行操作。
除了平滑去噪,映像銳利化,求邊緣等也是常見的映像濾波應用。這類濾波器常常使用一節或者二階差分(或微分,對於數位影像而言,其為離散訊號,長用差分代替導數)核運算元對映像進行濾波。一節差分常用於求取映像邊緣。二階差分常用於映像增強。常用的這類運算元包括:
1. Sobel operator:Sobel運算元通過計算水平和垂直方向上的一節差分來進行計算。在OpenCV函數中,可通過使用Sobel函數進行計算。
2. Laplacian operator:Laplacian運算元通過計算二階差分(微分)來進行計算。在OpenCV函數中,可通過使用Laplacian函數進行計算。
除了上面列舉的較為經典的濾波器(或者說是核運算元)外,在OpenCV中也可以自己定義自己的濾波器,然後使用filter2D函數進行運算。
對於以上在實域進行濾波的濾波器來說,邊界問題是一個不得不考慮的事情。通常有以下幾種辦法來進行處理:
(black) (wrap around) (copy edge) (reflectacross edge)
除了在實域進行濾波之外,在頻域也可以進行濾波。傅裡葉變換儲存每個頻率對於的幅度和相位資訊,其中幅度表示在某個特定的頻率訊號有多少訊號。相位則表示訊號的空間資訊,主要指方向資訊。
在頻域中濾波主要就是設計相應的低通、高通或者帶通等濾波器以實現保留某些頻率,濾除其餘頻率的目的。此外在實域中的卷積運算可以放到頻域中做乘積運算,可以降低運算複雜度。