The object of this assignment is to find circular objects in an image using Hough transform techniques. You are to write a program that takes an imput gray-scale image, and outputs the center and radius of all circular objects found. You want to output only one hypothesis per object, hence circles that are close concentric (i.e. have the same center within whatever you deem is a reasonable tolerance, and are not radically different in size) should be grouped probably be together in your output since it is likely that they arise from the same object. Your program should also display the output image and draw the located circles on it, so you can see how you are doing.
For this project, I would like everyone to write an individual program. Discussing techniques and problems is fine, of course, but don't develop joint code.
Three test (.tiff) images on which to run your program in /u/nelson/pics/misc/. They are circles1.tiff (easiest), circles2.tiff (harder), and circles3.tiff (have fun). They are on the undergrad network under cs249/pics. (The gif versions linked to here may be okay, since these are gray-scale images, but don't try this with color images)
You may want to make some preliminary test images that contain graphically generated perfect circles for debugging your program. You are permitted to use pre-existing software for low-level operations (e.g. image i/o, graphics, edgel finding etc.) but NOT for the Hough transform operation itself. This you are to implement yourself.
Hand in the test images, separate images showing the circles you found,
and also a printed list showing the centers and radii of the concentric
groups you have identified.
Also prepare a detailed writeup describing your algorithm (not the code),
the difficulties you encoutered and how you resolved them, and evaluating
the performance of your algorithm (how well did it do,
what were the weaknesses, etc.).
Hints: