Effacer les filtres
Effacer les filtres

count rectangular and circles

3 vues (au cours des 30 derniers jours)
Tu Nguyen
Tu Nguyen le 14 Avr 2022
Commenté : DGM le 15 Avr 2022
Hi all,
I want to count how many rectangular and circles in the image? what is the difference between rectagular and circle in matlab regionprops?
Also, I want to count how many rectangular and circles, both with holes in the image?
Finally, I want to export a figure just square and rectangular only.
Thank you for your help
close all;
A = imread('Shapes_with_holes.png');
A = imbinarize(A);
[label counts]= bwlabel(A);
stats = regionprops(A,'Circularity','Centroid','Area','Perimeter','Solidity','FilledArea');
filledImage = imfill(A,'holes');
boundaries = bwboundaries(filledImage);
circularity = [stats.Circularity];
perimeters = [stats.Perimeter];
area = [stats.Area];
filledarea = [stats.FilledArea];
solidities = [stats.Solidity];
Centroid = [stats.Centroid];
circularities = perimeters.^2./(4*pi*filledarea);
hold on;
for blobNumber = 1 : counts
if circularities(blobNumber) < 1.19
theLabel = 'Circle';
elseif circularities(blobNumber) < 1.53
theLabel = 'Rectangle';
theLabel = 'Triangle';
text(stats(blobNumber).Centroid(1), stats(blobNumber).Centroid(2),...
theLabel, 'Color', 'r');
  3 commentaires
Tu Nguyen
Tu Nguyen le 14 Avr 2022
I read the answer, however, they use a function minboundrect that is the built-in function. Do you have any method that classify rectangular and circles ny metric value?
DGM le 15 Avr 2022

Connectez-vous pour commenter.

Réponses (1)

yanqi liu
yanqi liu le 15 Avr 2022
yes,sir,use regionpropers to find difference between rectagular and circle, may be use:
such as
bwi = imcrop(bw, round(stats(i).BoundingBox));
rate = nueml(find(bwi(:)))/numel(bwi);
now we can find rectagular get more rate than circle, may be try it.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by