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