Implementation of Hough Transform to detect Circles in an Image
Circle Hough Transform is a feature extraction technique used in Digital Image Processing to detect circles in an image. It is a specialized form of Hough Transform that utilizes three core techniques used in Image Processing - Image Filtering, Edge Detection and Hough Transform.
The project was implemented as a final project for the course CSE573: Computer Vision and Image Processing at University at Buffalo, The State University of New York during Fall 2016. The goal of the project is to detect circles in an image using Hough Transform.
To run the program type python main.py
in the terminal.
Requires the following packages installed
- Numpy
- Matplotlib
- Scipy
Circle Hough Transform is implemented by "voting" in the Hough parameter space. The image is smoothened using a Gaussian Filter to eliminate any unwanted noise. Then the edges are detected in the image using Laplace of Gaussian with Zero Crossing. This provides the basic outline in the image. At each point on the edge, voting for all possible circles is performed in the Hough space. The local maxima in the Hough space gives the circles. A threshold is used to identify qualifying local maxima's.
The implementation requires identifying optimal threshold values for edge detection and local maxima's. This is done iteratively by scanning through the threshold space.
Input Image
Circle Hough Transform Output
We can see that Circle Hough Transform is able to detect even the occluded circles.