Расстояние до объекта Веб-камера C920HD или используйте OpenCV calibrate.py - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь определить расстояние до объекта и высоту объекта по направлению к моей камере.Возможно ли это или мне нужно использовать OpenCV calibrate.py для сбора дополнительной информации?Я в замешательстве, потому что Logitech C920HD имеет 3 Мп и масштабируется до 15 МБ с помощью программного обеспечения.

У меня есть следующая информация:

  • Разрешение (в пикселях): 1920x1080
  • Фокусное расстояние (мм): 3,67 мм
  • Размер пикселя (мкм): 3,98
  • Размер датчика (в дюймах): 1 / 2,88
  • Объект реальныйвысота (мм): 180
  • Высота изображения объекта (px): 370

Я проверил эту формулу: Distance

distance (mm) = 3.67(mm) * 180(mm) * 1080(px) / 511 (px) * (1/2.88)(inches)*2.54 (mm/inches)

Что дает мне 15,8 см.Хотя это должно быть около 60 см.

Что я делаю не так?

Спасибо за помощь!

1 Ответ

0 голосов
/ 01 июня 2018

Ваша формула выглядит правильной, однако, чтобы она сохранялась по всей плоскости изображения, сначала следует исправить искажения объектива, например, следуя ответу

Калибровка камеры, обратная проекция пикселяв направлении

По пути модуль калибровки объектива OpenCV оценит ваше истинное фокусное расстояние.

Заполнение формулы дает

Distance = 3.67 mm * 180 mm * 1080/511 / sensor_height_mm = 1396 mm^2 / sensor_height_mm

Оставив sensor_height_mm неизвестно,Учитывая, что ваша камера имеет формат 16: 9

w^2 + h^2 = D^2
(16x)^2+(9x)^2 = D^2
<=>
x = sqrt( D^2/337 )
<=>
h = 9x = 9*sqrt( D^2/337 )

Помните Правило 16 :

https://photo.stackexchange.com/questions/24952/why-is-a-1-sensor-actually-13-2-%C3%97-8-8mm/24954

Наиболее важно, 1 /2,88 "сенсор имеет диаметр круга изображения 16 / 2,88 мм вместо 25,4 / 2,88 мм. Достаточно забавно, что истинный диаметр круга изображения является метрическим. Таким образом, диаметр датчика составляет

D = 16 mm/ 2.88 = 5.556 mm

и

sensor_height_mm = h = 2.72 mm

давая

Distance = 513 mm

Обратите внимание, что это расстояние измеряется относительно первой главной точки объектива, а не положения датчика или положения переднего элемента объектива.

По мере исправленияискажение барреля, показания должны стать более точными. Это довольно много для этой камеры. У меня есть подобное.

Надеюсь, что это помогает.

...