count rectangular and circles

6 次查看(过去 30 天)
Tu Nguyen
Tu Nguyen 2022-4-14
评论: DGM 2022-4-15
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
clc;
close all;
clear;
A = imread('Shapes_with_holes.png');
A = imbinarize(A);
[label counts]= bwlabel(A);
imshow(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';
else
theLabel = 'Triangle';
end
text(stats(blobNumber).Centroid(1), stats(blobNumber).Centroid(2),...
theLabel, 'Color', 'r');
end
  3 个评论
Tu Nguyen
Tu Nguyen 2022-4-14
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?

请先登录,再进行评论。

回答(1 个)

yanqi liu
yanqi liu 2022-4-15
yes,sir,use regionpropers to find difference between rectagular and circle, may be use:
Circularity、BoundingBox
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.

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by