Я обнаруживаю углы на шахматной доске чаруко и рассчитываю фундаментальную матрицу с помощью StereoCalibrate из OpenCV. После этого я вычисляю эпиплоарные линии найденных координат пикселей первой пары изображений и визуализирую их с помощью кода из туториала OpenCV.
Весь код доступен здесь.
Я запускал эту программу несколько раз, но меня смущает то, что фундаментальная матрица каждый раз совершенно разная.
Один раз это было так:
Код: Выделить всё
0.0 -0.00002 0.00411
0.00002 0.00000 -0.02593
-0.00624 0.02016 1
Код: Выделить всё
-0.00001 0.00004 0.01019
-0.00004 -0.00001 0.0887
0.00018 -0.08702 1
[img]https:/ /i.sstatic.net/B1wek.png[/img]
и еще один прогон, они полностью снаружи:

И каждая линия должна пересекать точку, поскольку линия является эпилинией, а точка — найденный пиксель на другом изображении. Но это тоже не так.
Насколько я понимаю, эпиполи никогда не должны меняться, если камеры не двигаются, верно? (чего я не делаю)
Конечно, для каждого забега я использую разные изображения со своих камер, поэтому понимаю, что должна быть небольшая разница. Но, по крайней мере, эпиполи должны находиться в одном и том же положении.
Итак, у вас есть идеи, почему фундаментальная матрица так резко меняется во время прогонов?
Подробнее здесь: https://stackoverflow.com/questions/710 ... nt-results