MATLAB: For a binay image, how to plot a circle by using the centroid of the white pixel region for any given radius.

binary imagecircle

segmentedod 1(29).jpg

Best Answer

Hi!
It appears to me that you want to calculate the centroid of the white spot in your image, and using this centroid value as the center, plot a circle of any radius.
The first part of the question, i.e. finding the centroid of the circle can be evaluate as follows –
im = imread('figure.jpeg'); % Your figure
imBin = imbinarize(im);
imBin = imfill(imBin, 'holes');
BW = regionprops(logical(imBin), 'centroid');
imshow(imBin);
hold on;
plot(BW.Centroid(1),BW.Centroid(2),'bx')
The value of the centroid of this image is stored in the variable ‘BW’.
The output is -
Case ID 03693723.jpeg
(I snipped this output to enhance readability)
Coming to the second part of your question, please refer to this link here to get the relevant steps to plotting a circle with a given center and radius.