Why do homographies have 8 degrees of freedom if we have a variable i as the 9th variable? I've looked online and it says because we normalize the matrix so this will be 1, so why don't we just replace i with 1 instead?
Also how does the addition of g and h suddenly make the point wrap? Wouldn't it just adjust the scale, because it will only affect the bottom w' of our point, which we would divide out anyway when converting homogenous coordinates to heterogenous ones
mpotoole
@qryy Because of our definition $[x, y, 1] = [wx, wy, w]$, all scaled versions of this matrix are equivalent. So we can absolutely simply constrain i to have a value of 1, and call it a day.
Oh, and just to be clear, "projective wraps" should be "projective warps". :-) Just a small typo. Changing the value of $g$ and $h$ is a little weird though---it would not simply adjust the scale. We'll talk about this in the next class. But you can also test out what happens when you change $g$ and $h$ yourself with this notebook.
qryy
You said in lecture that this matrix is an example of a homogenous vector, which is why there are only 8 degrees of freedom. But how does this work for a matrix? This isn't a simple column or row vector where you can add just a 1 at the end, this is a matrix...
mpotoole
Let's say we define a homography matrix $H$. If we were to scale the elements of $H$ by a factor $\alpha$, it would simply scale the result of any matrix-vector product operation by the same factor $\alpha$. In other words:
$\alpha [x',y',1]^T = (\alpha H) [x,y,1]^T$
Because the homogeneous vector $\alpha [x',y',1]$ corresponds to the heterogeneous point $[x',y']$ for any (non-zero) value $\alpha$, then this means that we can also scale the matrix $H$ by any factor without it affecting the result.
Why do homographies have 8 degrees of freedom if we have a variable i as the 9th variable? I've looked online and it says because we normalize the matrix so this will be 1, so why don't we just replace i with 1 instead?
Also how does the addition of g and h suddenly make the point wrap? Wouldn't it just adjust the scale, because it will only affect the bottom w' of our point, which we would divide out anyway when converting homogenous coordinates to heterogenous ones
@qryy Because of our definition $[x, y, 1] = [wx, wy, w]$, all scaled versions of this matrix are equivalent. So we can absolutely simply constrain i to have a value of 1, and call it a day.
Oh, and just to be clear, "projective wraps" should be "projective warps". :-) Just a small typo. Changing the value of $g$ and $h$ is a little weird though---it would not simply adjust the scale. We'll talk about this in the next class. But you can also test out what happens when you change $g$ and $h$ yourself with this notebook.
You said in lecture that this matrix is an example of a homogenous vector, which is why there are only 8 degrees of freedom. But how does this work for a matrix? This isn't a simple column or row vector where you can add just a 1 at the end, this is a matrix...
Let's say we define a homography matrix $H$. If we were to scale the elements of $H$ by a factor $\alpha$, it would simply scale the result of any matrix-vector product operation by the same factor $\alpha$. In other words:
$\alpha [x',y',1]^T = (\alpha H) [x,y,1]^T$
Because the homogeneous vector $\alpha [x',y',1]$ corresponds to the heterogeneous point $[x',y']$ for any (non-zero) value $\alpha$, then this means that we can also scale the matrix $H$ by any factor without it affecting the result.