均值滤波:blur
高斯滤波:GaussianBlur
中值模糊:medianBlur
双边模糊:bilateralFilter
均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重
高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同
中值模糊是去除图像的噪点、小黑点
双边模糊 – 是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat src,dst1,dst2,dst3,dst4;//初始化一个操作对象
src = imread("C:/Users/JAY/Desktop/Others/tang.jpg");
if (!src.data)//判断图片是否加载进来
{
cout << "不能加载图片" << endl;
return -1;
}
char input_title[] = "加载的图片";
namedWindow("加载的图片", WINDOW_AUTOSIZE);
imshow(input_title, src);//""内命名一致,才能显示在一个窗口
//均值模糊
blur(src, dst1, Size(15, 15), Point(-1, -1));//Size(x方向模糊,y方向模糊(尽量选择奇数))
imshow("均值滤波的图片", dst1);
//高斯模糊(全图模糊)
GaussianBlur(src, dst2, Size(15, 15), 11, 11);
imshow("高斯滤波的图片", dst2);
//中值滤波(去图像上的噪点、黑点)
medianBlur(src, dst3, 3);
imshow("中值滤波的图片", dst3);
//双边滤波(轮廓还在,其它模糊)
bilateralFilter(dst3,dst4, 15, 150, 3);
imshow("双边滤波的图片", dst4);
waitKey(0);
return 0;
}
结果