1.结构张量的作用:
能够区分图像中的平坦区域,边缘,角点;
2.图像中的结构张量的定义
1)是一个矩阵;
2)与图像的水平,垂直梯度有关,定义如下:
在MATLAB中,可以用如下语句求解:[Ix,Iy]=gradient(Image);
3)求出结构张量矩阵的行列式,和迹(矩阵对角线之和)
行列式:K=det(E);
迹: H=trace(E);
以下代码来源于网络,注释除外
clear all;close all;clc;I=imread('lena.jpg');img=double(I);[m,n]=size(img);[Ix,Iy]=gradient(img); %求出图像的梯度Ix2=Ix.^2;Iy2=Iy.^2;Ixy=Ix.*Iy;k=1;lambda=zeros(m*n,2); %用于存储结构张量中的行列式与迹for i=1:m for j=1:n st=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)];%结构张量 K=det(st); % 行列式 H=trace(st);%求迹 if H<50 I(i,j)=255; end if H>50 &&abs(K)<0.01*10^(-9) I(i,j)=100; end if H>50 &&abs(K)>0.01*10^(-9) I(i,j)=50; end lambda(k,:)=[K H]; k=k+1; endendfigure;plot(lambda(:,1),lambda(:,2),'.');ylabel('trace');xlabel('det');figure;imshow(I)