# Измерение размера объектов с помощью OpenCV ### Вычисляет размер объектов на основе заданного эталонного объекта Классный оценщик размера объекта с помощью только OpenCV и python Выражаю благодарность Адриану Роузброку (из [pyimagesearch](https://www.pyimagesearch.com /)) за создание отличных руководств. Этот проект вдохновлен его блогом: [Измерение размера объектов на изображении с помощью OpenCV](https://www.pyimagesearch.com/2016/03/28/measuring-size-of-objects-in-an-image-with-opencv/). Я включил код автора и тот, который я написал сам. ## ** Ключевые моменты** 1. Необходимые шаги: 1. Найдите контуры на изображении. 2. Получите прямоугольник минимальной площади для контуров. 3. Нарисуйте средние точки и линии, соединяющие средние точки ограничивающего прямоугольника контуров. 4. Выделите опорный объект из контуров и вычислите соотношение **Пиксель на метрику**. 5. Вычислите и распечатайте размеры ограничивающего прямоугольника на основе размеров эталонного объекта. 2. Допущения: 1. На изображении есть эталонный объект, который легко найти, и его ширина / высота нам известна. 3. Использует соотношение "Пиксель на метрику" для вычисления размера на основе данного эталонного объекта. 4. Свойства ссылочного объекта: 1. Мы должны знать размеры этого объекта (в пересчете на ширину или высоту). 2. Мы должны быть в состоянии легко найти этот эталонный объект на изображении, либо основываясь на размещении объекта (например, в верхнем левом углу и т.д.), либо по внешнему виду (например, отличительному цвету и / или форме). 5. Использовал квартал Соединенных Штатов в качестве эталонного объекта. 6. Использовал метод поиска контуров в OpenCV, чтобы найти объекты на изображении и вычислить их размеры. ## ** Требования: (с версиями, на которых я тестировал)** 1. python (3.7.3) 2. opencv (4.1.0) 3. numpy (1.61.4) 4. imutils (0.5.2) ## **Команды для запуска обнаружения:** ``` питон object_size.py --изображение images/example_01.png --ширина 0.955 ``` ## **Результаты:** Результаты довольно приличные, хотя и не идеальные. Это связано с ограничениями самого изображения, поскольку на нем не идеальный вид объектов сверху вниз, и некоторые калибровки также могли быть выполнены в камере перед щелчком по изображению. ![Gif 1 размеров объекта](example_01.gif ) ![Gif 2 размеров объекта](example_02.gif ) ## ** Ограничения** 1. Для получения точных результатов этот метод требует, чтобы изображение объектов было почти идеальным при просмотре сверху вниз. В противном случае размеры объектов на изображении могут быть искажены. 2. Фотографии подвержены радиальному и тангенциальному искажению объектива, что может привести к неравномерным размерам объекта.