【问题标题】:Eigenvectors and Eigenvalues of Hessian MatrixHessian矩阵的特征向量和特征值
【发布时间】:2012-08-08 05:20:56
【问题描述】:

我想提取容器中的中心线像素。起初,我使用 ginput(1) 命令选择了靠近血管边缘的种子点。这提供了起点并指定了需要执行分析的血管段上的感兴趣区域 (ROI)。

figure; imshow(Igreen_eq); % Main green channel Image
p = ginput(1); 

然后将选定的种子点作为直径小于容器预期直径的圆的中心,以使圆不与对边相交。

t = 0:pi/20:2*pi;
d = 0.8*15; %d=80% of minwidthOfVessel so that it wont intesect with opposite edge;
R0=d/2;%radius
xi = R0*cos(t)+p(1);
yi = R0*sin(t)+p(2);
line(xi,yi,'LineWidth',2,'Color',[0 1 0]);
roimask = poly2mask(double(xi), double(yi), size(Igreen_eq,1), size(Igreen_eq,2));
figure; imshow(roimask) % Binary image of region selected
Itry = Igreen_eq; 
Itry(~roimask ) = 0;  
imshow(Itry);
Itry = im2double(Itry);
line(xi, yi,'LineWidth', 2, 'Color', [0 1 0]);
hold on; plot(p(1), p(2),'*r') 

问题: 计算该圆圆周上的光强的 Hessian 矩阵,并获得特征向量。 我计算了 Dxx,Dyy,Dxy 使用:

[Dxx,Dxy,Dyy] = Hessian2D(Itry,2); %(sigma=2)

我需要在 MATLAB 中编写代码来解决以下问题” 对于容器内的一点,对应于最大的特征向量 特征值垂直于边缘,对应于最小特征值的特征值指向沿血管的方向。

圆上方向变化最大的前两个连续向量被视为反映血管边界的像素。跟踪方向上的点被认为是后续圆的中心。重复这个过程给出了血管边界的估计。

如上所述,我将如何计算 Hessian 矩阵的最大特征值及其对应的特征向量来选择新的种子点。


感谢您的回复。我使用 eig2image.m 来查找图像上每个点的特征向量(在我的图像中,同心圆区域上有灰度值,背景为黑色)。

[Lambda1,Lambda2,Ix,Iy]=eig2image(Dxx,Dxy,Dyy)

其中 Ix 和 Iy 是最大的特征向量。
但是当我尝试使用以下方法绘制特征向量时:

quiver(Ix, Iy)

我还可以看到黑色背景上的向量应该为零!!

您能否回答我如何在图像顶部绘制特征向量。

【问题讨论】:

    标签: image algorithm matlab image-processing hessian-matrix


    【解决方案1】:

    假设Dxx, Dyy, Dxy 是维度size(Itry) 的二阶偏导数矩阵,那么对于Itry 中的给定点(m,n),您可以这样做:

    H = [Dxx(m,n) Dxy(m,n); Dxy(m,n) Dyy(m,n)];
    [V,D] = eig(H); % check by H*V = V*D;
    eigenVal1 = D(1,1); 
    eigenVal2 = D(2,2);
    eigenVec1 = V(1,:); 
    eigenVec2 = V(2,:);
    

    此局部特征分解将为您提供特征值(和相应的特征向量),您可以根据幅度对其进行排序。您可以遍历图像点,或者更紧凑的解决方案,请参阅 FileExchange 中的eig2image.m

    【讨论】:

    • 感谢您的回复。我使用 eig2image.m 来查找图像上每个点的特征向量(在我的图像中,同心圆区域有灰度值,背景为黑色): [Lambda1,Lambda2,Ix,Iy]=eig2image(Dxx ,Dxy,Dyy) 其中 Ix 和 Iy 是最大的特征向量。但是当我尝试使用以下方法绘制特征向量时:quiver(Ix, Iy)。我还可以看到黑色背景上的向量应该为零!!!........你能回答我如何在图像顶部绘制特征向量。
    • 这可能有助于绘制覆盖在图像上的矢量和矢量方向stackoverflow.com/questions/10416918
    • @gevang 感谢您的提示! eig2image 函数输出的是与最小特征值相关联的特征向量的坐标 ([Ix Iy]),对吧?如果我们想从最大的eigenvalue获取特征向量怎么办?
    • @gevang 我现在记得,eigenvectors 的对称矩阵是正交的 ;-)
    猜你喜欢
    • 2018-10-31
    • 2019-04-27
    • 1970-01-01
    • 2017-09-27
    • 2011-09-29
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多