How do I find the number of circles in an image? I've given the code I used and output image below

5 Ansichten (letzte 30 Tage)
clc; close all; clear all; a=imread('C:\Users\Hema\Desktop\nonemptylot.jpg'); b=imread('C:\Users\Hema\Desktop\emptylot.jpg');
[x,y]= size(a); [c d]=size(b);
e=rgb2hsv(a); f=rgb2hsv(b); subplot(1,2,1) imshow(e); title('HSV of Nonempty'); centers = imfindcircles(e,[20 20]); [centers,radii] = imfindcircles(e,[5 15]); [centers,radii,metric] = imfindcircles(e,[5 15]); BW=size(viscircles(centers, radii,'EdgeColor','b')); STATS = regionprops(BW,'EquivDiameter');
subplot(1,2,2) imshow(f); title('HSV of empty'); centers = imfindcircles(f,[20 20]); [centers,radii] = imfindcircles(f,[5 15]); [centers,radii,metric] = imfindcircles(f,[5 15]); BW=size(viscircles(centers, radii,'EdgeColor','b')); STATS = regionprops(BW,'EquivDiameter');
disp(STATS);

Antworten (1)

Jayanti
Jayanti am 24 Mär. 2025
Hi Soundarya,
“imfindcircles” function returns the centers and radii of the detected circles. The number of circles is simply the length of the centers array. “centers” is a matrix where each row represents a circle.
[centers1, radii1, metric1] = imfindcircles(e, [5 15]);
numCirclesNonEmpty = size(centers1, 1);
[centers2, radii2, metric2] = imfindcircles(f, [5 15]);
numCirclesEmpty = size(centers2, 1);
The below code
size(centers, 1);
will return the size of the first dimension of the “centers” matrix. Which corresponds to the number of detected circles.

Community Treasure Hunt

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

Start Hunting!

Translated by