我是 OpenCV 的新手,并试图找出从电路图等图纸中搜索组件的最佳方法。组件始终为黑色,背景为白色,但组件可以旋转和缩放。
带有组件的简单图表示例。图表总是比这更好的分辨率。
我应该对每个组件进行 Haar 培训吗?还是模板匹配?
谢谢!
我是 OpenCV 的新手,并试图找出从电路图等图纸中搜索组件的最佳方法。组件始终为黑色,背景为白色,但组件可以旋转和缩放。
带有组件的简单图表示例。图表总是比这更好的分辨率。
我应该对每个组件进行 Haar 培训吗?还是模板匹配?
谢谢!
由于此语句,您可能可以排除使用模板匹配
组件可以旋转和缩放
除非您计划为每种组件类型制作许多模板(即,大量旋转和缩放),否则模板匹配在这些情况下将无法正常工作。
Haar 级联可能会起作用,但至少对于面部检测来说,它可以处理 +/- 20 度左右的旋转量在一定程度上受到限制。虽然,我认为这主要是由于使用的训练集。Haar 级联需要大量(数千个才能得到一个好的)训练图像,包括正集和负集。因此,数据收集可能需要一段时间。
您可以从squares.cpp示例开始,看看它如何用于检测图表上的矩形块以进行基本形状检测。然后,如果您对方形检测感到满意,请扩展它以检测三角形等。
然后是基于特征的方法(SURF、SIFT、MSER 等)。您可能会发现其中一些示例很有帮助:
matcher_simple.cpp
matching_to_many_images.cpp
描述符
_extractor_matcher.cpp bagofwords_classification.cpp
希望这有帮助!