在数字图像处理中,经常会对图像求梯度和导数,如用于Hog(Histogram of Oriented Gradient)特征计算,边缘检测等等。
一、二维数据的一阶导数
图像中假定格点的步长为1,所以一阶导数
G[f(x,y)]=[GxGy]=⎡⎣∂f∂x∂f∂y⎤⎦
计算往往用差分来近似,即
Gx≈f[i,j+1]−f[i,j]
Gy≈f[i,j]−f[i+1,j]
注意j对应x方向(列数),而i对应于y方向(行数)。运算可以通过下面的模板来实现
Gx=(1,−1),Gy=(1−1)
然而,从中心差分的角度来说,这是算出来的是点
[i,j+12]
的x的方向导数,点
[i+12,j]
的y方向导数并不在意同一点上。因此,在实际计算中,可以用下面模板来计算导数值
Gx=(−1−111),Gy=(1−11−1)
由此可得到梯度的值
G[f(x,y)]=G2x+G2y−−−−−−−√
,也可用
|Gx|+|Gy|
或
max(Gx|,|Gy)
来近似,和上述模板不同,Roberts算子计算梯度
G[f(i,j)]=(|Gx|2+|Gy|2)12
的模板是
Gx=(100−1),Gy=(0−110)
从平均的角度说,上述两个模板计算的都是
[i+12,j+12]
梯度的近似值。
常用三阶模板
Sobel算子:计算
M=S2x+S2y−−−−−−−√
Sx=⎛⎝⎜−1−2−1000121⎞⎠⎟Sy=⎛⎝⎜−1−2−1000121⎞⎠⎟
Prewitt算子:
Sx=⎛⎝⎜−1−1−1000111⎞⎠⎟,Sy=⎛⎝⎜10−110−110−1⎞⎠⎟
二、二维数据的二阶导数
Laplace算子通过差分计算
将上述公式近似组合得模板
利用对中心点更大的权是有利的思想,Laplace近似为
数字图像的倒数与梯度
最新推荐文章于 2024-03-21 13:18:11 发布