一、图像中Hessian矩阵的定义及公式推导
对于二维图像
f
(
x
,
y
)
f(x,y)
f(x,y),在点
x
,
y
x,y
x,y处的Hessian矩阵定义为:
H
(
x
,
y
)
=
[
I
x
x
I
x
y
I
x
y
I
y
y
]
H(x,y)= \left[ \begin{matrix} I_{xx} & I_{xy} \\ I_{xy} &I_{yy} \\ \end{matrix} \right]
H(x,y)=[IxxIxyIxyIyy]
其中
I
x
x
I_{xx}
Ixx为高斯二阶微分
∂
2
G
(
x
,
y
)
∂
x
2
\frac{\partial^2G(x,y)}{\partial x^2}
∂x2∂2G(x,y)与图像
f
(
x
,
y
)
f(x,y)
f(x,y)的卷积:
I
x
x
=
∂
2
G
(
x
,
y
)
∂
x
2
∗
f
(
x
,
y
)
I_{xx}=\frac{\partial^2G(x,y)}{\partial x^2}*f(x,y)
Ixx=∂x2∂2G(x,y)∗f(x,y)
且
G
(
x
,
y
)
=
1
2
π
σ
2
e
−
x
2
+
y
2
2
σ
2
G(x,y)=\frac{1}{2π\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}}
G(x,y)=2πσ21e−2σ2x2+y2
将两式结合,有:
I
x
x
=
1
2
π
σ
4
(
x
2
s
i
g
m
a
2
−
1
)
∂
2
G
(
x
,
y
)
∂
x
2
∗
f
(
x
,
y
)
I_{xx}=\frac{1}{2π\sigma^4}(\frac{x^2}{sigma^2}-1)\frac{\partial^2G(x,y)}{\partial x^2}*f(x,y)
Ixx=2πσ41(sigma2x2−1)∂x2∂2G(x,y)∗f(x,y)
同理可得
I
x
y
、
I
y
y
I_{xy}、I_{yy}
Ixy、Iyy。
二、MATLAB代码
代码如下(示例):
function [Dxx,Dxy,Dyy] = Hessian2D(I,Sigma)
[X,Y] = ndgrid(-round(3*Sigma):round(3*Sigma));
DGaussxx = 1/(2*pi*Sigma^4) * (X.^2/Sigma^2 - 1) .* exp(-(X.^2 + Y.^2)/(2*Sigma^2));
DGaussxy = 1/(2*pi*Sigma^6) * (X .* Y) .* exp(-(X.^2 + Y.^2)/(2*Sigma^2));
DGaussyy = DGaussxx';
Dxx = imfilter(I,DGaussxx,'conv');
Dxy = imfilter(I,DGaussxy,'conv');
Dyy = imfilter(I,DGaussyy,'conv');
end