Coordinate axis with triangulatePoints

So, I have the projection matrix of the left camera:

and the projection matrix of my right camera:

And when I perform triangulatePoints on the two vectors of corresponding points, I get the collection of points in 3D space. All of the points in 3D space have a negative Z coordinate. I assume that the initial orientation of each camera is directed in the positive Z axis direction.

My assumption was that OpenCV uses Right Hand coordinate system like this:

So, when I positioned my cameras with projection matrices, the complete picture would look like this:

But my experiment leads me to believe that OpenCV uses Left Hand coordinate system:

And that my projection matrices have effectively messed up the left and right concept:

Is everything I've said correct? Is the latter coordinate system really the one that is used by OpenCV?

If I assume that it is, everything seems to work fine. But when I want to visualize things using viz module, their WCoordinateSystem widget is right handed.

edit retag close merge delete

Specifically, when I use triangulatePoints to get 3D point coordinates. And immediately after that I pass these 3D point coordinates to solvePnP. What I expect to get is a camera pose around zero 3D coordinate and zero rotation.