help with "imfindcircles"

3 visualizaciones (últimos 30 días)
calistaird
calistaird el 5 de Dic. de 2020
Comentada: Image Analyst el 22 de Dic. de 2020
Hello! i am having trouble finding the centroid of this petri dish.
when i run my code, matlab finds 12 centroids and when i use 'viscircles' its showing me 12 rings on top of each other. could this be a sensitivity issue? are there other ways i can eliminate the other circles and only detect the boundary of the petri dish?
here is my code and i have also attached the image im analyzing and the resultant image after running the code
for i = 1:numI
file = images(i).name;
img = imread(file);
imshow(file)
% d = drawline;
% pos = d.Position;
% diffPos = diff(pos);
% diameter = hypot(diffPos(1),diffPos(2));
[C,R] = imfindcircles(img,200,'ObjectPolarity','dark','Sensitivity',1);
end
v = viscircles(C,R);

Respuesta aceptada

Image Analyst
Image Analyst el 5 de Dic. de 2020
Post your original image, rather than a screenshot.
For one thing, your image capture conditions are horrible. You need to have lights on both sides to get rid of that bad shadow that is essentially the same darkness as your petri dish. If you had that, you could simply threshold and call regionprops:
mask = grayImage < someThresholdValue;
% Take largest blob.
mask = bwareafilt(mask, 1);
% Fill holes
mask = imfill(mask, 'holes');
% Find centroid
props = regionprops(mask, 'Centroid', 'EquivDiameter')
xCenter = props.Centroid(1)
yCenter = props.Centroid(2)
diameter = props.EquivDiameter
  2 comentarios
Chaman Srivastava
Chaman Srivastava el 21 de Dic. de 2020
Hey! Image Analyst.
Really appreciate your answers!
I have a question regarding imfindcircles command in Matlab. Why is that it always return interger values if i specify a range in the command. Any insights on this? Is there any method to extract much accurate values?
Image Analyst
Image Analyst el 22 de Dic. de 2020
Not sure. I don't really use it that much. Maybe it always wants to put the center on a definite row and column. You can call them and ask them or edit imfindcircles.m to see the source code.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by