function points = kp_gilles(im,o_radius) % Extract keypoints using Gilles algorithm % % Author :: Vincent Garcia % Date :: 05/12/2007 % % INPUT % ===== % im : the graylevel image % o_radius : (optional) the radius of blobs detected % % OUTPUT % ====== % points : the interest points extracted % % REFERENCES % ========== % S. Gilles, Robust Description and Matching of Images. PhD thesis, % Oxford University, Ph.D. thesis, Oxford University, 1988. % % EXAMPLE % ======= % points = kp_gilles(im,10) % radius of 10 pixels % only luminance value im = im(:,:,1); % variables if nargin==1 radius = 10; else radius = o_radius; end mask = fspecial('disk',radius)>0; % compute local entropy loc_ent = entropyfilt(im,mask); % find the local maxima [l,c,tmp] = findLocalMaximum(loc_ent,radius); % keep only points above a threshold [l,c] = find(tmp>0.95*max(tmp(:))); points = [l,c,repmat(radius,[size(l,1),1])]; end