Правильна ли моя стереокалибровка?Почему моя триангуляция не работает тогда? - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь получить трехмерное облако точек из изображений с моей стереокамеры.Я откалибровал свою стереокамеру (240x320 каждая) с помощью OpenCV в Python и получил ошибку перепроецирования 0,25.Я использовал шахматную доску с 9х10 строками и столбцами, сделал 10 изображений под разными углами при разных условиях освещения и при этом передвинул камеру.(Я не уверен, может быть, в этом проблема) Затем я импортировал их в Matlab, и Matlab дал мне углы шахматной доски.(Я выбрал matlab, потому что он был гораздо более точным, чем opencv) Затем я загрузил углы в свой скрипт калибровки python.

Внутренняя калибровка безупречна:

stereo images after intrinsic calibration and undistortion

Но я не уверен, смогу ли я использовать результаты внешней калибровки, потому что изображение все еще круглое и имеет эти черные пробелы;прямоугольные центры изображений хороши:

stereo images after extrinsic calibration

Параметры и матрицы сохраняются и загружаются в другой скрипт.Этот скрипт запускает оператор sobel через левое и правое изображение и находит совпадающие краевые пиксели на обоих изображениях:

matched pixels

Затем я передаю эти совпадающие пиксели в cv.triangulatePoints (projMatr1, projMatr2, projPoints1, projPoints2), которые должны дать мне трехмерные координаты точек.Я заговариваю их с заговором, но результат не узнаваем и не приближается к краям показанной чашки:

3D plot

У кого-нибудь есть идеи, что это может быть или что яя делаю неправильно?Я могу опубликовать свой код здесь, если это необходимо.

1 Ответ

0 голосов
/ 21 сентября 2018

Хорошо. Я попытался заменить элементы строки и столбца совпадающих точек из [row, col] => [col, row], и теперь триангуляция работает:

result after changing row and column

Есть еще ложные совпадения, но это нормально, я ожидал их.Но изменение строк и столбцов не работает с изображениями:

matches after changing row and column

, но это уже другая история, и я удовлетворен текущим результатом.

...