码迷,mamicode.com
首页 > 其他好文 > 详细

MATLAB 构建Hessian矩阵

时间:2020-09-17 20:57:01      阅读:38      评论:0      收藏:0      [点我收藏+]

标签:div   mic   fine   如何   double   cell   高斯   col   matlab   

很多算法都用到了这个矩阵,比如Hessian affine region detector、SURF,虽然这些算法我还没有完全搞透,不过那都是后话,先把这个矩阵搞出来再说,学习是不断迭代的过程。

整个矩阵的形成主要由四部分公式决定:

g(x,y)就是高斯函数了,没啥可说的:

技术图片

对高斯函数的x和y分别求二阶偏导:

技术图片

求出的模板对原图进行卷积:

技术图片

卷积后的值构成Hessian矩阵:
技术图片

所以这里的H是相当于原图像每一个像素都能求出一个Hessian矩阵。

matlab代码如下:

 1 clear all;
 2 close all;
 3 clc;
 4 
 5 img=double(imread(lena.jpg));
 6 [m n]=size(img);
 7 
 8 w=4;
 9 sigma=1.2;
10 [x y]=meshgrid(-w:w,-w:w);
11 %高斯函数对应的二阶偏导,如何求导数请自行脑补
12 Dxx = 1/(2*pi*sigma^4)*(x.^2/sigma^2-1)*exp(-(x.^2+x.^2)/(2*sigma^2));     
13 Dyy = 1/(2*pi*sigma^4)*(y.^2/sigma^2-1)*exp(-(x.^2+y.^2)/(2*sigma^2));
14 Dxy = 1/(2*pi*sigma^6)*(x.*y)*exp(-(x.^2+y.^2)/(2*sigma^2));
15 
16 Ixx=imfilter(img,Dxx,replicate);
17 Iyy=imfilter(img,Dyy,replicate);
18 Ixy=imfilter(img,Dxy,replicate);
19 
20 H=cell(m,n);
21 for i=1:m
22    for j=1:n 
23     H{i,j}=[Ixx(i,j) Ixy(i,j);Ixy(i,j) Iyy(i,j)];    
24    end
25 end

 

MATLAB 构建Hessian矩阵

标签:div   mic   fine   如何   double   cell   高斯   col   matlab   

原文地址:https://www.cnblogs.com/ybqjymy/p/13646488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!