
How to count how many different objects
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
João Oliveira
el 18 de Jul. de 2018
Editada: Image Analyst
el 24 de Mzo. de 2020
So I have this image:

There are 36 objects in total and roughly 10 different ones.
Is there a method to calculate how many different objects there are?
0 comentarios
Respuesta aceptada
Akira Agata
el 25 de Jul. de 2018
Editada: Akira Agata
el 25 de Jul. de 2018
How about the following way?
% Load the image
BW = imread('bARgija.png');
% Remove small area (< 10 pixel)
BW2 = bwareaopen(BW,10);
% Obtain area and bounding box for each area
s = regionprops('table',BW2,{'Area','BoundingBox'});
% Set allowable area torelance (e.g 5 pixel)
tolPixel = 5;
% Assume same object has same area (with 5 pixel torelance)
r = tolPixel/max(s.Area);
[~,~,group] = uniquetol(s.Area,r);
% Show the result
color = jet(max(group));
figure
imshow(BW)
hold on
for kk = 1:height(s)
rectangle(...
'Position', s.BoundingBox(kk,:),...
'EdgeColor', color(group(kk),:),...
'LineWidth', 2);
end

The number of different objects can be obtained by max(group).
>> max(group)
ans =
12
4 comentarios
Paolo Piazza
el 24 de Mzo. de 2020
This is really interesting, I'd have another question: is it possible to calculate how simillar/dissimilar the objects are in an image? for instance, if all objects were saws (or more less have the same shape).
Image Analyst
el 24 de Mzo. de 2020
Editada: Image Analyst
el 24 de Mzo. de 2020
What I'd probably do is to align the objects, like with imregister() or imrotate() or something, then compute the Dice Sorensen Coefficient. It's been talked about here before so look it up. Also run my attached demo on it.
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!