Question

at first I want to apologize for my bad English.

I am really new in OpenCV and in virtual reality. I tried to find out the theory of image processing, but some points are missing there for me. I learned that projection matrix is matrix to transform 3D point to 2D. Am I right? Essential matrix gives me information about rotation between two cameras and fundamental matrix gives information about the relationship between pixel in one image with pixel in other image. The homography matrix relates coordinates of pixel in two image (is that correct?). What is the difference between fundamental and homography matrix?

Do I need all these matrices to get projection matrix? I am new in these, so please if you can, try to explain me it simply. Thanks for your help.

Was it helpful?

Solution

I learned that projection matrix is matrix to transform 3D point to 2D. Am I right?

Yes. But usually these transformations are expressed in homogeneous coordinates. This means that 3D points are represented by 4-vectors (ie vectors of length 4), and 2D points are represented by 3-vectors.

The homography matrix relates coordinates of pixel in two image (is that correct?)

No. This is true in two special cases only: when the scene lie on a plane, or when the two views have been generated by two cameras sharing the same center location.

In all the other cases, ie when the scene is not planar and the two cameras have different centers, there is not an homography transforming one image into the other.

What is the difference between fundamental and homography matrix?

There are many differences. From an algebraic point of view, the most obvious difference is that an homography matrix is non-singular (its rank is 3), while a fundamental matrix is singular (its rank is 2).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top