Расстояние от объекта до камеры, используя opencv

Я хочу оценить расстояние от объекта до моей камеры. Это должно быть с использованием Opencv.
Я прочитал, что мне нужно использовать две камеры вместо одной, и я нашел код с Matlab, но у меня нет никакого опыта в этом.
Любая помощь будет оценена.

3

Решение

Да, определенно возможно рассчитать глубину на двух камерах, используя простую модель камеры-обскуры:

depth = bcm*fcm/(sensorWidthCm*disparity/(float)horizontalResolution);

Здесь, чтобы найти среднее несоответствие (горизонтальное различие пикселей в точках), вы можете использовать SurfDescriptorExtractor и чтобы найти пары совпадений, вы можете использовать BFMatcher как в ссылке:
http://docs.opencv.org/doc/tutorials/features2d/feature_description/feature_description.html

fcm, bcm, sensorWidthCm и horizontalResolution — все параметры камеры: fcm — фокусное расстояние камеры, bcm — расстояние между камерами, sensorWidthCm — ширина датчика камеры, а горизонтальное разрешение — номер пикселя в горизонтальном направлении. На самом деле вам не нужны все эти параметры отдельно. Вам просто нужно поэкспериментировать с известной глубиной, чтобы найти соотношение:bcm*fcm/sensorWidthCm Горизонтальное разрешение изображения уже известно во время захвата изображения.

3

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

  1. Можно ли измерить расстояние до объекта с помощью камеры?

  2. видеть это ответ:

    distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
    ---------------------------------------------------------------------------
    object height (pixels) * sensor height (mm)
    
1

Ты можешь использовать solvePnP Функция, если Вы знаете точные размеры объекта, и это легко обнаружить. Вам также нужно будет выполнить калибровку камеры, чтобы установить единицу измерения в координатах камеры.

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