Ask Your Question

How do I compute the fundamental matrix from 2 projection matrices?

asked 2017-03-02 16:14:07 -0500

ad05 gravatar image

Supposed I have 2 projection matrices in the form of P1 (3x4 matrix) and P2 (3x4) matrix, is there a function in opencv that could compute the fundamental matrix?

Apparently there's a function called fundamentalFromProjections: []) but I couldn't find it in opencv in python.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2017-03-02 19:12:46 -0500

Tetragramm gravatar image

The sfm module is difficult to compile with a lot of dependencies, but the code is still in the opencv_contrib repository. This method is simple enough.

edit flag offensive delete link more


Thing is I don't know C++ very well, so how do I translate this into a python function?

ad05 gravatar imagead05 ( 2017-03-03 07:59:44 -0500 )edit

Well, the vconcat function is the same as numpy vstack. The (i,j) access is the same as numpy's .item(i,j). And determinant is numpy.linalg.det.

I assume you know how to access one row of data, and create the 3x3 double or float output.

Tetragramm gravatar imageTetragramm ( 2017-03-03 18:40:43 -0500 )edit

what about X[3], Y[3], X[0], Y[0] ? what are those?

ad05 gravatar imagead05 ( 2017-03-07 12:15:27 -0500 )edit

Array accesses. It makes an array of Mat_<t> called X and Y, and it's just like a python array. The Mat_<t> can be replaced with a numpy array of the appropriate type.

Tetragramm gravatar imageTetragramm ( 2017-03-07 17:22:15 -0500 )edit

Question Tools



Asked: 2017-03-02 16:14:07 -0500

Seen: 1,442 times

Last updated: Mar 02 '17