www.pudn.com > MatlabSIFT.zip > test.m
%example file for feature detector
%close all
testpat=0; %set to zero to use current contents of img variable
if testpat==1
img=zeros(400,400);
img(150:200,100:150)=200;
img(100:110,100:110)=200;
img(100:118,140:158)=200;
img(100:120,185:205)=200;
img(100:125,235:260)=200;
img(100:130,290:320)=200;
img(150:185,40:75)=200;
img(190:290,190:290)=200;
img(300:302,100:102)=200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*5;
elseif testpat==2
img=zeros(400,400);
img(200:400,190:210) = 200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*5;
elseif testpat==3
img=zeros(400,400);
img(1:400,190:210) = 200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*5;
elseif testpat==4
img=zeros(400,400);
img(200:400,190:210) = 200;
img(200:220,200:400) = 200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*0;
elseif testpat==5
img=zeros(400,400);
img(200:400,200:210) = 200;
img(200:210,1:400) = 200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*5;
elseif testpat==6
img=zeros(400,400);
img(1:400,200:210) = 200;
img(200:210,1:400) = 200;
img=filter_gaussian(img,7,sqrt(2));
img=img+randn(400,400)*5;
img=-img;
end
close all
if size(img,3)>1
img = rgb2gray(img);
end
%imagesc(img);
threshold=3; %Threshold value for rejecting maxima/minima
disp_flag = 0; %change to a zero for a combined view of all scales
img_flag = 1; %change to a zero to see features plotted on original image
radius = 4;
radius2 = 4;
radius3 = 4;
min_sep = .04;
edgeratio = 5;
scl = 1.5;
%img = imread(file_name);
%[pyr,imp] = build_pyramid(img,12,scl);
%pts = find_features(pyr,img,scl, threshold,radius,radius2,min_sep,edgeratio,disp_flag,img_flag);
%[features] = getpts(img,pyr,scl,imp,pts,6,radius3,min_sep,edgeratio);
[features,pyr,imp,keys] = detect_features(img,scl,disp_flag,threshold,radius,radius2,radius3, min_sep,edgeratio);
showfeatures(features,img);
axis equal;
%enjoy...