in OpenCV there is functions to warp any 2D image using a homography matrix (3x3), e.g. cv2.warpPerspective. These matrices are generally constructed using point correspondences 2D->2D and solving for the matrix that maps the first set of points to the second, e.g. using cv2.findHomography.

Now I'm wondering what the rotations and translations of the camera are, that lead to a homography. So if I rotate and translate the (virtual) camera (6 degrees of freedom) by given values - what does the matrix look like to project a 2D image to the version seen by the rotated and translated camera. I somehow feel that this can't be solved in 2D but I can't really tell why.

  • $\begingroup$ I just looked up homography on wikipedia and it looks to me, for 2D, it's performing a mapping much like perspective texturing which means (using homogeneous coordinates) you'll need a 3x3 matrix where the bottom row isn't just 0,0,1. You can't form that with just rotations and translations as their matrices will always have 0,0,1 in the bottom row and, hence, so will their products. $\endgroup$ – Simon F Feb 9 '17 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.