Hession矩阵(下称H矩阵)在Surf特征提取中用到,在Hession-Affine区域检测中也用到
在求向量函数最小时,H矩阵正定是最小值存在的充分条件
经济学中常常遇到最优问题,目标是多元非线性函数的极值问题尚无一般求解方法,但判定局部极小值可以用H矩阵
在x0点上,Hession矩阵是正定的,且各分量的一阶偏导数为0,则x0为极小值点
在x0点上,Hession矩阵是负定的,且各分量的一阶偏导数为0,则x0为极大值点
矩阵是正定的充要条件是各个特征值均为负数
矩阵是负定的充要条件是各个特征值均为正数
1.理论公式
高斯函数
高斯函数二阶导
模板对原图卷积
Hession矩阵
注意:图像的每一个像素都对应一个Hession矩阵
2.matlab代码
<span style="font-family:Comic Sans MS;">clear all;
close all;
clc;
img=double(imread('lena.jpg'));
[m n]=size(img);
w=4;
sigma=1.2;
[x y]=meshgrid(-w:w,-w:w);
%高斯函数对应的二阶偏导,如何求导数请自行脑补
Dxx = 1/(2*pi*sigma^4)*(x.^2/sigma^2-1)*exp(-(x.^2+x.^2)/(2*sigma^2));
Dyy = 1/(2*pi*sigma^4)*(y.^2/sigma^2-1)*exp(-(x.^2+y.^2)/(2*sigma^2));
Dxy = 1/(2*pi*sigma^6)*(x.*y)*exp(-(x.^2+y.^2)/(2*sigma^2));
Ixx=imfilter(img,Dxx,'replicate');
Iyy=imfilter(img,Dyy,'replicate');
Ixy=imfilter(img,Dxy,'replicate');
H=cell(m,n);
for i=1:m
for j=1:n
H{i,j}=[Ixx(i,j) Ixy(i,j);Ixy(i,j) Iyy(i,j)];
end
end</span>