分享免费的编程资源和教程

网站首页 > 技术教程 正文

matlab-线性空间滤波(空间卷积)一

goqiw 2024-11-06 18:22:43 技术教程 37 ℃ 0 评论

邻域处理:(1)选择中心点(x,y);(2)仅对预定义的围绕点(x,y)的邻域内的像素执行运算;(3)令运算结果为该点处邻域处理的响应;(4)对图像上的每一点重复上述处理。移动中心点会产生新的邻域,每个邻域对应输入图像上的一个像素。用来区别这种处理的两个术语叫邻域处理和空间滤波。若对邻域中像素的计算为线性的,则运算称为线性空间滤波(空间卷积)。

这里关注的线性运算包括将邻域中的每个像素与相应的系数相乘,然后对结果求和,从而得到点(x,y)处的响应。

若邻域大小为m*n,则需要mn个系数。这些系数被排列为矩阵,将这称为滤波器,滤波模板(卷积滤波,卷积模板)。

线性空间滤波机理,放大的图显示了大小为3*3的滤波模板以及模板正下方的相应图像邻域


上图这个过程是在图像f中逐点移动滤波模板w的中心点。在每个点(x,y)处,滤波器在该点处的响应是由滤波模板限定的相应邻域像素与滤波器系数的乘积结果的累加和。对于大小为m*n的模板,我们假定典型的m=2a+1且n=2b+1,其中的a和b为非负整数。所有假设都是基于模板的大小均应为奇数的原则,有意义模板的最小尺寸为3*3。由于处理奇数大小的模板会更加直观,因为他们都有明确的中心点。

在执行线性空间滤波时,我们必须分清相关和卷积。相关是指模板w按照上图的方式进行图像数组f的处理。原理上卷积是相同的过程,只不过再w通过f之前先将他旋转180度。下图进行解释。

上图a显示了一维函数f和模板w。假设f的原点定位最左侧的点。为执行两个函数的相关,可以移动w使其最右侧的点与f的原点重合,如b。注意,这两个函数之间有一些点未重叠。为处理这种问题,最普遍的方法就是在f中填充足够多的0,以保证在w通过f的整个过程中,始终存在对应的点,如c。

执行相关操作。相关的第一个值是在c所示的位置上两个函数乘积的累加和。此时乘积的和为0。下一步,我们将w向右移动一个位置并重复上述过程,如d。乘积的累加和认为0。经过四次移动后,如e所示,我们首次得到了相关的非零值,就是2。照这种方式下去,知道w全部通过f,最终的几何图如f所示,我们得到了g所示结果。这组只即和w又与f相关。假设我们填充了w,用填充过的w最左侧的值对准f最右侧的元素,用刚才描述的方式执行相关,结果将会旋转180度。所以在相关中,函数的顺序也有关系。

g中所示的相关中,full表示使用了经过充零后的图像。same表示开始位置位于与f的原点对准的模板的中心(w中标记为3的点),并使用了经过充零后的图像,最后的计算是使f的最后一个点与模板的中心点对准。

为执行卷积,可将w旋转180度,时期最右侧的点与f的原点重叠,如j。然后,我们重复相关使用的滑动、计算过程,如k到n。

上图函数f是离散单位冲击函数,该函数在每个位置的值是1,在其他位置的值为0。从图o、p结果可以明显看出,冲击函数卷积只是在冲激位置复制出w。这个复制性质(称为筛选)是线性系统理论中的基本概念,也是其中一个函数总会在卷积中旋转180度的原因。请注意,不同于相关,交换函数的顺序会产生相同的卷积结果。如果被移动的函数是对称的,很明显,卷积和相关会产生相同的结果。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表