图像运算中的一阶导与二阶导

首先,图像是离散的数据,若求其导数就要用差分的方法,常用的差分方法是前向差分(forward differencing)与中心差分(central differencing)。一阶导本质上求的是斜率,二阶导求的是拐点。

一阶导

连续函数,其微分可表达为

f^{\prime}(x)=\lim _{h \rightarrow 0} \frac{f(x+h)-f(x)}{h} ,或,f^{\prime}(x)=\frac{f(x+h)-f(x-h)}{2 h}                     (1.1)

对于图像这种离散的数据,其可以表达为:

I_{x}=\frac{I(x)-I(x-h)}{h},或,I_{x}=\frac{I(x+h)-I(x-h)}{2 h}                                       (1.2)

以Prewitt一阶微分边缘检测算子为例,其利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘,这两个方向的模板就是一阶微分运算。具体如下:

G(x)=|[f(i-1, j-1)+f(i-1, j)+f(i-1, j+1)]-[f(i+1, j-1)+f(i+1, j)+f(i+1, j+1)]|        (1.3)

G(y)=|[f(i-1, j+1)+f(i, j+1)+f(i+1, j+1)]-[f(i-1, j-1)+f(i, j-1)+f(i+1, j-1)]|        (1.4)

      G=\max [G(x), G(y)],或,\mathrm{G}=\mathrm{G}(\mathrm{x})+\mathrm{G}(\mathrm{y})                                                          (1.5)

Prewitt梯度算子法就是先求平均,再求差分来求梯度。水平和垂直梯度模板分别为:

G_{x}=\left[\begin{array}{lll}{-1} & {0} & {1} \\ {-1} & {0} & {1} \\ {-1} & {0} & {1}\end{array}\right]         G_{y}=\left[\begin{array}{ccc}{1} & {1} & {1} \\ {0} & {0} & {0} \\ {-1} & {-1} & {-1}\end{array}\right]

二阶导

对于一维函数,其二阶导数为:

f^{\prime \prime}(x)=\lim _{h \rightarrow 0} \frac{f^{\prime}(x+h)-f^{\prime}(x)}{h},即 f^{\prime \prime}(x)=\frac{f(x+h)-2 f(x)+f(x-h)}{h^{2}}          (2.1)

它的差分函数为:

I_{x x}=\frac{I(x+h)-2 I(x)+I(x-h)}{h^{2}}                                                                            (2.2)

二阶导部分以Laplacian边缘检测算子为例。Laplace算子是一种各向同性算子,二阶微分算子,在只关心边缘的位置而不考虑其周围的象素灰度差值时比较合适。Laplace算子对孤立象素的响应要比对边缘或线的响应要更强烈,因此只适用于无噪声图象。存在噪声情况下,使用Laplacian算子检测边缘之前需要先进行低通滤波。所以,通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板。拉普拉斯算子也是最简单的各向同性微分算子,具有旋转不变性。

拉普拉斯算子是n维欧式空间的一个二阶微分算子。它定义为两个梯度向量算子的内积:

\triangle \triangleq \nabla^{2} \triangleq \nabla \cdot \nabla=\left(\frac{\partial}{\partial x} \vec{i}+\frac{\partial}{\partial y} \vec{j}\right) \cdot\left(\frac{\partial}{\partial x} \vec{i}+\frac{\partial}{\partial y} \vec{j}\right)=\frac{\partial^{2}}{\partial x^{2}}+\frac{\partial^{2}}{\partial y^{2}}                          (2.3)

其在二维空间上的公式为:

\Delta f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}}                                                                                                            (2.4)

1、对于1维离散情况,其二阶导数变为二阶差分:

1)首先,其一阶差分为:

\nabla f[n]=f^{\prime}[n]=D_{n}[f[n]]=f[n+1]-f[n]                                                                (2.5)

2)因此,二阶差分为:

\begin{aligned} \Delta f[n] =& \nabla^{2} f[n]=f^{\prime \prime}[n]=D_{n}^{2}[f[n]]=f^{\prime}[n]-f^{\prime}[n-1] \\ =&(f[n+1]-f[n])-(f[n]-f[n-1])=f[n+1]-2 f[n]+f[n-1] \end{aligned}         (2.6)

3)因此,1维拉普拉斯运算可以通过1维卷积核[1,-2, 1]实现

2、对于2维离散情况(图像),拉普拉斯算子是2个维上二阶差分的和(见式2.4),其公式为:

\begin{array}{ll}{\Delta f[m, n]} &= {D_{m}^{2}[f[m, n]]+D_{n}^{2}[f[m, n]]=f[m+1, n]-2 f[m, n]+f[m-1, n]+f[m, n+1]-2 f[m, n]+f[m, n-1]} \\ {} &= {f[m+1, n]+f[m-1, n]+f[m, n+1]+f[m, n-1]-4 f[m, n]}\end{array}

其卷积可写为:

\left[\begin{array}{ccc}{0} & {1} & {0} \\ {1} & {-4} & {1} \\ {0} & {1} & {0}\end{array}\right]     

其可拓展为

\left[\begin{array}{ccc}{1} & {1} & {1} \\ {1} & {-8} & {1} \\ {1} & {1} & {1}\end{array}\right]

参考文章:图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)

你可能感兴趣的:(图像处理与机器视觉)