OpenCV图像滤波,C++

图像平滑(smoothing)也称为“模糊处理”(bluring), 是一项简单且使用频率很高的图像处理方法。可以用来压制、弱化或消除图像中的细节、突变、边缘和噪声

但最常见的是用来减少图像上的噪声或者失真。降低图像分辨率时,平滑处理是很重要的。

图像噪声是图像在获取或传输的过程中受到随机信号的干扰,在图像上出现的一些随机的、离散的、孤立的像素点,这些点会干扰人眼对图像信息的分析。

图像的噪声通常是比较复杂的,很多时候将其看成是多维随机过程,因而可以借助于随即过程描述噪声,即使用概率分布函数 和 概率密度函数

噪声和图像信号的关系,可以分为:

  • 加性噪声,加性噪声和图像信号强度不相关,这类噪声可以看着理想无噪声图像f和噪声的和。
  • 乘性噪声,乘性噪声和图像信号是相关的,往往随图像信号的变化而变化。
    而为了分析处理的方便,常常将乘性噪声近似认为是加性噪声,而且总是假定信号和噪声是互相独立的。

最重要的来了,按照概率密度函数(PDF)分类:

  • 高斯噪声,高斯噪声模型经常被用于实践中。
  • 脉冲噪声(椒盐噪声),图像上一个个点,也可称为散粒和尖峰噪声。
  • 伽马噪声
  • 瑞利噪声
  • 指数分布噪声
  • 均匀分布噪声
    这种分类方法,引入了数学模型,对设计过滤算法比较有帮助。

图像滤波与滤波器

         何为图像滤波呢?指的是在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像处理中不可缺少的一项操作。好的滤波可以有效的图像处理的有效性和可靠性。我们知道,信号或者图像的能量大部分是集中在幅度谱的低频和中频段,而高频段往往会伴有噪声的存在。因此,我们设计好的滤波器必须能够较好区分高低频段。

对于图像滤波一般有两点要求:(1)不能损坏图像的重要特征信息(如轮廓和边缘等);

                                                  (2)图像经滤波处理后清晰度更高;

还有两点目的:(1)抽出图像的特征作为图像识别的特征模式;

                          (2)适应图像处理时项目的要求,尽可能的降低噪声;

        平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪声。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小(即平滑核、窗口的大小)。
 

空间滤波技术分类

      一、根据空间滤波增强目的可分为:平滑滤波和锐化滤波;

     二、根据空间滤波的特点可分为:线性滤波和非线性滤波。

  (1)平滑滤波,能减弱或消除图像中的高频分量,但不影响低频分量。因为高频分量对应图像中的区域边缘等灰度值具有较大、较快变化的部分,平滑滤波将这些分量绿区可减少局部灰度的起伏,使图像变得比较平滑。实际应用中,平滑滤波即可以用来消除噪声,又可以用在提取较大的目标前过滤去除较小的细节或将目标内的小间断连接起来。

 (2)锐化滤波,能减弱或消除图像中的低频分量,但不影响高频分量。因为低频分量对应图像中灰度值缓慢变化的区域,因而与图像的整体特性如整体对比度和平均灰度值等有关。锐化滤波将这些分量滤去可使图像反差增加,边缘明显。实际应用中,锐化滤波可用于增强图像中被模糊的细节或景物的边缘。

下面是常用的一些滤波器,分为线性滤波和非线性滤波

         方框滤波–> boxblur函数来实现 –>线性滤波-------图片的边缘信息丢失
         均值滤波(邻域平均滤波)–> blur函数 –>线性滤波 
         高斯滤波–>GaussianBlur函数 –>线性滤波 
         中值滤波–>medianBlur函数 –>非线性滤波 
         双边滤波–>bilateralFilter函数 –>非线性滤波

关于滤波和模糊


关于滤波和模糊,大家往往在初次接触的时候会弄混淆,

滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。

为了方便说明,就拿我们经常用的高斯滤波来作例子吧。我们知道,滤波可分低通滤波高通滤波两种。而高斯滤波是指用高斯函数作为滤波函数的滤波操作,至于是不是模糊,要看是高斯低通还是高斯高通,低通就是模糊,高通就是锐化。

其实说白了是很简单的,对吧:

高斯滤波是指用高斯函数作为滤波函数的滤波操作。

高斯模糊就是高斯低通滤波
 

一、方框滤波(box Filter)

1. 原理

先给出内核,用内核各点的值与其对应的图像像素值相乘


可以看出通过滤波后,图片的边缘信息会丢失。

方框滤波(box Filter)被封装在一个名为boxFilter的函数中。

void boxFilter( InputArray src, OutputArray dst, int 
  • 5
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dwyane05

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

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

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

打赏作者

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

抵扣说明:

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

余额充值