The Hough transform may be used to detect circular shapes in images, after binarisation, for example by an edge detector. Often, functions to do this operation require the radius of the circle to be specified.
The function circle_hough allows a range of radii to be specified, so that the radius does not need to be known exactly in advance. It is likely to be faster than calling a standard function repeatedly for different radii.
Multiple circles may be detected by finding peaks in the 3D accumulator array. A function, circle_houghpeaks, is provided for this. A demonstration of the two functions is included as a script, circle_houghdemo.
The zip file includes an efficient and accurate implementation of circle approximation, without gaps, on an integer grid.
David Young (2024). Hough transform for circles (https://www.mathworks.com/matlabcentral/fileexchange/26978-hough-transform-for-circles), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: Hough Transform for circle detection
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Fixed bug in options code in circle_hough. Enhanced circlepoints for more generality when used for graphics.
Added circle_houghpeaks and circle_houghdemo, minor change to circle_hough to allow radius normalisation to be requested.