OpenCV 中值滤波(非线性滤波)

1、非线性滤波
多数情况下,使用邻域像素的非线性滤波会得到相当好的效果。比如在噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大值的时候,用高斯滤波器对图像进行模糊的话,噪声像素是不会被去除的,它们只是被转换为更柔和但仍然是可见的散粒。

2、中值滤波
基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,此方法在去除脉冲噪声、椒盐噪声的同时又能保留图像的边缘细节。
基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。这对于斑点噪声和椒盐噪声非常有用,因为它不依赖于邻域内那些与典型值差别很大的值。
中值滤波在一定的条件下可以克服常见线性滤波器,如最小均方滤波、方框滤波、均值滤波等带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效,也常用于保护边缘信息。

3、中值滤波API

C++: void medianBlur(InputArray src,OutputArray dst,int ksize)
参数1:输入图像src,填134通道的Mat类型图像,当ksize为35时,图像深度需要为CV_8U、CV_16U、CV_32F其中之一。
参数2:输出图像dst,即目标图像。
参数3:int类型ksize,孔径的线形尺寸,这个是必须为奇数

4、案例

void median()
{
	Mat src = imread("img.jpg", 0);
	Mat dst;

	namedWindow("原图", 0);
	imshow("原图", src);

	medianBlur(src, dst, 5);

	namedWindow("中值滤波处理图", 0);
	imshow("中值滤波处理图", dst);
}

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘·月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值