Определить фигуры с помощью Open CV

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

Спасибо.

3 ответа

Вам нужно найти все контуры на изображении, а затем отфильтровать их.

Мы знаем, что знак плюс имеет 12 углов. Таким образом, вам нужно отфильтровать все контуры, которые имеют 12 углов. Конечно, иногда это может дать вам некоторые нежелательные объекты. Таким образом, вы можете снова отфильтровать те контуры, которые имеют углы между 2 линиями (3 углами), например, до 0.3 cos.

Взгляните на squares.cpp в каталоге с примерами OpenCV. Находит все контуры с 4 углами и углами макс. 0,3 cos. Так что почти все квадраты.

Вы также можете взглянуть на преобразование Хафа.

Один из способов обнаружения фигур - использовать cvBlobsLib.

Библиотека для выполнения бинарных изображений, связанных с маркировкой компонентов (аналогично функции regionprops Matlab). Он также предоставляет функции для манипулирования, фильтрации и извлечения результатов из извлеченных BLOB-объектов, см. Раздел "Функции" для получения дополнительной информации.

Для примера, смотрите: https://www.youtube.com/watch?v=Y8Azb_upcIQ

Альтернативой является использование EmguCV

Emgu CV - это кроссплатформенная оболочка.Net для библиотеки обработки изображений OpenCV. Возможность вызова функций OpenCV из.NET-совместимых языков, таких как C#, VB, VC++, IronPython и т. Д. Оболочка может быть скомпилирована в Mono и работать на устройствах Windows, Linux, Mac OS X, iPhone, iPad и Android.

Другие вопросы по тегам