How can I find the centroid of this circle of objects?
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Is it possible to find the center of this circle of unconnected objects?
I have tried using regionprops, however, it does not give me a centroid in the center.
Thank you
0 comentarios
Respuestas (1)
Rik
el 29 de Mayo de 2020
There are at least two options here. The first is to take the average of the x coordinates and y coordinates of the white pixels.
The second in a bit more involved. You can define a cost function (e.g. the sum of all the distances from the centroid to each point) and fit a value to that function. The performance would probably improve if you skeletonize your image first.
1 comentario
Ameer Hamza
el 29 de Mayo de 2020
This code follows the Rik's idea
img = imbinarize(rgb2gray(im2double(imread('image.jpeg'))));
rgs = regionprops(img);
[~,idx] = max([rgs.Area]);
rgs(idx) = [];
center = vertcat(rgs.Centroid);
[xc, yc, R] = circfit(center(:,1), center(:,2));
imshow(img);
hold on
plot(xc, yc, 'r+', 'LineWidth', 2)
images.roi.Circle(gca,'Center',[xc yc],'Radius',R,'Color','r');
circfit() is used from here: https://www.mathworks.com/matlabcentral/fileexchange/5557-circle-fit
The fit looks quite accurate.
Ver también
Categorías
Más información sobre Image Segmentation and Analysis 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!