help with "imfindcircles"
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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);
0 comentarios
Respuesta aceptada
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
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
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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!