OpenCV:从黑白图像中检测简单的电子元件

iir*_*iro 2 opencv object-detection

我是OpenCV的新手,并试图找出从电路图等图纸中搜索元件的最佳方法.组件始终为黑色,背景为白色,但组件可以旋转和缩放.

带组件的简单图示例.图表总是比这更好的分辨率.

在此输入图像描述

我应该为每个组件进行Haar培训吗?还是模板匹配?

谢谢!

mev*_*ron 7

由于此声明,您可能可以排除使用模板匹配

组件可以旋转和缩放

除非您计划为每种组件类型制作许多模板(即大量旋转和比例),否则模板匹配在这些情况下将无法正常工作.

Haar级联可能会起作用,但至少在面部检测时,它可以处理+/- 20度左右的旋转量有些限制.虽然,我认为这主要是由于使用了训练集.哈尔级联需要很多(成千上万才能获得一个好的)训练图像正面和负面集.因此,数据收集可能需要一段时间.

您可以从squares.cpp示例开始,看看它如何用于检测图表上的矩形块以进行基本形状检测.然后,如果您对方形检测感到满意,请将其扩展为检测三角形等.

然后是基于特征的方法(SURF,SIFT,MSER等......).您可能会发现其中一些示例有用:

matcher_simple.cpp
matching_to_many_images.cpp
descriptor_extractor_matcher.cpp
bagofwords_classification.cpp

希望有所帮助!