clear
clc
img=imread('D:\Machine Vision\hw\hw7\1.jpg');
img=im2double(img);
[m n]=size(img);
Wx=[-1 0 -1;-2 0 2;-1 0 1]; %%sobel dx
Wy=[-1 -2 -1;0 0 0;1 2 1]; %%sobel dy
IX=imfilter(img,Wx);
IY=imfilter(img,Wy);
IX2=IX.*IX;
IY2=IY.*IY;
IXY=IX.*IY;
Wm=fspecial('average',[5 5]);
FIX2=imfilter(IX2,Wm);
FIY2=imfilter(IY2,Wm);
FIXY=imfilter(IXY,Wm);
for i=1:m
for j=1:n
A=[FIX2(i,j) FIXY(i,j);FIXY(i,j) FIY2(i,j)];
eigenvalues=eig(A);
C(i,j)=min(eigenvalues);
end
end
out=ordfilt2(C,5*5,ones(5,5));
out=(out==C)&(out>0.19);
[r c]=find(out);
d=[r c];
figure,imshow(img);
hold on
for k=1:size(d,1)
plot(d(k,2), d(k,1),'r+');
end
hold off