# hough voting, turning transformation into a vote

I need help understanding how/what does it mean to "turn" a transformation parameters into a vote. I know how to recover the transformation parameters (in my case: 6 DOF), but how this turns into a vote in 6D (??) space ?

Thank You !

1. Determine the accuracy you will need for each of your six DOF. Don't use larger accuracy than you actually need, since it will get you in trouble later, when you have to find maxima in the Hough Space.
2. Determine the range of possible transformation parameters for you six DOF.
3. Now create a six dimensional array A (one dimension for each DOF) where each dimension has the size range/accuracy for the current DOF. This array is your Hough Space.
4. Now, for any given vector v = [DOF1, DOF2, DOF3, DOF4, DOF5, DOF6] increment the bin in A in which v falls. You have now turned this single vector of transformation parameters onto a vote in the Hough Space,

2D example:

1. x is in the range [1;6] and y also in the range [1;6].

2. x should be found with an accuracy of one whereas y only needs an accuracy of two.

3. A(x,y) looks like this:

0;0;0
0;0;0
0;0;0
0;0;0
0;0;0
0;0;0

where the bold bin corresponds to x= and y=[1;2].

So if you would like to cast a vote for a vector v(x,y)=[3,1] you would simply increment the bold zero by one. Votes for v(x,y)=[3,2] would in this case fall in the same bin, because of the reduced accuracy needed for y, whereas votes for v(x,y)=[3,3] would go into the bin to the right.

I hope this was helpful, and did not just confuse you more. ;)

A vote is just an increment in an array.

for example

[0, 0, 0, 0, 0, 0;
0, 0, 1, 0, 0, 0;
0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0]


would be a vote for (2,3). You can extend that to however many dimensions you need