opencv 高斯滤波_【视觉知识】滤波

本文介绍了图像滤波的基本概念和作用,包括均值滤波、中值滤波和高斯滤波的原理。通过OpenCV库展示了如何在C++中实现这些滤波方法,探讨了边界处理策略,并提供了滤波在视觉处理中的应用场景。
摘要由CSDN通过智能技术生成
b30dd64ec8334eb9137b695dd27b36e8.png

引言

滤波是将图像模糊化的一个有力工具,进行视觉处理前进行滤波可以过滤掉一些不想要的细节部分,能够增强一些噪点影响剧烈的特征。该文主要讲述了均值滤波中值滤波高斯滤波的原理及具体实现方法及应用场景。

1 2e9b106260b210ceec30d5b7d4c2806f.png 滤波的概念

滤波是一个邻域操作算子,利用给定像素周围的像素的值决定此像素的最终的输出值。

图像滤波既可以在实域进行,也可以在频域进行。图像滤波可以更改或者增强图像。

通过滤波,可以强调一些特征或者去除图像中一些不需要的部分。

在对图像应用滤波器进行过滤时,边界问题是一个需要处理的问题。一般来说,有3种处理的方法。

1. 不做边界处理

不对图像的边界作任何处理,在对图像进行滤波时,滤波器没有作用到图像的四周,因此图像的四周没有发生改变。

cdb6d8a6b582fd3ef99f7f3157f03195.png

2. 填充0

对图像的边界做扩展,在扩展边界中填充0,对于边长为2k+1的方形滤波器,扩展的边界大小为k,若原来的图像为[m, n],则扩展后图像变为[m+2k, n+2k]。进行滤波之后,图像会出现一条黑色的边框。

86d13a396b7341d6d3b21691d4fab89d.png

3. 填充最近像素值

扩展与 填充0 的扩展类似,只不过填充0的扩展是在扩展部分填充0,而这个方法是填充距离最近的像素的值。

4e9a1a992e5e1717b4bcbf2db0da5bfe.png

2

2e9b106260b210ceec30d5b7d4c2806f.png 常见滤波

1.均值滤波

用其像素点周围像素的平均值代替原像素值,在滤除噪声的同时也会滤掉图像的边缘信息。在OpenCV中,可以使用boxFilter和blur函数进行均值滤波。

2.中值滤波

中值滤波用测试像素周围邻域像素集中的中值代替原像素。中值滤波去除椒盐噪声和斑块噪声时,效果非常明显。在OpenCV中,可以使用函数medianBlur进行操作。

3.高斯滤波

高斯滤波使用测试像素周围邻域像素进行加权后再平局得到新像素值。其权重符合正态分布。

eeb54f0141285bed832c7f977962a46d.png

二维高斯权重示意图

3

2e9b106260b210ceec30d5b7d4c2806f.png

均值滤波实现

#include "opencv2/imgproc.hpp"

#include "opencv2/highgui.hpp&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值