Виртуальная PTZ-камера через физическую камеру «рыбий глаз» и Open CV

Я пытаюсь реализовать виртуальную камеру Pan-Tilt-Zoom (PTZ), основанную на данных физической камеры «рыбий глаз» (угол обзора 180 градусов).

По моему мнению, я должен понять следующую последовательность.

  1. Получить координаты центра круга «рыбий глаз» в координатах матрицы датчика «рыбий глаз».
  2. Получить радиус круга рыбий глаз в той же системе координат.
  3. Создайте уравнение сферы, которое имеет тот же центр и радиус, что и плоское «рыбий глаз» на плоском сенсоре камеры.
  4. Спроецируйте все цветные точки от плоского изображения до верхней полусферы.
  5. Выберите углы в плоскости X Y и плоскости X Z, чтобы описать направление обзора виртуального PTZ.
  6. Выберите угол обзора и отметьте его кружком вокруг виртуального вектора обзора PTZ, который будет рисоваться на поверхности полусферы.
  7. Сгенерируйте уравнение плоскости, пересечение которого с полушарием будет кругом вокруг направления обзора.
  8. Переместите все цветные точки из круга в плоскость круга вокруг направления обзора, используя направление от края полушария к центру полушария для проекции.
  9. Нарисуйте все неокрашенные точки внутри круга проекции, используя интерполяцию (реализовано в cv :: remap).

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

Мой вопрос:
Будет ли правильным просто установить Z-координату для всех цветных точек плоского изображения в соответствии с уравнением полушария, чтобы поднять точки от плоскости изображения к поверхности полушария?

Исходное изображение с камеры «рыбий глаз»

введите описание изображения здесь

рыбий глаз изображение после проекции на полушарие

Виртуальный PTZ с координатами

Плоскость проекции и угол обзора виртуальной PTZ

Желаемый результат

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]