paper 133:结构张量Structure Tensor(一)
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;
end
end
figure;
plot(lambda(:,1),lambda(:,2),'.');
ylabel('trace');
xlabel('det');
figure;
imshow(I)


浙公网安备 33010602011771号