- 中值滤波
中值对椒盐噪声有很好的抑制作用,采取中间点的方式消除异常值(较大孤立的异常值)
中值模糊medianBlur(Mat src, Mat dest, ksize) - 双边滤波
均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重;
高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同;
高斯双边模糊是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变;
双边模糊bilateralFilter(src, dest, d=15, 150, 3)
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
//加载图像
Mat src;
src = imread("../path.jpg");
if (src.empty())
{
cout << "could not load image..." << endl;
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
Mat dst1;
//中值模糊//去除异常值(差异较大的值)//可用于人脸祛黑点
medianBlur(src,dst1,3);
namedWindow("medianBlur", WINDOW_AUTOSIZE);
imshow("medianBlur", dst1);
Mat dst2;
//双边高斯模糊//保留边缘信息//可用于人像抠图
bilateralFilter(src, dst2,
15,//像素领域的直径
150,//颜色空间滤波器的sigma值sigmaColor//数值越大,平滑时所包括的强度(色彩)越大,因此图像的不连续性将会更显著
3);//坐标空间滤波器的sigma值sigmaSpace//与高斯滤波器中的sigma值相似
namedWindow("bilateralFilter", WINDOW_AUTOSIZE);
imshow("bilateralFilter", dst2);
waitKey(0);
return 0;
}
输出结果: