I'm trying to implement the Cascaded Hough Transform (I have already implemented the 'normal' version.) but I'm having trouble understanding the following:
After applying HT on an image, I am left with straight lines in hough space. The Cascaded version of the HT requires me to split the hough space into 3 sub-spaces so that the problem of unbounded values is solved.
How can I go about doing this?
Here's a picture of how the hough space is split:
In order to restore the boundedness of the parameter space while preserving the symmetric space duality, we will split the (a, b)-space into three bounded subspaces, as shown in the figure below. The firs开发者_如何学运维t subspace also has coordinates a and b, but only for | a | <= 1 and | b | <= 1. If | a | > 1 and | b | <= | a | , the point (a, b) turns up in the second subspace, with coordinates 1/a and b/a. If, finally, | b | > 1 and | a | < | b |, we use a third subspace with coordinates 1/b and a/b.
Here is where I get seriously confused, suppose I have a line in the hough space. How is it going to be split up if it violates | a | <= 1 and | b | <= 1?
Do I simply go through all the pixels in the line and if the pixel in question has coordinates greater than | a | <= 1 and | b | <= 1, I plot it in the 2nd subspace?
I apologize if this sort of question is not welcomed on Stack Overlow - is there another site where I can ask questions about algorithms?
Source for the image and the above quote
Suppose you have a point (x, y)
. Under the Hough transform as presented, it goes to the line
a x + b + y = 0
This corresponds to a different line in each of your subspace plots:
Subspace 1: a x + b + y = 0
Subspace 2: x + (b/a) + (1/a) y = 0
Subspace 2: (a/b) x + 1 + (1/b) y = 0
For example with the point (2, 1)
you get the three lines:
Subspace 1: 2a + b + 1 = 0
Subspace 2: 2 + (b/a) + (1/a) = 0
Subspace 2: 2(a/b) + 1 + (1/b) = 0
Or putting into y = m x + c
form:
Subspace 1: y = -2x - 1
Subspace 2: y = -x - 2
Subspace 2: y = -x/2 - 1
精彩评论