2

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

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

在此处输入图像描述

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

谢谢!

4

1 回答 1

7

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

组件可以旋转和缩放

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

Haar 级联可能会起作用,但至少对于面部检测来说,它可以处理 +/- 20 度左右的旋转量在一定程度上受到限制。虽然,我认为这主要是由于使用的训练集。Haar 级联需要大量(数千个才能得到一个好的)训练图像,包括正集和负集。因此,数据收集可能需要一段时间。

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

然后是基于特征的方法(SURF、SIFT、MSER 等)。您可能会发现其中一些示例很有帮助:

matcher_simple.cpp
matching_to_many_images.cpp
描述符
_extractor_matcher.cpp bagofwords_classification.cpp

希望这有帮助!

于 2012-01-12T14:51:15.833 回答