next up previous
Next: Acknowledgements Up: No Title Previous: Two lines in a

Discussion

The Hough transform was successfully used in this project to detect straight lines in images. Additional techniques to remove or smooth out noise in the image were not required. Furthermore, it was not required to implement the Hough transform only on feature points. However for images with a large number of pixels, the Hough transform can be computationally 'expensive'. Thus further techniques are required to reduce the number of computations needed. One technique employed in this project was to calculate and store the values of $\sin(\theta)$ and $\cos(\theta)$ for $1 \le \theta \le 360^{\circ}$ in an array. Thus these functions did not have to be evaluated for each pixel in the image, rather their values could be retrieved from the array. This improvement significantly reduced the run-time of the program.
It was mentioned previously that negative r values were set to zero. This is because a line with parameters $(-r,\theta)$ can equivalently be described by parameters $(r,\theta +180)$. The program however would be more efficient if negative r values were recorded. Then it would only be required to run the transform through a range of $0 \le \theta \le 180^{\circ}$. To reduce the number of computations, one may also want to consider using the randomized Hough transform as discussed earlier or a reverse transform.

A further point to be made is that the Hough transform locates infinite lines, not line segments. However, once an infinite line is located, the end points can be found by dividing the image into smaller sections, and applying the Hough transform to each individual section separately. Hence the Hough transform can be used to detect shapes which consist of a finite number of straight lines.


next up previous
Next: Acknowledgements Up: No Title Previous: Two lines in a
vicky safouris
2000-06-02