OpenCV StereoCalibrate всегда возвращает совершенно разные результатыPython

Программы на Python
Anonymous
OpenCV StereoCalibrate всегда возвращает совершенно разные результаты

Сообщение Anonymous »

Я хочу поэкспериментировать со стереоизображением и поэтому установил две веб-камеры, которые расположены почти параллельно друг другу.
Я обнаруживаю углы на шахматной доске чаруко и рассчитываю фундаментальную матрицу с помощью 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

Вернуться в «Python»