OpenCV: обнаружение простых электронных компонентов на черно-белом изображении


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

Пример простой диаграммы с компонентами. Диаграммы всегда имеют лучшее разрешение, чем это.

Введите описание изображения здесь

Должен ли я сделать обучение Haar для каждого компонента? Или соответствие шаблону?

Спасибо!

1 2

1 ответ:

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

Компоненты можно поворачивать и масштабировать

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

Каскады Хаара могут работать, но, по крайней мере, с распознаванием лиц он несколько ограничен по количеству вращения, которое он может обрабатывать +/- 20 градусов или около того. Хотя, я думаю ... в основном это происходит из-за используемого тренировочного набора. Каскады Хаара требуют много (в тысячах, чтобы получить хороший) обучающих изображений как положительных, так и отрицательных наборов. Таким образом, сбор данных может занять некоторое время.

Можно начать с квадратов .cpp пример и посмотрите, как это работает для обнаружения прямоугольных блоков на диаграмме для базового обнаружения формы. Затем, если вы довольны обнаружением квадрата, расширьте его, чтобы обнаружить треугольники и т. д.

Тогда существуют функции на основе подходы (SURF, SIFT, MSER и др...). Вы можете найти некоторые из этих примеров полезными:

Matcher_simple.cpp
matching_to_many_images.cpp
descriptor_extractor_matcher.cpp
bagofwords_classification.cpp

Надеюсь, что это полезно!