Hello, Pat.
It is possible to count the nails.
You just need to perform some morphologichal operations, such as
erosion, area open, etc.
Then, in the next step you need to count the objects. You can use regionsprops command.
Here my demo :
Irgb = imread('n7vGa.jpg');
Igray = rgb2gray(Irgb);
Ibw = im2bw(Igray, 0.9);
se = strel('square',2);
Imorph = imerode(Ibw,se);
Iarea = bwareaopen(Imorph,130);
Idiff = Imorph - Iarea;
Ifinal = bwareaopen(Idiff,70);
stat = regionprops(Ifinal,'BoundingBox');
str = sprintf('number of detected nails : %d', length(stat));
imshow(Irgb); title(str); hold on;
for cnt = 1 : length(stat)
bb = stat(cnt).BoundingBox;
rectangle('position',bb,'edgecolor',rand(1,3));
end
And the result :
Is that you meant??
Best Answer