四種經典濾波算法,在opencv文檔中都能找到的,熟悉一下調用規范。
#include "cv.h" #include "highgui.h" #include <iostream> using namespace std; using namespace cv; int main(int argc, char* argv[]) { Mat src = imread("misaka.jpg"); Mat dst; //參數是按順序寫的 //高斯濾波 //src:輸入圖像 //dst:輸出圖像 //Size(5,5)模板大小,為奇數 //x方向方差 //Y方向方差 GaussianBlur(src,dst,Size(5,5),0,0); imwrite("gauss.jpg",dst); //中值濾波 //src:輸入圖像 //dst::輸出圖像 //模板寬度,為奇數 medianBlur(src,dst,3); imwrite("med.jpg",dst); //均值濾波 //src:輸入圖像 //dst:輸出圖像 //模板大小 //Point(-1,-1):被平滑點位置,為負值取核中心 blur(src,dst,Size(3,3),Point(-1,-1)); imwrite("mean.jpg",dst); //雙邊濾波 //src:輸入圖像 //dst:輸入圖像 //濾波模板半徑 //顏色空間標准差 //坐標空間標准差 bilateralFilter(src,dst,5,10.0,2.0);//這里濾波沒什么效果,不明白 imwrite("bil.jpg",dst); waitKey(); return 0; }
處理效果:
原圖:
高斯濾波:
中值濾波:
均值濾波:
雙邊濾波,大家看真的有效果嗎,我怎么調參數都是這幅圖: