Преобразование из пикселя в общую метрику (мм, дюйм)

Я использую openCV для обработки изображения и использую крутые кружки, чтобы обнаружить круги на тестируемом изображении, а также вычисляю расстояние между их центрами, используя евклидово расстояние. Так как это будет в пикселях, мне нужны абсолютные расстояния в мм или дюймах, может кто-нибудь дать мне знать, как это можно сделать

Заранее спасибо.

Всего 1 ответ


Процесс формирования изображения подразумевает получение 2D-проекции реального трехмерного мира через объектив. В этом процессе много информации теряется (например, третье измерение), и преобразование зависит от свойств линзы (например, фокусное расстояние).

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

Вы не предоставляете много информации о вашей настройке, но преобразование может быть измерено экспериментально. Вы просто делаете снимок объекта с известными размерами и определяете физический размер одного пикселя (например, если объект имеет размер 10x10 см, а на изображении он имеет размер 100x100 пикселей, то 10 пикселей равен 1 мм). Это сильно зависит от расстояния до камеры от объекта.

Более автоматизированный подход заключается в использовании определенного шаблона (например, шахматной доски) известных размеров. Это может быть автоматически обнаружено на изображении, и то же самое преобразование может быть выполнено.


Есть идеи?

10000