Search code examples
computer-visionprojection-matrixhomogenous-transformationmatrix-vision

Homogeneous matrix has eight independent ratios of matrix elements?


I'm reading some paper about computer vision. It looks like a simple fact but I can't understand. It is about homogenous [3x3] matrix that is used for planar projective transformation. And it is said to have eight independent ratios of matrix elements. I don't know what the ratio is, and what the eight independent ratios are? Please help me this problem.

Thank you.


Solution

  • It means that two projective transformations P and kP are equivalent.

    Consider a point in 2D: it can be expressed in non-homogeneous coordinates by a vector [x,y] . The same point expressed in homogeneous coordinates would be [x',y',w] where

    x = x' / w
    y = y' / w
    

    As you can see, w behave as a scaling factor.
    Dividing the homogeneous coordinates by w you get [x'/w, y'/w, 1] = [x,y,1]. Thus a 2D point has only two degrees of freedom.

    You can apply the same reasoning to a 3x3 matrix. Of the 9 elements only 8 are independent, while the last one can be seen as a scaling factor. It doesn't matter actually which one of the nine you choose.

    For additional informations: Homogeneous coordinates

    EDIT: The number of DOF is the number of independent parameters. In the example of the 2D point, even though we have three parameters (x',y',w), there are only two independent ratios: as I shown before, if you divide by w your firsts two parameters become fractions ("ratio" means division), while the third one is simply 1.

    For a 3D point it's the same reasoning, but you have to consider the z axes: a generic 3D point is [x',y',z',w] (4 parameters), but, if we divide by w it becomes [x'/w, y'/w, z'/w, 1] so three independent ratios.

    I'm always dividing by w because the ratios x'/w, y'/w, z'/w have a particular meaning (non-homogeneous coordinates of the point), but to count the dof you can use any other parameter.

    Let's consider the example of a 2x2 matrix (for a 3x3 it's the same, it's just longer to type):

    m11  m12
    m21  m22
    

    4 parameters. Dividing by one of those at your choice (well, actually at my choice...), say m12 it becomes

    m11      1
    ---    
    m12
    
    m21     m22
    ---     ---
    m12     m12
    

    3 ratios so three degrees of freedom (for a generic 2x2 matrix). If, by instance, we have m21 = m12 we would get

    m11      
    ---      1
    m12
    
            m22
     1      ---
            m12
    

    thus in this case we would have only 2 dof! Don't get confused by the fact that you see m11,m22 and m12 (three parameters), because actually you can consider a = m11/m12 and b= m22/m12, thus it becomes

    a   1
    1   b
    

    that means two independent parameters, thus two dof.

    Hope it's clearer now