1.高斯濾波
void cv::GaussianBlur(
cv::InputArray src, // 輸入圖像
cv::OutputArray dst, // 輸出圖像
cv::Size ksize, // 核大小
double sigmaX, // x方向高斯半寬
double sigmaY = 0.0, // y方向高斯半寬
int borderType = cv::BORDER_DEFAULT // 邊界處理方法
);
適合處理高斯噪聲。(往中心集中的那種)

高斯濾波是一種線性平滑濾波,對于除去高斯噪聲有很好的效果。
高斯算法在官方文檔給出的解釋是高斯濾波是通過對輸入數(shù)組的每個點與輸入的高斯濾波模板執(zhí)行卷積計算然后將這些結(jié)果一塊組成了濾波后的輸出數(shù)組,通俗的講就是高斯濾波是對整幅圖像進行加權(quán)平均的過程,每一個像素點的值都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到。
高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點的值。
InputArray src: 輸入圖像,可以是Mat類型,圖像深度為CV_8U、CV_16U、CV_16S、CV_32F、CV_64F。
2.均值濾波–blur函數(shù)
圖像的簡單平滑就是均值濾波,對圖像中一定鄰域內(nèi)的像素灰度值求平均值,將平均的結(jié)果作為中心像素的灰度保存在結(jié)果圖中。(在多通道圖像中,每個通道需要分別計算。)
void cv::blur(
cv::InputArray src, // 輸入圖像
cv::OutputArray dst, // 輸出圖像
cv::Size ksize, // 核大小
cv::Point anchor = cv::Point(-1,-1), // 錨點位置
int borderType = cv::BORDER_DEFAULT // 邊界處理方法
);
3.boxFilter方框濾波
最主要的作用就是來模糊一張圖片(可以部分的消除掉圖像出尖銳的邊緣點)
Mat dstImage;
boxFilter(srcImage, dstImage, -1, Size(5, 5));
inputArray類型的src,輸入圖像。Mat類的對象。該函數(shù)對通道是獨立處理的,且可以處理任意通道數(shù)的圖像,但是待處理的圖像深度應(yīng)該是CV_8U,CV_16U,CV_16S,CV_32F,CV_64F。
Size類型的lsize,內(nèi)核的大小。一般用Size(w,h)的寫法表示,例如Size(3,3),Size(5,5)。
常見的線性濾波器:
(1)低通濾波器:允許低頻率通過;
(2)高通濾波器:允許高頻率通過;
(3)帶通濾波器 :允許一定區(qū)域的頻率通過;
(4)帶阻濾波器 :阻止一定范圍內(nèi)的頻率并且允許其他頻率通過;
(5)全通濾波器 :允許所有頻率通過,僅僅改變相位;
(6)陷波濾波器(Band stop filter):阻止一個狹窄頻率范圍通過的特殊帶阻濾波器。
線性鄰域濾波是一種常用的鄰域算子。鄰域算子(局部算子)是利用給定像素周圍的像素值的決定此像素的最終輸出值的一種算子。下面這個圖解可以很好的說明這個過程:
鄰域算子(局部算子)是利用給定像素周圍的像素值的決定此像素的最終輸出值的一種算子。而線性鄰域濾波是一種常用的鄰域算子,像素的輸出值取決于輸入像素的加權(quán)和