Moving a pinhole camera First of all, I should say all my information on pinhole camera is only 1 day old, so I'm not sure if anything that I say is correct or not. But lets assume that I have a point on the image plane and a set of world points. I want to find out if any of my world points will match my point on the image plane if I move my camera from point A to B.
I don't know if this approach is possible or not, but I thought if I calculate the plane containing 3 points (A, B, point in image plane), I can calculate distance of world points from this plane and find out if any of these points will be seen during transition from A to B.
What do you think? Is my approach correct? In addition, I will be happy to have some good reference over pinhole cameras.
 A: The pinhole camera model is the simplest model of a perspective projection camera.  In this model, the camera has a coordinate frame represented by a translation vector $d$ and a rotation matrix $R$ whose columns are the unit directions of the three axes.  If $r(x,y,z)$ is a point expressed in world coordinates (relative to the absolute frame) and $p(x',y',z')$ is this same point but expressed in the camera coordinate frame then
$ r = d + R p $
So
$ p = R^T (r - d) $
In the pinhole camera model, a projection plane is created at the plane $ z' = f $ where $f $ is a positive constant.  Given a point $r_1(x_1, y_1, z_1) $ then its image on the projection plane is generated as follows.  Connect $r_1$ to the origin (which is $d$) and intersect this line with the projection plane.
Equation of this line of sight between $d$ and $r_1$ is
$r(t) = d + t (r_1 - d) $
Now the projection plane equation is $z' = f$, using this information, we can determine the value of $t$ that gives the intersection of the line of sight with the projection plane, simply by setting the $z'$ coordinate of $r(t)$ to $f$.
$p = R^T (r(t) - d) $, so $ p = t R^T (r_1 - d ) $. Setting the third coordinate to $f$ gives
$ t = \dfrac{f}{k^T R^T (r1 - d ) } $
where $k^T = [0, 0, 1] $
Thus the image is
$ p = \dfrac{f R^T (r_1 - d)} { k^T R^T (r_1 - d) } \hspace{15pt}(*) $
The coordinate of $p$ are the image coordinates on the projection plane.  Since the projection plane in reality is not infinite but bounded, we can assume that its bounds are the region $[-x_0, x_0] \times [-y_0, y_0 ]$.
Then we can determine if a world point is visible through the image boundaries by calculating $p$ directly using equation $(*)$
