問題タブ [matchtemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
57 参照

python - Opencv matchTemplate が類似オブジェクトの検出に失敗する

OpenCV 4.5.4 を使用して、別の画像内の画像を見つけています。そしてそのための matchTemplate 関数。

タスクは、ロボットが自動生産のためにそれらをマガジンに分類するために、テーブルで「チップ」を見つけることです。テーブルには 1 種類の「チップ」しかありませんが、その半分程度が裏返されているため、ロボットはそれらを 2 つのマガジンに仕分けし、次の生産ステップのために 1 つを裏返します。チップは多く重複するため、1 つのステップですべてのチップを検出する必要はありません。ロボットは検出されたものを整理し、静止位置に戻って新しい写真を作成できます。

シーンの例: シーン

チップの黄金面については、非常にうまく機能しています

テンプレート: object_a

結果: result_obj_a_0_5

しかし、反対側にテンプレートを使用すると、正しい検出がほとんど得られず、一致するしきい値を下げると、オブジェクトの前に金属製のテーブルが誤って検出されます。

テンプレート: object_b

結果のしきい値 0.5: result_obj_b_0_5

結果のしきい値 0.4: result_obj_b_0_4

両方のテンプレートをシーン画像から切り取り、回転させて適切な検出ボックスを取得しました。

私のコード:

上記のコードは、問題を示すための実例です。重複検出をフィルタリングし、見つかったボックスの回転軸を表示するようにコードを改善しました。

洗練された結果の

私は matchTemplate 関数にまったく慣れていないので、私の質問は、検出率を改善する方法があるということです。どんな助けにも感謝します。