MATLAB: How to find x-y coordinates of minutia(end points , short ridges) of finger print image , and store it in matrix

minutia in finger print

i have maximum length of short ridges and i want to extract coordinates of it

Best Answer

Assuming the maximum 'area' (not 'length') of short ridges < 50 pixel, I think the following code can detect them.
% Read the image
I = imread('finger3.bmp');
BW = imbinarize(I);
% Measure region properties
stats = regionprops(~BW,{'Area','BoundingBox','PixelList'});
stats = struct2table(stats);
% Assuming the area of short ridge < 50 pixel
idx = stats.Area < 50;
stats = stats(idx,:);
% Show the detected short ridges
imshow(I)
hold on
for kk = 1:height(stats)
rectangle('Position',stats.BoundingBox(kk,:),'EdgeColor','b')
plot(stats.PixelList{kk}(:,1), stats.PixelList{kk}(:,2),'r.')
end