NMO
NMO

Reputation: 766

OpenCV stereoCalibrate always returns totally different results

I want to experiment with stereo imaging and therefore, installed two webcams which are aligned nearly parallel next to each other.

I detect corners on a charuco chessboard and calculate the fundamental matrix using stereoCalibrate from OpenCV. After that, I am calculating epiploar lines of the found pixel coordinates of the first image pair and visualize them using the code from the OpenCV tutorial.

The whole code is available here.

I ran this program multiple times, but what confuses me is that the fundamental matrix is everytime totally different.

One time, it is:

0.0 -0.00002 0.00411
0.00002 0.00000 -0.02593
-0.00624 0.02016 1

And another time, it is:

-0.00001 0.00004 0.01019
-0.00004 -0.00001 0.0887
0.00018 -0.08702 1

Further, one time the epipoles are within the image plane:

enter image description here

and another run, they are completely outside:

enter image description here

And each line should cross a dot since a line is an epiline and the dot is a found pixel in the other image. But this is also not the case.

As far as I understand, the epipoles should never change if the cameras are not moved, right? (which I don't do) Of course, for each run I use different images from my cameras so I understand that there should by a slight difference. But at least the epipoles should be at quite the same position. So do you have an idea why the fundamental matrix changes so drastically during runs?

Upvotes: 0

Views: 585

Answers (0)

Related Questions