You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.4 KiB

Измерение размера объектов с помощью OpenCV

Вычисляет размер объектов на основе заданного эталонного объекта

Классный оценщик размера объекта с помощью только OpenCV и python

Выражаю благодарность Адриану Роузброку (из [pyimagesearch](https://www.pyimagesearch.com /)) за создание отличных руководств. Этот проект вдохновлен его блогом: Измерение размера объектов на изображении с помощью OpenCV. Я включил код автора и тот, который я написал сам.

** Ключевые моменты**

  1. Необходимые шаги:
  2. Найдите контуры на изображении.
  3. Получите прямоугольник минимальной площади для контуров.
  4. Нарисуйте средние точки и линии, соединяющие средние точки ограничивающего прямоугольника контуров.
  5. Выделите опорный объект из контуров и вычислите соотношение Пиксель на метрику.
  6. Вычислите и распечатайте размеры ограничивающего прямоугольника на основе размеров эталонного объекта.
  7. Допущения:
  8. На изображении есть эталонный объект, который легко найти, и его ширина / высота нам известна.
  9. Использует соотношение "Пиксель на метрику" для вычисления размера на основе данного эталонного объекта.
  10. Свойства ссылочного объекта:
  11. Мы должны знать размеры этого объекта (в пересчете на ширину или высоту).
  12. Мы должны быть в состоянии легко найти этот эталонный объект на изображении, либо основываясь на размещении объекта (например, в верхнем левом углу и т.д.), либо по внешнему виду (например, отличительному цвету и / или форме).
  13. Использовал квартал Соединенных Штатов в качестве эталонного объекта.
  14. Использовал метод поиска контуров в 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 размеров объекта Gif 2 размеров объекта

** Ограничения**

  1. Для получения точных результатов этот метод требует, чтобы изображение объектов было почти идеальным при просмотре сверху вниз. В противном случае размеры объектов на изображении могут быть искажены.
  2. Фотографии подвержены радиальному и тангенциальному искажению объектива, что может привести к неравномерным размерам объекта.