-1
$\begingroup$

Suppose I got a projective camera model. For this model I would like to back-project a ray through a point in the image plane. I know that the equation for this is the following: $$ y(\lambda) = P^+_0 x_0 + \lambda c_0 $$ where $P^+_0$ denotes the pseudoinverse of the camera matrix, $x_0$ the point on the image plane and $c_0$ the center of the camera.

Now I don't fully get this equation. I get that $P^+_0 x_0$ results in a point on the line we are looking for. Hence we have two points that we can use for constructing a line. However I don't get the parametrization using $\lambda$. Why is the equation not in the form like: $$y(\lambda) = (1-\lambda) a + \lambda b.$$

Any help in understanding the original equation of the resulting ray would be appreciated!

$\endgroup$

2 Answers 2

2
$\begingroup$

The equation is in your form, with $a = P^+_0 x_0$ and $b = P^+_0 x_0 + c_0$.

Since $P c_0 = 0$, $P \lambda c_0 = \lambda P c_0 = 0$. I think that adding a linear multiple of $c_0$ corresponds to sliding along a line normal to the image plane (i.e. parallel to the principal axis), which doesn't change the projected point in the image plane.

By the way, I found the original poster's specific equation on p.162 of Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman via a web preview.

$\endgroup$
1
  • $\begingroup$ thanks for you answer. however I don't think that it accounts for sliding along the line normal to the image plane, (unless our original point is (0,0)) if it was sliding along the normal we would get lot's of points in 3-space that don't actually map to our original point on the image plane. $\endgroup$
    – tdomhan
    Jan 31, 2012 at 20:11
2
$\begingroup$

I hope it's ok if I provide an answer myself.

Algebraic explanation: we're trying to solve the equation $$PX=x$$ This is a linear system which can be solved using the pseudo-inverse (see Moore–Penrose inverse): $$X(\lambda)=P^+x+(I-P^+P)\lambda.$$ We know $PC=0$, hence $I-P^+P$ is exactly our $C$.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.