0

У меня есть кадр/изображение, которое было снято с помощью калиброванной камеры. Оба набора параметров камеры (встроенные и внешние) доступны. Мне было интересно, если я переверну раму как в горизонтальном, так и в вертикальном направлениях (эффективно поворачивая ее на 180 градусов), что мне нужно изменить в исходных параметрах камеры, чтобы получить правильные параметры для повернутого изображения?Параметры камеры с вращающейся рамкой

Любая помощь приветствуется. Спасибо ..

ответ

0

Линейные части параметров вашей камеры преобразуются в матрицу проекций. Конкатенация с преобразованием шкалы (-1, -1,1) даст вам представление-прогноз для новой ситуации (BTW, scale (-1, -1,1) == rotate (180 ° = pi, 0, 0,1)).

+0

Спасибо @datenwolf. Не могли бы вы немного рассказать о том, что вы подразумеваете под линейными частями параметров камеры? Вы имеете в виду внешние параметры матрицы 3x4 ** [R | т] **? Для внутренних параметров я не думаю, что для фокусного расстояния необходимы изменения. Но, возможно, изменение координат точки (c_x, c_y) может потребоваться, если оно не находится в центре плоскости изображения. Моя цель - получить новые внутренние и внешние матрицы параметров. Соответствующая матрица представлений проекции OpenGL не является тем, что я ищу. – informer2000

+0

@ informer2000: линейная часть - это все, что связано с камерой, которая не вносит нелинейных преобразований (то есть искажений объектива). В зависимости от модели вашей камеры как внешние, так и внутренние параметры могут быть полностью линейными, обычно всегда являются внешние параметры. Но если ваша модель камеры покрывает нелинейные искажения объектива во внутренней модели, то эта часть должна быть отделена от линейной части (которая в основном является только FOV). В случае, если вы используете базовую модель камеры обскуры, нет никаких нелинейных деталей вообще, и ваша матрица камеры будет ** P · [R | t] **. – datenwolf

+0

@ datenwold: Да, я использую модель камеры обскуры. В принципе матрица проекции ** P ** является результатом умножения матрицы внутренних параметров ** K ** на внешнюю матрицу ** [R | t] **. Итак, если я правильно понимаю, то, что мне нужно преобразовать, это внешняя матрица. Может ли это быть достигнуто путем умножения расширенной внешней матрицы (путем добавления [0 0 0 1] в качестве последней строки для получения матрицы 4x4) на ** I [-1 -1 1 1]^T **? – informer2000

Смежные вопросы