Line detection is an important basic skill in computer vision. Hough transform is an efficient line detection technique which utilizes many skills we have learned in our math class and gives us a brand new perspective in problem solving. In stead of finding the lines in the images in the original x-y coordinate space, we will transform the problem into a parametric space. In addition, we are going to use polar coordinates to make the implementation feasible. The skills of handling matrix, binarising by thresholding, locating local maximum and programming skills are all crucial to the success of locating the straight lines in an image.
Resources and Tools
1. Image Files
Three 200x300 images from simple to complex for line detection.
Name: Images – L1.ppm, L2.ppm, L3.ppm
Website:
http://www.arlovecsl.com/arlovecsl/Hough Transform/L1.ppm
http://www.arlovecsl.com/arlovecsl/Hough Transform/L2.ppm
http://www.arlovecsl.com/arlovecsl/Hough Transform/L3.ppm
2. Converting Gray-scale Image into Binary Image
Name: Thresholding
Website: http://www.cs.ioc.ee/~khoros2/one-oper/threshold/front-page.html
3. Hough Transform Tutorials
Name: A few Hough Transform tutorials
Website: http://en.wikipedia.org/wiki/Hough_transform
http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm
http://www.gsi.de/documents/DOC-2007-Aug-23-1.pdf
http://visl.technion.ac.il/labs/anat//12-Hough/
http://www.generation5.org/content/2008/houghTransform.asp
4. Hough Transform Source Code
Name: hough.c
Website: http://vision.cs.arizona.edu/nvs/research/image_analysis/hough.html
5. Edge Detection
Name: Edge detection tutorial
Website: http://www.pages.drexel.edu/~weg22/edge.html
Assignments
1. Based on the input images L1, L2 and L3, detect and indicate the straight line(s) in the images.
Deliverables
1. Three output PPM binary image files: B1_ yourname.ppm, B2_ yourname.ppm and B3_yourname.ppm. The output images should be binary images.
2. Three output PPM image files of parametric space: P1_ yourname.ppm, P2_ yourname.ppm and P3_yourname.ppm, based on the three original images.
3. Three output PPM image files of line detection: L1_ yourname.ppm, L2_ yourname.ppm and L3_yourname.ppm. The output images should be the original images with detected lines overlaid on them.
4. A working C/C++ line detection program which will be tested against several new images.
Hough Transform Gallery
Original images:
Binary images:
Hough space:
Line Detection:
Hough Transform Student Project Gallery