[Valentino Heman Budiarto] 1fa1fa8260 1
2025-12-18 20:26:05 +07:00

46 lines
1.1 KiB
Matlab

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