Как рассчитать фокусное расстояние в мм по результату калибровки камеры?

#opencv #camera-calibration

#opencv #камера-калибровка

Вопрос:

Фокусное расстояние в результате калибровки камеры указано в пикселях, но мне нужно значение в мм.Как рассчитать?

Я использовал OpenCV для калибровки камеры и получил матрицу внутренних параметров.Я также получаю размер датчика камеры в сообществе logitech.

 the camera matrix is
[1432.379199223981, 0, 949.4032591833937;
 0, 1432.97806149025, 518.5291260500587;
 0, 0, 1]
and the size of sensor is 6.00mm, width of 4.80mm and height of 3.60mm (16:9 format).
  

Я хочу получить фокусное расстояние в мм, как рассчитать?

Ответ №1:

Это просто пропорция:

sensor_width_mm: ширина сенсора в пикселях = focal_length_mm: focal_length_pixels

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