OpenCV: обнаружение простых электронных компонентов на черно-белом изображении
Я новичок в OpenCV и пытаюсь выяснить методы, которые были бы лучшим методом для поиска компонентов из чертежей, таких как принципиальные схемы. Компоненты всегда черные с белым фоном, но их можно поворачивать и масштабировать.
Пример простой диаграммы с компонентами. Диаграммы всегда имеют лучшее разрешение, чем это.
Должен ли я сделать обучение Haar для каждого компонента? Или соответствие шаблону?
Спасибо!
1 ответ:
Вы, вероятно, можете исключить использование сопоставления шаблонов из-за этого утверждения
Компоненты можно поворачивать и масштабировать
Сопоставление шаблонов не будет хорошо работать в этих условиях, если вы не планируете создавать много шаблонов (т. е. много поворотов и масштабов) для каждого типа компонентов.
Каскады Хаара могут работать, но, по крайней мере, с распознаванием лиц он несколько ограничен по количеству вращения, которое он может обрабатывать +/- 20 градусов или около того. Хотя, я думаю ... в основном это происходит из-за используемого тренировочного набора. Каскады Хаара требуют много (в тысячах, чтобы получить хороший) обучающих изображений как положительных, так и отрицательных наборов. Таким образом, сбор данных может занять некоторое время.Можно начать с квадратов .cpp пример и посмотрите, как это работает для обнаружения прямоугольных блоков на диаграмме для базового обнаружения формы. Затем, если вы довольны обнаружением квадрата, расширьте его, чтобы обнаружить треугольники и т. д.
Тогда существуют функции на основе подходы (SURF, SIFT, MSER и др...). Вы можете найти некоторые из этих примеров полезными:
Matcher_simple.cpp
matching_to_many_images.cpp
descriptor_extractor_matcher.cpp
bagofwords_classification.cppНадеюсь, что это полезно!