2016-07-08 10 views
1

Я использую приложение стерео калибровки и успешно выполнил калибровку стереокамеры с общей ошибкой повторного проецирования = 0,32 пикселя.Matlab: Stereo Calibartion App

Я хочу, чтобы найти положение и ориентацию камеры 2 в кадре камеры 1. Значения, которые я получаю в TranslationOfCamera2 не эквивалентны примесного зрения камеры-ориентированных показанной в приложении. С Неправильный переводOfCamera2, я не доверяю значениям RotationOfCamera2.

Вы можете проверить вид here камеры-ориентированных и значения для TranslationOfCamera2 и RotationOfCamera2here.

В соответствии с рисунком камера 2 находится в + Z направлении и + направлении Y относительно камеры 1. Но в TranslationOfCamera2 вектор, значения Y и Z отрицательные. Это та часть, которую я не понимаю.

Может ли кто-нибудь объяснить логику этих значений? В каких системах отсчета эти значения вычисляются? В документации указано, что это приложение дает положение и ориентацию камеры 2 относительно камеры 1. Но в моем случае, я думаю, это наоборот. Любая помощь приветствуется!

Спасибо заранее!

Приветствия

ответ

0

Ответ на первую часть вопроса

Перевод камеры 2 relativ к координатам камеры 2, а это означает, что, если бы вы добавить (так в основном вычитать, потому что они являются отрицательными) переводка камеры2 в координаты камеры 2, то она была бы в точке камеры одна. Похоже, это логично для меня.

Я знаю его не полный ответ на этот вопрос, но я надеюсь, что это помогает

+0

Спасибо за помощь. Мое сомнение заключается в том, что, поскольку координаты камеры 2 находятся в кадре камеры 1 (согласно документации), то не следует ли переводе соответствовать этому кадру? Это означает, что координаты Y и Z (камеры 2 в кадре камеры 1) должны быть положительными без добавления или вычитания чего-либо. – KamalDSOberoi

+0

разве это не так, так что в основном то, что вы ищете, это «минус translationofcamera2»? – KiW

+0

Я так не думаю, потому что в документации говорится, что в стереокамере калибровка считается, что эталонная рамка находится в оптическом центре камеры 1, и предполагается, что кадр не находится на камере 2. – KamalDSOberoi

0

Подумайте об этом так: RotationOfCamera2 и TranslationOfCamera2 являются extrinsics из камеры 2 по отношению к камере 1 координатной системе. Если у вас есть точка [X, Y, Z] в координатах камеры 1, ее проекцию в камеру 2 дается [X, Y, Z, 1] * [RotationOfCamera2; TranslationOfCamera2] * K, где K является внутренней матрицей камеры 2.

Что вы ищете расположение камеры 2 в камере 1 координата которая может быть вычислена следующим образом: -TranslationOfCamera2 * RotationOfCamera2'.

Это то, что вы видите в сюжете, ориентированном на камеру.

+0

Итак, вы имеете в виду, что я должен взять инверсию ** TranslationOfCamera2 ** и умножить на значение, полученное для ** RotationOfCamera2 ** (без его обратного)? – KamalDSOberoi

+0

@KamalDSOberoi, нет, вы должны взять инверсию 'RotationOfCamera2'. Для этого и предназначен апостроф. Это матрица вращения, поэтому ее транспонирование является ее обратной. – Dima