冈萨雷斯《数字图像处理》读书笔记(三)——空间滤波

滤波这个词来源于频域处理,因为它的目的就是针对频率分量而言的,滤除一定的频率分量。但其实滤波在时域(图像中对应为空域)中也可以完成相应的操作,比如低通滤波器滤除了代表细节的高频分量,我们可以直接在图像空域通过高斯卷积达到类似平滑的效果。事实上,线性空间滤波与频率域滤波之间存在一一对应的关系,注意这里说的是线性空间,也就意味着空域滤波相比于频率域滤波,还可以实现非线性滤波。

图像空间域上的处理一般都是模板的滑窗,产生一个新的图像,对每个像素而言,位置坐标就是模板的原点,像素的灰度值是利用原点在模板邻域像素的计算结果。关于新的像素值是如何利用领域像素计算,就决定了该操作是线性滤波还是非线性滤波:如果是线性操作如加权和就是线性滤波,否则就是非线性滤波。

而在线性滤波中,我们需要注意的是卷积和相关。它们的区别用一句话表示就是相关的模板不会旋转180度,而卷积的模板要旋转180度才与原图中对应像素相乘(加权相加,说明是线性滤波)。那么旋转180度造成了什么影响呢?或者说为什么要旋转呢?卷积相比于相关,有什么优势呢?书中通过对一个冲激序列(只有一个1,其余全0)和另外一个模板序列相关操作之后的结果进行分析,结果是模板序列的逆序(翻转)版本。而卷积的基本特性是某个函数与单位冲激卷积,得到冲激处的函数的拷贝,即不同时刻的响应的叠加。为了实现结果是函数的拷贝,可以事先将模板翻转,这样利于相关的结果会翻转的特性,翻转两次,得到拷贝。

卷积的意义不必多说,它是线性系统理论的基础。相关除了其翻转性质被卷积利用,还可用于寻找图像中的匹配。因为当图像中有与模板完全一样的部分时,模板移动到这里求相关会取最大值。卷积和相关还有相同的一点需要注意的是对于图像边界点,当模板中心处于图像边界点时,模板会有一部分没有与图像重合,这就需要我们人为填充(m-1)/2和(n-1)/2。

在实际中用到的卷积核一般是对称的,所以都是直接求相关,这其实也是造成二者混淆的原因之一。

线性滤波器包括在模板中求区域灰度平均值,模板中系数一样,又称作盒状滤波器。还有二维高斯滤波,是由二维高斯函数得出模板的权重,离中心点越远,权重越低。非线性滤波器有最大操作,在模板区域取灰度最大值作为当前中心的灰度值,好比是神经网络中的池化层。最大操作滤波器其实属于统计排序滤波器,取的是排序之后的最大值。排序滤波器中最知名的是中值滤波器。中值滤波就是取邻域内像素的排序后的中值作为像素新值。如果噪声是脉冲的,那么经过排序之后就会在序列前端或者后端,所以取中值就可以排除这种噪声(椒盐噪声)。

模板影响滤波的因素除了权重系数还有模板的尺寸大小。书中例3.13的对比了不同尺寸的滤波器对不同尺寸图案的滤波结果。与模板大小相近的细节受到更多影响,所以选取的模板尺寸应该小于想要保留的目标的尺寸。

均值滤波可以看作是一种积分,那么积分可以平滑图像,微分就可以锐化图像。微分又分为一阶微分和二阶微分。对于灰度跳变,一阶微分表现为极值,二阶微分表现为过零点。而二阶微分提取的边缘更细,执行上也更加容易。

$\begin{align} & \frac{df}{dx}=f(x+1)-f(x) \\ & \frac{​{​{\partial }^{2}}f}{\partial {​{x}^{2}}}=f\left( x+1 \right)-f\left( x \right)-\left( f\left( x \right)-f\left( x-1 \right) \right)=f\left( x+1 \right)+f\left( x-1 \right)-2f\left( x \right) \\ \end{align}$

 

我们希望二阶微分算子是各向同性的,这样图像旋转后滤波的结果不会发生改变。拉普拉斯算子就是最简单的各向同性微分算子。拉普拉斯算子是一个线性算子,因为任意阶微分都是线性操作。

$\begin{align} & {​{\nabla }^{2}}f=\frac{​{​{\partial }^{2}}f}{\partial {​{x}^{2}}}+\frac{​{​{\partial }^{2}}f}{\partial {​{y}^{2}}}=f\left( x+1,y \right)+f\left( x-1,y \right)-2f\left( x,y \right)+f\left( x,y+1 \right)+f\left( x,y-1 \right)-2f\left( x,y \right) \\ & =f\left( x+1,y \right)+f\left( x-1,y \right)+f\left( x,y+1 \right)+f\left( x,y-1 \right)-4f\left( x,y \right) \\ \end{align}$

即模板在当前像素的四邻域位置取1,在当前像素位置取-4,45度方向为0.当然也可以按照定义对对角线方向也求梯度,这样包围当前像素的8个位置都取1,当前像素位置为-8.把权重都取反,这样又可以得到另外两个常用的拉普拉斯算子。

拉普拉斯滤波后的图像和原图进行叠加就得到锐化后的图像。

锐化最关键的一步是希望得到一个与原图像的差值,拉普拉斯滤波通过二阶微分得到灰度跳变处,我们也可以利用原图与平滑之后的图像得到一个差值。印刷界和出版界经常使用的就是这种方法,称为非锐化掩蔽。原始图像与平滑之后的图像的差值作为模板,然后再叠加到原图上,叠加的过程中可以乘一个权重系数k,k>1时称作高提升滤波。但k如果使模板峰值大于原图最小值,最终结果就可能出现负灰度,导致边缘有暗的晕轮。

说完了二阶,现在说一下以一阶微分(梯度)为基础的锐化。和二阶的拉普拉斯相比,不同的是梯度的幅值涉及平方和和开方运算,虽然对x方向和y方向的微分是线性变换,但是梯度幅值是非线性变换。即便用x方向和y方向的梯度的绝对值之和作为梯度的大小,也不是各向同性的,只有当旋转角度是90度的倍数时,x和y方向利用的交换性才有部分同乡不变性。既然分为x方向和y方向的梯度,每一种梯度算子都有两个模板。最简单的梯度非线性图像锐化算子是Robert算子。它的特点是大小是2x2的,而且是交叉方向上的差分。Prewitt算子是3x3大小的,左右相减,上下相减。Soble算子考虑了与中心点的距离,45度方向大小是1,紧邻的上下左右大小是2.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinInet:HTTPS 请求出现无效的证书颁发机构的处理

首先,微软提供的WinInet库封装了对网页访问的方法。 最近工作需要从https服务器获取数据,都知道https和http网页的访问方式不同,多了一道证书认证程序,这样就使得https在请求起来比http要复杂的多;好在,Win…

热度下的冷思考——智能眼镜到底有没有前途?

来源:环球网我们曾期望Google眼镜能够成为革命性的新产品,因为它某种程度上实现了大家对未来的幻想。然而Google眼镜作为概念产品虽然有趣,但它仍然太不成熟,而且因为存在侵犯隐私的可能还被大众抵触,更重要的是它花去…

TFRecords文件的存储与读取

将cats和dogs两个文件夹各1000张图片存储为:train.tfrecords#将图片文件生成train record import os import tensorflow as tf from PIL import Image #生成cats和dogs的record文件 path./data/train filenamesos.listdir(path) writertf.python_io.TFRecordWriter(…

对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?

来源:智车科技摘要:SLAM(同步定位与地图构建),是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程,解决机器人等在未知环境下运动时的定位与地图构建问题。目前…

链表中的指针

中期答辩改在了国庆之后,终于有时间可以看看剑指offer了。在看到单向链表的部分,对指针,尤其是头指针有点疑惑。首先容易理解的是链表的节点是一个结构体,该结构体包含一个数据(一般是int型),还…

实现TFrecords文件的保存与读取

import os import cv2 import numpy as np import tensorflow as tf """ 将train文件夹下的cats和dog文件夹处理成train.tfrecords放在train文件夹里 """ #将图片的路径和对应的标签存储在list中返回 def deal(dir):images []temp []for root,…

工具推荐-css3渐变生成工具

今天工作用到了css3渐变,但是写起来才发现太麻烦了,而却很浪费时间,所以在这里向大家推荐一个在线的css3 渐变生成工具 地址是:http://www.colorzilla.com/gradient-editor/ 这个工具是可视化视图,用起来就和photoshop…

神经网络相关的笔试题目集合(一)

在找工作的过程中发现好多公司没有专门的、传统的图像处理岗位,所以只能参加算法类的笔试甚至AI类的笔试。在AI的笔试中几乎全是关于神经网络的问题,其实也都是很基础的一些问题,如果事先做了准备,可以从容应对。而对于我这种从传…

中美超算“你追我赶” 中国优势可圈可点

来源:新华网摘要:中美超算“你追我赶” 中国优势可圈可点新一期全球超级计算机500强榜单12日在美国达拉斯发布。与半年前的榜单相比,全球格局变化不大,美国在最快超算上…

吴恩达作业1:逻辑回归实现猫的分类

思路:输入样本X与随机初始权重W相乘,利用sigmoid激活函数输出值,对于二分类问题,用交叉熵损失函数来计算损失值,通过交叉熵损失函数利用链式法则求出W和b的偏导,梯度下降更新W和b即可,&#xff…

双摄与双目视觉

越来越多的手机开始上双摄,首先解释一下双摄的目的,双摄可以达到什么样的效果。首先双摄可以分为两类,一类是利用双摄获得图像中物体到镜头或者焦距的距离,得到景深信息就可以进行后续的3D重建、图像分割、背景虚化等;…

“脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑

一个在眨眼的婴儿 | 图片来源:Leungcho Pan/Shutterstock撰文:Mindy Weisberger来源:科研圈编译:向菲菲人们常说:“别眨眼,精彩稍纵即逝。”但其实在我们眨眼的时候,精彩仍在我们眼前上演。我们…

基于Sql Server 2008的分布式数据库的实践(三)

配置PHP 1.打开PHP配置文件,找到extensionphp_mssql.dll,将前面的注释符号去掉 2.找到mssql.secure_connection,将Off改为On 3.找到com.allow_dcom true,将前面的注释符号去掉 4.下载正确版本的 ntwdblib.dll (2000.80.194.0)&am…

ORB论文研读与代码实现

首先,ORB算法来自于OpenCV Labs,相比于SIFT和SURF,ORB在使用中不必担心专利的问题。但同时ORB在保证了一定性能的条件下做到了高效。在论文《ORB: An efficient alternative to SIFT or SURF》2011中,ORB在特征点检测和描述子生成…

腾讯发布人工智能辅助翻译,致敬人工翻译

来源:腾讯AI实验室11月13日,深圳 - 腾讯AI Lab今日发布了一款AI辅助翻译产品 - “腾讯辅助翻译”(Transmart),可满足用户快速翻译的需求,用AI辅助人工翻译提高效率和质量。该产品采用业内领先的人机交互式机…

吴恩达作业2 利用两层神经网络实现不同颜色点的分类,可更改隐藏层数量

任务:将400个两种颜色的点用背景色分为两类。 前面的还是建议重点学神经网络知识,至于数据集怎么做的后面在深究,首先先看看数据集,代码如下: def load_planar_dataset():np.random.seed(1)m 400 # number of exampl…

利用tensorflow构建AlexNet模型,实现小数量级的猫狗分类(只有train)

首先看路径: data文件夹分为,model文件夹,train文件夹和文件夹,model文件夹存放模型文件,train存放cat和dog的两个文件夹图片, validation和train一样。config.py存放配置的一些参数,util.py定…

脑网络的可塑性——随时都在发生

来源:神经科技前沿神经元的突起是神经元胞体的延伸部分,由于形态结构和功能的不同,可分为树突(dendrite)和轴突(axon);树突是从胞体发出的一至多个突起,呈放射状。轴突每个神经元只有一根胞体发出轴突的细胞 质部位多呈…

KAZE论文研读

KAZE是发表在ECCV2012的一种特征点检测算法,相比于SIFT和SURF,KAZE建立的高斯金字塔是非线性的尺度空间,采用加性算子分裂算法(Additive Operator Splitting, AOS)来进行非线性扩散滤波。一个很显著的特点是在模糊图像的同时还能保留边缘细节…

简单的线性模型实现tensorflow权重的生成和调用,并且用类的方式实现参数共享

首先看文件路径,line_regression是总文件夹,model文件夹存放权重文件, global_variable.py写了一句话. save_path./model/weight 权重要存放的路径,以weight命名. lineRegulation_model.py代码 import tensorflow as tf "…