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

一阶导

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

python光谱曲线一阶导数_python光谱曲线一阶导数

 ,或,

python光谱曲线一阶导数_ci_02

                     (1.1)

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

python光谱曲线一阶导数_差分_03

,或,

python光谱曲线一阶导数_ci_04

                                       (1.2)

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

python光谱曲线一阶导数_python光谱曲线一阶导数_05

        (1.3)

python光谱曲线一阶导数_python光谱曲线一阶导数_06

        (1.4)      

python光谱曲线一阶导数_ci_07

,或,

python光谱曲线一阶导数_差分_08

                                                          (1.5)

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

python光谱曲线一阶导数_拉普拉斯算子_09

         

python光谱曲线一阶导数_差分_10

二阶导

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

python光谱曲线一阶导数_拉普拉斯算子_11

,即 

python光谱曲线一阶导数_差分_12

          (2.1)

它的差分函数为:

python光谱曲线一阶导数_差分_13

                                                                            (2.2)

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

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

python光谱曲线一阶导数_python光谱曲线一阶导数_14

                          (2.3)

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

python光谱曲线一阶导数_python光谱曲线一阶导数_15

                                                                                                            (2.4)

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

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

python光谱曲线一阶导数_python光谱曲线一阶导数_16

                                                                (2.5)

2)因此,二阶差分为:

python光谱曲线一阶导数_ci_17

         (2.6)

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

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

python光谱曲线一阶导数_差分_18

其卷积可写为:

python光谱曲线一阶导数_python光谱曲线一阶导数_19

     

其可拓展为

python光谱曲线一阶导数_拉普拉斯算子_20