(一)中值濾波
-統計排序濾波器
-對椒鹽噪聲有很好的抑制作用
對3*3領域像素進行排序
取中值作爲中心像素點
(二)雙邊濾波
高斯雙邊濾波是邊緣保留的濾波方法,避免了邊緣信息的缺失,保留了圖像輪廓不變
判斷相鄰像素點是否相差太大
選擇性的進行模糊
(三)相關API
(1)中值模糊medianBlur(Mat src,Mat dst,Ksize)
-Ksize必須是大於1而且是奇數
(2)雙邊模糊bilateralFilter(src,dst,d = 15,150,3)
-15-計算的半徑,如果提供-1,則根據sigma space參數取值
-150-決定差值多少之內的像素會被計算
-3-sigma space,如果d值大於0則聲明無效,否則根據它來計算d值大小
(代碼部分)
#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src;
src = imread("D:/picture/Curry.jpeg");
if (src.empty()) //如果沒有找到圖片
{
printf("could not find picture.....\n");
return -1;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src);
Mat dst = src.zeros(src.size(), src.type());
Mat dou = src.zeros(src.size(), src.type());
medianBlur(src, dst, 5);
namedWindow("中值濾波", CV_WINDOW_AUTOSIZE);
imshow("中值濾波", dst);
bilateralFilter(src, dou, 5, 80, 1);
namedWindow("雙邊濾波", CV_WINDOW_AUTOSIZE);
imshow("雙邊濾波", dou);
waitKey(0); //等待
return 0;
}
實驗效果