图像滤波

摘要:
滤波是信号和图像处理中的基本操作。空间域通过观察灰度分布来描述图像特征。在频域分析的框架下,滤波器是一种算子,它放大图像中的一些频带,同时过滤(或削弱)其他频带。例如,使用低通滤波器来消除图像的高频部分;相反,高通滤波器用于消除图像的低频部分。相反,当使用平均值滤波器时,远处的像素会使当前平均值突然改变。

滤波

是信号和图像处理中的一种基本操作。它的目的是选择性地提取图像中某些方面的内容,这些内容在特定应用环境下传达了重要信息。滤波可去除图像中的噪声,提取有用的视觉特征,对图像重新采样,等等。它起源于通用的信号和系统理论。

频域
1.通过观察变化的频率,图像中灰度级的变化。有些图像含有大片强度值几乎不变的区域(如蓝天),而对于其他图像,灰度级的强度值在整幅图像上的变化很大(例如由大量细小物体构成的混乱场景)
2.频域分析把图像分解成从低频到高频的频率成分。.有几种著名的变换法可用来清楚地显示图像的频率成分,例如傅里叶变换余弦变换
3。图像是二维的,因此频率分为两种,即垂直频率(垂直方向的变化)和水平频率(水平方向的变化)。

空域
通过观察灰度分布来描述图像特征

  滤波器
在频域分析框架下,滤波器是一种放大(也可以不改变)图像中某些频段,同时滤掉(或减弱)其他频段的算子。例如,低通滤波器的作用是消除图像中的高频部          分;高通滤波器刚好相反,用来消除图像中的低频部分。

低通滤波器

  低通滤波器目的是减少图像变化的幅度,获得更平滑的过渡,将像素替换为周围像素的平均值

 

     cv::blur(image,result, cv::Size(5,5)); // 滤波器尺寸

      也称(box filter)块滤波器;

注意: cv::boxFilter 对图像做滤波时,使用了一个仅由 1 组成的正方形内核。它与均值滤波器类似,但不会除以系数的数量

    高斯滤波:

cv::GaussianBlur(image, result,cv::Size(5,5), // 滤波器尺寸
1.5); // 控制高斯曲线形状的参数

    第四个参数必须为奇数(详见高斯滤波

 

  高斯滤波器,像素对应的权重与它到中心像素之间的距离成正比。一维高斯函数的公式为:
  在这里插入图片描述

离中心点越远的像素权重越低,这使像素之间的过渡更加平滑。与之相反,使用扁平的均值滤波器时,远处的像素会使当前平均值发生突变。从频率上看,这意味着均值滤波器并没有消除全部高频成分。要在图像上应用二维高斯滤波器,只需先在横向线条上应用一维高斯滤波器(过滤水平方向的频率),然后在纵向线条上应用另一个一维高斯滤波器(过滤垂直方向的频率)。这是因为,高斯滤波器是一种可分离滤波器(也就是说,二维内核可分解成两个一维滤波器)。要应用普通的可分离滤波器,可使用 cv::sepFilter2D 函数。也可以用 cv::filter2D 函数直接应用二维内核。由于可分离滤波器所用的乘法运算更少,因此它的计算速度通常比不可分离滤波器要快。

伪影是一种叫作空间假频的现象造成的。当你试图在图像中包含高频成分,但由于图像太小而无法包含时,就会出现这种现象。

对于缩减像素采样,需要先进行高斯滤波去除高频成分

pyrDown函数:

函数的作用:

对图像进行滤波然后进行下采样

函数调用形式:

void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size(), int borderType=BORDER_DEFAULT )

参数详解:

InputArray src:表示输入图像

 OutputArray dst:表示输出图像

const Size& dstsize=Size():表示输出图像的大小

 int borderType=BORDER_DEFAULT:表示图像边界的处理方式

pyrUp函数

函数功能:

对图像进行高斯滤波,然后进行上采样;

函数调用形式:

void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size(), int borderType=BORDER_DEFAULT )

中值滤波器(消除椒盐噪声)

medianblur(image,result,5)//最后一个参数是滤波器尺寸

原理

因为滤波器是非线性的,不能用核心矩阵表示,而是操作一个像素的邻域取其中值;

定向滤波器

用途:检测边缘

使用sobel算子

  sobel(image,

     dst,

     cv_8u, //输出类型

     0,1//内核规格,与垂直或水平有关

     3,//尺寸

     0.4,128//比例及其偏移量

一般sobel的运算结果为16位有符号整形,

如果把图像看做二维函数,那么sobel算子就是图像在水平和垂直方向变化的速度。在数学属于中,这种速度称为梯度。它是一个二维向量,向量的元素是横竖两个方向的函数的一阶导数:

grad(I)=

sobel算子在水平和垂直方向计算像素值的差分,得到图像梯度的近似值。它在像素周围的一定范围内进行运算,以减少噪声带来的影响。
在进行边缘检测时,通常只计算范数。。但如果需要计算范数与方向,可以使用以下函数。

计算一阶导数的函数与算子

  prewitt

  roberts

  scharr(函数cv::scharr)

计算导数的算子:高通滤波器

拉普拉斯算子(二阶求导)

  未完待续

免责声明:文章转载自《图像滤波》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【C++/Qt】Qt中的parent形参获取 wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级(微信小程序开发)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

第七课——常用控件

一、静态控件 1. 概述 特性:一般不接收用户输入,也不产生通知消息 包括:静态文本、组框、静态图片 注:每个静态控件的ID都是IDC_STATIC 二、按钮 分类:按键按钮、单选按钮、复选框按钮 1. 按键按钮 也称为命令按钮,可立即产生某个动作,执行某个命令 两种风格:标准按键按钮、默认按键按钮(表示该按钮已接收到键盘的输入焦点) 2. 单选按钮 外形...

python 图像处理(4):图像的绘制

实际上前面我们就已经用到了图像的绘制,如: io.imshow(img)   这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据。因此,我们也可以这样写: import matplotlib.pyplot as plt plt.imshow(img) imshow()函数格式为: matplot...

ORB 特征提取算法(理论篇)

Abstract ORB 是 Oriented Fast and Rotated Brief 的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。其中,Fast 和 Brief 分别是特征检测算法和向量创建算法。ORB 首先会从图像中查找特殊区域,称为关键点。关键点即图像中突出的小区域,比如角点,比如它们具有像素值急剧的...

【python-opencv】图像平滑

1、2D卷积 与一维信号一样,还可以使用各种低通滤波器(LPF),高通滤波器(HPF)等对图像进行滤波。LPF有助于消除噪声,使图像模糊等。HPF滤波器有助于在图像中找到边缘。 OpenCV提供了一个函数cv.filter2D来将内核与图像进行卷积。例如,我们将尝试对图像进行平均滤波。 操作如下:保持这个内核在一个像素上,将所有低于这个内核的25个像素相加...

LabVIEW部分视觉函数中文解说

IMAQ Learn Pattern 2 VI在匹配阶段创建您要搜索的图案匹配的模板图像的描述,此描述的数据被附加到输入模板图像中。在匹配阶段,从模板图像中提取模板描述符并且用于从检查图像中搜索模板。 Image:是一个您要搜索模板图像的参考检查图像。 Learn Pattern Setup Data(学习模式设置数据):是一个字符串,包含从本控件或从高级...

神经网络+增强学习

该文章转至:https://www.cnblogs.com/xlturing/p/5844555.html 马里奥AI实现方式探索 ——神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典的马里奥形象出现。平时我们都是人来玩马里奥游戏,能否可以让马里...