MATLAB Answers

Improving circle detection with imfindcircle

29 views (last 30 days)
Victoria Duke
Victoria Duke on 25 Sep 2017
Hello all, I am trying to improve best-fit circle detection using the function "imfindcircle". Currently a sensitivity of 0.98 searching within a range of [50 175] yield the following:
[centers, radii] = imfindcircles(im{k+1},[50 175],'ObjectPolarity','bright','Sensitivity',0.98)
(This is only a line of the code that is part of a larger loop that performs imfindcircles for multiple images)
I have tried a variety of sensitivities and ranges as well as preprocessing the image by converting it to edges:
imtemp = imread(strcat(X,side,'-',num2str(i1),'.png')); %read
im2{i1+1} = imtemp{i1+1}(:,:,2);
im{i1+1} = edge(im2{i1+1},'canny'); %convert to edges only
However the fits do not seem to improve beyond the original result. What are the best image preprocessing steps to improve detection of the circle?
Thank you!

Community Treasure Hunt

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

Start Hunting!

Translated by