Hough transform for circles

A Hough transform function for detecting circles, optimised to allow search over radii.
Updated 4 Mar 2016

View License

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.

Cite As

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
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

Fixed bug in options code in circle_hough. Enhanced circlepoints for more generality when used for graphics.
MathWorks update: Added Live Script.

Added circle_houghpeaks and circle_houghdemo, minor change to circle_hough to allow radius normalisation to be requested.