c ++ получить положение камеры в мировых координатах (opencv) - PullRequest
0 голосов
/ 23 февраля 2012

Хорошо, решил. Сначала я собираюсь использовать инструмент Matlab и шахматную доску, чтобы получить внутренние параметры. И я буду использовать cv :: solvePnP ()

Да, я использовал поиск, но, к сожалению, он мне не очень помог.

Как видно из названия, мне нужно найти координаты камеры в реальном мире. Но я также сталкиваюсь с некоторыми проблемами, связанными с командами opencv. До сих пор я знаю некоторые точки на изображении и соответствующие Мировые координаты. (в худшем случае известно 6 баллов)

Чтобы получить координаты камеры, я подумал о формуле:

transp (x, y, z) = - transp (R) * t, где R и t - внешние параметры

так что теперь моя проблема: как рассчитать R и т? Я имею в виду, существует ли функция opencv, которая решает эту проблему? Потому что на самом деле есть много функций калибровки камеры. Или я должен сначала рассчитать внутренние параметры?

edit: вот функция, которую я имел в виду: http://opencv.willowgarage.com/documentation/python/calib3d_camera_calibration_and_3d_reconstruction.html#calibratecamera2

но я не знаю, как должны выглядеть параметры. Как я могу инициализировать вручную, например, Матрица 3x6 как cv :: Mat ([[x1] [y1] [z1]] .... [[x6] [y6] [z6]])

1 Ответ

0 голосов
/ 24 февраля 2012

Матрицы R и T - это Вращение и Перевод между двумя видами камеры в стереосистеме

Предположительно, вы можете найти положение камеры относительно одной цели - если у вас есть откалиброванная камера и известная цель - но описание программного обеспечения нацелено на стереопару.

Глава 11 и 12 книги openCV дают хорошие описания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...