Как OpenCV оценивает фокусное расстояние, используя точки объекта и изображения

#opencv #camera-calibration #homogenous-transformation

#opencv #камера-калибровка #однородное преобразование

Вопрос:

Я пытаюсь отобразить трехмерное изображение шахматной доски (включающее поворот, перевод), как инструмент для калибровки камеры matlab, используя OpenCV, OpenGL.

Чтобы сделать это, я изучаю калибровку камеры, однородность и т.д. Мой вопрос заключается в функции calibrateCamera (), интересно, как OpenCV вычисляет (оценивает) фокусное расстояние, используя только объектные точки угла шахматной доски (vec3), точки изображения (vec2).

пожалуйста, подскажите мне какое-либо уравнение или принцип..

извините за мой плохой английский, спасибо

Ответ №1:

Набор уравнений, который вы ищете, называется уравнениями коллинеарности. Они «связывают координаты в плоскости датчика (в двух измерениях) с координатами объекта (в трех измерениях). Уравнения исходят из центральной проекции точки объекта через оптический центр камеры на изображение в плоскости датчика «. (wikipedia.com )

Точную форму этих уравнений, используемых в OpenCV, можно найти здесь. Существуют разные типы моделей (например, модель с точечным отверстием, модель «рыбий глаз», моделирующая только радиальные искажения) для разных типов камер.