opencv图像处理——滤波器

opencv图像处理——滤波器

均值滤波器

  假设我们有一个3*3的模板,系数全为1,那么欲求的中心点像素值就是以该模板为中心的9个像素的平均值来代替。根据定义可知,该滤波器具有模糊边缘的负面效应。通过空间均值处理来模糊图像,可以突出感兴趣的物体,即将较部分图像融入背景中 ,部分图像‘突出显示’出来,达到平滑图像的作用。平滑既是模糊

在这里插入图片描述


	cv::boxFilter(image, dst, -1, cv::Size(3, 3), cv::Point(-1,-1));
	cv::namedWindow("boxFilter", cv::WindowFlags::WINDOW_FREERATIO);
	cv::imshow("boxFilter", dst);




在这里插入图片描述



中值滤波器

  中值滤波也是消除图像噪声最常见的手段之一,特别是消除椒盐噪声,中值滤波的效果要比均值滤波更好。中值滤波是跟均值滤波唯一不同是,不是用均值来替换中心每个像素,而是将周围像素和中心像素排序以后,取中值,一个3X3大小的中值滤波如下:
在这里插入图片描述


    cv::medianBlur(image, dst, 3);
	cv::namedWindow("medianBlur", cv::WindowFlags::WINDOW_FREERATIO);
	cv::imshow("medianBlur", dst);




在这里插入图片描述


双边滤波器

  双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部的特点。
双边滤波器的好处是可以做边缘保存,这个特点对于一些图像模糊来说很有用。一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。一般的高斯模糊在进行采样时主要考虑了像素间的空间距离关系,但是却并没有考虑像素值之间的相似程度,因此这样我们得到的模糊结果通常是整张图片一团模糊。


	cv::bilateralFilter(image, dst, 15, 100, 5);
	cv::namedWindow("bilateralFilter", cv::WindowFlags::WINDOW_FREERATIO);
	cv::imshow("bilateralFilter", dst);




在这里插入图片描述



高斯滤波器

  高斯滤波(高斯平滑)是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯滤波是最有用的滤波器 (尽管不是最快的)。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效。


    cv::GaussianBlur(image, dst, cv::Size(5, 5), 3, 0);
	cv::namedWindow("GaussianBlur", cv::WindowFlags::WINDOW_FREERATIO);
	cv::imshow("GaussianBlur", dst);




在这里插入图片描述







对图像滤波操作后,对其进行 == cv::filter2D == 锐化提高对比度操作,效果更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值