Трехмерная реконструкция C ++ с OpenCV .. Фундаментальная матрица слишком большая - PullRequest
3 голосов
/ 16 января 2012

Хорошо, я отправляю свои загадки жизни в stackoverflow после 4 дней бессмысленного программирования, когда кажется, что ничто не дает правильных результатов или, по крайней мере, близко к правильному. извините за то, что я немного драматичен, но сегодня я чувствую себя паршивым программистом.

В любом случае, моя проблема:

Для получения Фундаментальной матрицы используется RANSAC (N> 8).

У меня есть два изображения с широкой базовой линией, но достаточным перекрытием, чтобы адекватное количество ключевых точек SURF (~ 308) совпадало правильно (я их рисую).

Теперь кроется проблема. Я передаю 2D точки cv :: findFindamentalMat, но получаю совершенно необоснованные результаты. Функция возвращает:

     FundMat=[2.05148e-13    3.72341 -2.03671e+10
              1.6701e+26    -4.17712  4.59533e+29
              3.32414e+18    2.8843   1.91069e-26]

Чтобы обойти большой динамический диапазон матрицы, Хартли предложил нормализовать точки данных (в евклидовом пространстве, а не в нормализации проекционного пространства) .... Даже после этого результат практически одинаков. (От 10 ^ -9 до 10 ^ 9)

Я понимаю, что FundMat точен только в масштабе, но разница от 10 ^ -9 до 10 ^ + 9 слишком велика.

Я ссылался на другие вопросы здесь, но, похоже, я не получил никаких указаний: findfundamentalmatrix-doesnt-find-фундаментальный-matrix как к рассчитаем самой фундаментальной матрицы-для-стерео видения

Любые идеи были бы великолепны. Это очень важный шаг при рассмотрении некалиброванных изображений для остальной части программного конвейера.

В случае, если код полезен. (это не отступ и не окрашен, хотя ... пространство здесь слишком меньше.) https://sites.google.com/site/3drecon124/

1 Ответ

0 голосов
/ 17 января 2012

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

...