OpenCV图像处理10-图像模糊(二)

2021-03-04 10:47:26 浏览数 (1)

10-图像模糊(二)

中值滤波和双边滤波

  • 中值滤波
    • 统计排序滤波器
    • 中值滤波对于椒盐噪声有很好的抑制作用 原理是:将Size(xradius,yradius)窗口中的像素值排序,取中值赋给窗口中心点
  • 双边滤波
    • 均值滤波无法客服边缘像素信息丢失的缺陷,原因是均值滤波基于平均权重
    • 高斯滤波部分克服了该缺陷,但仍无法完全避免,因为没有考虑到像素值的不同
    • 高斯双边模糊是保留边缘的滤波方法,避免了边缘信息的丢失,能够保证图像轮廓不变

相关API

代码演示

代码语言:javascript复制
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;

int main() {
	Mat src = imread("D:\heroRcData\opencvProject\arrowImg\02\01.jpg");
	if (!src.data) {
		cout << "could not load image..." << endl;
		return -1;
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);

	//***************************************************
	//中值滤波
	Mat dst_median;
	medianBlur(src, dst_median, 5);
	string median_window = "medianBlur image";
	//imshow(median_window, dst_median);

	//***************************************************
	//双边滤波
	Mat dst_bilateral;
	bilateralFilter(src, dst_bilateral, 5, 150, 5);
	string bilateral_window = "bilateral image";
	imshow(bilateral_window, dst_bilateral);

	//**************************************************
	//高斯滤波(用于对比 凸显双边滤波效果)
	Mat dst_Gauss;
	GaussianBlur(src, dst_Gauss, Size(5, 5), 11, 11);
	string Gauss_window = "Gauss image";
	namedWindow(Gauss_window, CV_WINDOW_AUTOSIZE);
	imshow(Gauss_window, dst_Gauss);

	waitKey(0);
	return 0;
}

0 人点赞