2012-01-12 15 views
2

私はOpenCVが新しく、回路図のような図面からコンポーネントを検索するための最良の方法が何かを考え出すことを試みています。コンポーネントは常に白い背景で黒ですが、コンポーネントは回転および拡大縮小できます。OpenCV:黒い白い画像から簡単な電子部品を検出する

コンポーネントを使用した簡単な図の例。ダイアグラムはこれよりも常に優れた解決方法を持っています。

enter image description here

私はすべてのコンポーネントのハールの訓練を行うべきでしょうか?またはテンプレートマッチング?

ありがとうございました!あなたは多くのテンプレートを作ることを計画しない限り、あなたはおそらく

部品が回転して

テンプレートマッチングを拡大縮小することができますので、この文のテンプレートマッチングを使用して除外することができます

答えて

5

は、これらの状況の下でうまく動作しません。 (すなわち、多くの回転とスケール)を各コンポーネントタイプごとに定義します。

ハールカスケードは機能するかもしれませんが、少なくとも顔検出では、+/- 20度程度の回転量でいくらか制限されています。しかし、これは主に使用されたトレーニングセットによるものだと思います。 Haarカスケードは、正と負の両方のセットのトレーニング画像をたくさん(数千ものもので)必要とします。したがって、データ収集にはしばらく時間がかかることがあります。

サンプルはsquares.cppで始まり、基本的な形状検出のためにダイアグラム上の矩形ブロックを検出する方法を参照してください。次に、四角形の検出に喜んで三角形などを検出するように拡張する場合

次に、機能ベースのアプローチ(SURF、SIFT、MSERなど)があります。役に立つ

matcher_simple.cpp
​​
descriptor_extractor_matcher.cpp
bagofwords_classification.cpp

希望:あなたは役に立つこれらのサンプルのいくつかを見つけることができます!

関連する問題