在matlab

时间:2016-12-22 16:39:46

标签: matlab matrix hessian

我试图找到50x50灰度图像的粗糙矩阵的行列式。我得到的矩阵的行列式是一个非常小的值,即4.7612e-134。我想我错过了什么。我的代码如下。感谢

 % computing second derivatives in each direction first

 [gx, gy] = gradient(double(sliceOfImageK2));

 [gxx, gxy] = gradient(gx);

 [gyx, gyy] = gradient(gy);

 hessianMatrix = [gxx gxy; gxy gyy];

 determinantHessianMatrix = det(hessianMatrix)

1 个答案:

答案 0 :(得分:0)

如果您想将其称为Hessian,我认为您不应该组装100x100矩阵。为每个2x2(2500)像素组装一个50x50矩阵,用于对衍生物进行抽样。

这是2500个赫西亚人,用2500x4矩阵表示:

H = [gxx(:) gxy(:) gyx(:) gyy(:)]

此处表示为2500 2x2矩阵:

H_ = reshape(H', 2, 2, length(H))

这些是每个2x2矩阵的决定因素:

D = H(:,1).*H(:,4) - H(:,2).*H(:,3)

这里是一个50x50矩阵,每个像素都有一个Hessian行列式,如果这就是你所追求的:

reshape(D, 50, 50)