空域分析及变换(1)

滤波/卷积

我们称 (f*g)(n) 为 f,g 的卷积

其连续的定义为:

\displaystyle (f*g)(n)=\int _{-\infty }^{\infty }f(\tau )g(n-\tau )d\tau \\

其离散的定义为:

\displaystyle (f*g)(n)=\sum _{\tau =-\infty }^{\infty }{f(\tau )g(n-\tau )}\\

这两个式子有一个共同的特征:

我们令 x=\tau ,y=n-\tau ,那么 x+y=n 就是下面这些直线:

如果遍历这些直线,就好比,把毛巾沿着角卷起来:

通俗点讲:

卷积就是一个单纯的数学计算公式,可以简单的理解为你被别人打了一拳,疼痛感并不会马上消失,那么我们将这疼痛感随着时间的变化定义为h(t),t是初始拳打出后过去的时间。如果这拳是一倍的力道,那么就是后续疼痛感函数就是1*h(t),那么现在我们定义这个力道为f(n),n是该拳打出时的时刻,所以当第0秒打出一拳时,疼痛感就是f(0)h(0),在第1秒再次打出一拳,那么疼痛感就是f(0)h(1-0)+f(1)h(1-1)=f(0)h(1)+f(1)h(0),在第2秒再次打出一拳,那么疼痛感就是f(0)h(2-0)+f(1)h(2-1)+f(2)h(2-2)=f(0)h(2)+f(1)h(1)+f(2)h(0)......那么可以推出任意时刻的疼痛感就是∑f(n)h(t-n)。

卷积在图像处理中的应用

  • 在每个图片位置(x,y)上进行基于领域的函数计算

  • 不同函数需要定义不同的函数
  1. 图像增强
  2. 信息提取

参数解释

f[k,l]是权重,

I[x+k,y+l]则图片中对应的像素值

k,l是卷积核中的坐标

h[x,y]则是卷积结果

下面是图示:

这是一个卷积核,上图的坐标也就是每次计算所对应的k,l

这就是一次完整的公式计算

那么也就碰到了这样一个问题,卷积核越大,那么对应的输出结果也就越小,如果想要输出和原图一样大小,怎么办呢?

那么就需要卷积核中心就对应于图像的起始像素点,

但是这样就又碰到了问题,卷积核超出了边界部分,如下图

解决的办法就是需要边界补充,有四种补充方式

  • 补零
  • 边界复制
  • 镜像
  • 块复制

平滑均值卷积

  • 卷积核需要是奇数尺寸,3*3 , 5*5 , 2n-1 * 2n-1
  • 参数和为1

下面是效果图

操作原理:

平滑中值卷积

  • 卷积核奇数尺寸
  • 操作原理
  1. 卷积域内的像素值从小到大排列
  2. 去中间值作为卷积输出
  • 有效去除椒盐噪声

卷积域内的像素值排列后

输出

  • 效果图

平滑高斯卷积

  • 卷积核奇数尺寸
  • 模拟人眼关注中心区域
  • 有效去除高斯噪声
  • 参数
  1. x,y是卷积参数坐标(卷积核中相对应于中心的坐标,中心及原点)
  2. 标准差σ

原理

首先高斯分布不是高斯滤波/卷积

高斯分布

高斯分布公式f(x)= \frac{1} {\sqrt{2\pi}\sigma}{e^{-{(x-u)}^2}/{2{\sigma}^2}}\qquad

它的形状与分布:

u决定了图像的分布对称中心,σ决定了分布形状,σ越小,形状越瘦高,σ越大,形状越矮小

在高斯分布中,函数是一维的,那么怎么推到二维呢?

只需要把数值x变为向量\vec x即可:

 f(\vec x)= \frac{1} {(\sqrt{2\pi}\sigma)^2}{e^{-{(\vec x-\vec u)}^2/{2{\sigma}^2}}}\qquad

(其中不必纠结于系数\frac{1}{(\sqrt{2\pi}\sigma)^2},因为它只是一个常数!并不会影响互相之间的比例关系并且最终都要进行归一化(因为我们需要像均值平滑进行计算,所以需要卷积核的和是1),所以在实际计算时我们是忽略它而只计算后半部分的) 当\vec x为二维时,\vec x =(x,y)这个公式其实可以表示任意维度的高斯分布。 需要特别注意的是: \vec x, \vec \mu本质上都是二维空间中的坐标:\vec x是掩膜内任一点的坐标,\vec \mu是掩膜中心的坐标!(统计学中称为均值,即坐标的均值)

于是,对于图像中任意一点(x,y),它周围的坐标为:

中间的(x,y)就是我们公式中的\vec \mu了, 当\vec x遍历(x-1,y-1)...(x+1,y+1)时,

({\vec x - \vec \mu})^2

最后归一化得出高斯卷积核:

然后过程与均值平滑一致,就是求卷积:

与高斯分布相同,σ越大,因为越不突出,所以越模糊,σ越小,越模清楚

  • 分解特性(级联高斯)
  1. 2D卷积核拆分成两个相同的1D卷积核然后先行的卷积核计算再进行列的卷积核计算
  2. 降计算(2D计算每个像素是计算k*k次乘法,那么1D总共计算2K次乘法)
  3. 原理:

猜你喜欢

转载自blog.csdn.net/sscout/article/details/82316563