图像处理之 _ 导数微分

#图形图像 #数学

1. 一阶导数应用:图像的梯度

1) 用途:

在图像处理中, 常用梯度求取图像的边缘, 这是一个很基础的应用. 下图为在 OpenCV 中使用 cvSobel() 函数的具体效果. 四张图分别为: 原图, 在 x 方向上的梯度, y 方向上的梯度, xy 方向上的梯度.

图片.png

2) 二元函数

这里我们只讨论二元函数 z=f(x,y) 的导数, 通常把二元函数想像成一个曲面, 公式中的 x,y,z 分别映射到坐标系中的 x,y,z 轴. 于是我们看到了很多像山坡一样的三维图, 切线, 切面, 很看来很复杂.我觉得从图像处理的角度看二元函数似乎更容易理解, 为了简化, 我们以一张黑白图为例. x,y 轴分别对应成图像的宽和高, 颜色的灰度对应 z 值: z = f(x,y),每个像素点的颜色值是其坐标 (x,y) 的函数.

图片.png

3) 梯度的定义

函数 z = f(x,y) 在区域 D 内具有一阶连续偏导数,则对于每一个属于 D 的点 P(x,y),都可定出一个向量,这个向量称为函数 z = f(x,y) 在点 P 处的梯度.记作 gradf(x,y). 一般通过求导 (微分) 来实现的. 导数是函数的局部性质。描述了函数在某一点附近的变化率。

4) 离散图像的梯度

由于图像是一个离散空间,无法求真正的导数,只能通过多项式拟合.图像中某一点的导数,就是该点在 x 方向和 y 方向上的变化率.图像梯度公式如下:gradf(x,y) = dx i + dy j;dx(i,j) = I(i+1,j) - I(i,j); // x 方向偏导,近似为某行与其上一行的差值 dy(i,j) = I(i,j+1) - I(i,j); // y 方向偏导,近似为某列与其上一列的差值其中,I 是图像像素的值 (亮度值),(i,j) 为像素的坐标。

5) 如何衡量梯度

梯度就是某一点的变化率, 比如图像中的一点, 它可在多个方向上变化 (比如:上,下,左,右,左上,右下,各个角度…), 到底哪个方向上变化最大? 变化有大呢? 这就是梯度的两个重要量度:梯度的方向和梯度的值.梯度的方向: 函数 f(x,y) 在 P(x,y) 点增长最快的方向, 即方向导数中取到最大值的方向.梯度的值:方向导数的最大值.

  1. 方向导数

如果函数 z=f(x,y) 在点 P(x,y) 是可微分的,那么函数在该点沿任一方向 l 的方向导数都存在,且有

图片.png

其中φ为 x 轴到方向 l 的转角.

图片.png
  1. 梯度的模

梯度是方向导数分别在 x,y 轴的投影(dx(i,j),dy(i,j)).梯度的模就是方向导数的值,用勾股定理求得.

图片.png
  1. 梯度的方向

x 轴到 l 的转角的正切为

图片.png

已知 x,y 方向上的偏导, 再通过反正切, 就可以求出具体的角度 (与 x 轴的夹角), 即梯度的方向.

6) 更复杂的情况

为简单说明,上面只考虑了一个象素与它上一行/上一列的差值,实际运算时,一般考虑以它为中心的 NxN 的小区域,小区域中各点权重不同,通过卷积计算(离得越远的点,权重越小),从而计算它各个方向上的变化.

7) 梯度图像

由图像上各点的梯度值构成的图像成为梯度图像, 往往放在另一个矩阵中, 看起来就是轮廓图, 即上面公式中的 gradf(x,y) 在各个 x,y 点上的值的序列.

2. 二阶导数应用:拉普拉斯变换

1) 用途

用于检测团块,边缘检测,突出图像中的孤立点、孤立线或线端点为目的的场合;图像的锐化操作(拉普拉斯变换后的图与原图叠加)

2) 方法

对 x 和 y 方向求二阶偏导数,然后相加

图片.png

该方程的离散形式是

图片.png

为什么二阶导数这样离散成这种形式呢?以 x 方向为例(见下图),点与其邻近点的差导是一阶导数,如:(f(x+1,y) - f(x,y) 和 (f(x,y) - f(x-1,y)) 一阶导数(梯度图像)的差异就是二阶导数 (f(x+1,y) - f(x,y)) - (f(x,y) - f(x-1,y)) = f(x+1,y) + f(x-1,y)–2f(x,y)y 方同理,即得出以上公式

图片.png

当在图像边缘作用时(例如,从暗到亮)我们可以观察到灰度值的上升必然意味着从正曲度(强度升高)到负曲度(强度达到瓶颈)的变化。因此,拉普拉斯变换结果从正到负(或者相反)组成了一个图像边沿的很好的指示器。另一种方法表达这个事实是说,边沿出现在拉普拉斯变换的过零点处。

3. 参考

  1.         多元函数微分法及其应用《高等数学》下册,“方向导数与梯度”章节
  2.         图像处理中的拉普拉斯算子http://www.cnblogs.com/xfzhang/archive/2011/01/19/1939020.html