views:

1043

answers:

1

(This is a follow-up from this previous question).

I was able to successfully use OpenCV / Hough transforms to detect lines in pictures (scanned text); at first it would detect many many lines (at least one line per line of text), but by adjusting the 'threshold' parameter via trial-and-error, it now only detects "real" lines.

(The 'threshold' parameter is dependant on image size, which is a bit of a problem if one has to deal with images of different resolutions, but that's another story).

My problem is that the Hough transform sometimes detects two lines where there is only one; those two lines are very near one another and (apparently) parallel.

=> How can I identify that two lines are almost parallel and very near one another? (so that I can keep only one).

+2  A: 

If you use the standard or multiscale hough, you will end up with the rho and theta coordinates of the lines in polar coordinates. Rho is the distance to the origin, and theta is normally the angle between the detected line and the Y axis. Without looking into the details of the hough transform in opencv, this is a general rule in those coordinates: two lines will be almost parallel and very near one another when: - their thetas are nearly identical AND their rhos are nearly identical OR - their thetas are near 180 degrees apart AND their rhos are near each other's negative

I hope that makes sense.

David Van Hamme
Yes you're absolutely right; I did find this out after I posted my question; in fact it's really straightforward in OpenCV. Thanks!
Also, if one sets the 'resolution' parameter higher, less lines are found; and this is what I needed actually.