Рассчитать оптимальное расстояние до камеры с фиксированным фокусным расстоянием - PullRequest
0 голосов
/ 10 февраля 2019

Я разрабатываю приложение iOS для обнаружения объектов с использованием OpenCV.
Для моей цели мне нужно установить фиксированное значение фокусного расстояния (чтобы автофокусировка была отключена).
Я хочу указать пользователюкак двигаться (вперед или назад), чтобы объект был точно в фокусе .

Я пытался использовать формулу working_distance = fovX_wanted * focalLength / sensorWidth (с focalLength, оцененным по процессу калибровки).Проблема в том, что эта формула дает представление о расстоянии для захвата ровно fovX_wanted (в мм) в горизонтальном измерении, но она не учитывает объект внутри этого «поля зрения».

Итак, в этот момент у меня есть эта функция:


+ (float) calculateOptimalDistance:(float)focalLength fovX:  (float)fieldOfViewX sensorWidth:(float)sensorWidth
{
    return (fieldOfViewX * focalLength) / sensorWidth;
}

, но она возвращает другое, что мне нужно.

Мне нужен способ получить оптимальное расстояние , чтобы получить идеальный фокус объекта, так что это отличается от того, что я получаю в данный момент, рабочее расстояние .Я знаю размер объекта, поле обзора (в измерении х), которое я хочу иметь на изображении, размер датчика (но это оценка, поэтому я предпочитаю его не использовать) и фокусное расстояние.Как можно идо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...