中值模糊与双边模糊
1、中值模糊
中值模糊的作用:
中值滤波对椒盐噪声有很好的抑制作用。
原理:
中值模糊api:
medianBlur(src, dst, ksize);
2、双边模糊
均值模糊:均值模糊无法克服边缘像素信息丢失,因为基于平均权重。
高斯模糊:高斯模糊可以部分克服边缘像素的信息的丢失,但不能完全避免,因为像素值的不同。
高斯双边模糊:高斯双边模糊可以避免边缘信息的丢失,保留图像的轮廓。
双边模糊api:
bilateralFilter(src, dst, d, color, space);
d:计算的半径,半径之内的像素都会被纳入计算。
color:决定多少差值内的像素会被计算
space:如果d的值大于0,则声明无效,否则根据它来计算d值中值模糊的ksize大小必须是大于1而且必须是奇数。
3、代码实现
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** args)
{
Mat img = imread("G:/testpic/img.png");
if (img.empty())
{
printf("cannot load the image");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", img);
Mat dst1, dst2;
//中值模糊
medianBlur(img, dst1, (3,3));
namedWindow("output1", WINDOW_AUTOSIZE);
imshow("output1", dst1);
//双边模糊
bilateralFilter(img, dst2, d=10, 50, 3);
namedWindow("output2", WINDOW_AUTOSIZE);
imshow("output2", dst2);
waitKey(0);
return 0
}
示例图:
中值模糊
双边模糊