問題タブ [template-matching]

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 投票する
2 に答える
15021 参照

opencv - サイズと応答は、SURFキーポイントで正確に何を表していますか?

キーポイントの検出と照合にOpenCV2.3を使用しています。しかし、私は検出アルゴリズムによって与えられたパラメータsizeとと少し混乱しています。responseそれらは正確にはどういう意味ですか?

OpenCVのマニュアルに基づいて、私はそれを理解することができません:

float size:意味のあるキーポイント近傍の直径

float response:最も強力なキーポイントが選択された応答。さらなるソートまたはサブサンプリングに使用できます

追跡するのに最適なポイントは、応答が最も高いポイントだと思いましたが、そうではないようです。では、サーフディテクタによって返されるキーポイントのセットをサブサンプリングして、追跡可能性の点で最良のものだけを維持するにはどうすればよいでしょうか。

0 投票する
3 に答える
47830 参照

c++ - スケールと回転 テンプレート マッチング

私はCV_TM_CCORR_NORMED2つの画像を比較するために一致テンプレートの方法を使用しています...この回転とスケールを不変にしたい..何かアイデアはありますか?

画像とテンプレートのフーリエ変換で同じ方法を使用しようとしましたが、それでも回転後の結果は異なります

0 投票する
1 に答える
3178 参照

android - OpenCV を使用したテンプレート マッチング

Android 携帯カメラで 1 つの画像を取得し、この画像から ROI を使用してテンプレートを定義し、連続する画像が取得されたら、テンプレート マッチングを実行してテンプレートの新しい場所を見つけようとしています。

問題は、テンプレート マッチングが実行されていないように見えることです。maxVal値は常に約 0.99 であり、テンプレートの元の場所 ( 、以下)maxLocとまったく同じです。XY

私は何を間違っていますか?

フレームを取得するときのコードは次のとおりです。

テンプレートを生成するコードは次のとおりです。

0 投票する
4 に答える
4276 参照

image-processing - opencvによる3Dテンプレートマッチング

3D マトリックス (非常に大きい、L と呼びましょう) と 3D の小さいマトリックス (非常に小さい、S と呼びましょう) があり、OpenCV を使用して L で最も近いパターンを見つけたいと考えています。

OpenCVは私のためにそれを行いますか? はいの場合、どのように使用すればよいですか?ありがとう。

0 投票する
1 に答える
1079 参照

c# - 個々の文字/グリフ(OCR)のテンプレートマッチングの実装

私は、ヘブライ文字を認識するC#OCRプログラム(私自身の学習目的のプロジェクトであり、商業品質のものは何もありません)に取り組んでいます。これを行うには、画像からグリフを分離してから、テンプレートマッチングメソッドを適用します。

私がいるところ

画像から個々のグリフを分離できるようになりました。各グリフは、ピクセルの2D配列で表されます。たとえば、「bet」という文字は次のようになります。

どこ "。" 空のスペースを表し、「*」は塗りつぶされたピクセルを表します。

これで、テンプレートマッチングアルゴリズムを適用して、この2Dピクセル配列が表すグリフを特定することになりました(この場合、「ベット」テンプレートと一致する必要があります)。

問題

優れたテンプレートマッチングアルゴリズムの簡単な説明を見つけるのに苦労していて(私が見つけたもののほとんどは論文またはコードライブラリへのリンクです)、誰かが私が勉強するかもしれないことを知っているかどうか疑問に思いました。

単にライブラリを使うのではなく、手作業でやりたいということを強調したいと思います。私は図書館がどのように問題を解決するかを研究したいと思っていますが、それが15億の異なる部分に分割されていない場合。:)

また、自分がやろうとしていることを実行するためのより良い方法があるかどうかも聞いてみたいと思います。

0 投票する
1 に答える
2357 参照

c++ - アルファ依存のテンプレート マッチング

CUDA / CUBLAS / CUFFT をサポートする OpenCV を使用して、グレースケールのスクリーンショットで非常に基本的なテンプレート マッチングを実行し、テキストを抽出しています。つまり、次のことを想定できます。

一致させようとしている未加工のスプライトの正確なサイズ、色、および回転を知っています。つまり、観察されたプログラムのレンダリング プロセスで使用されたテクスチャにアクセスできます。

ただし、スプライトは部分的に透明であるためcv::(gpu::)matchTemplate、透明領域の偏差が全体的な相関に悪影響を与えるため、通常のテンプレート マッチング (正規相互相関を使用) は適切に機能しません。

基本的に、これらの例は、私が達成しようとしていることを非常によく要約しています:

照合するテンプレートとそのアルファ マスクを指定すると、次のようになります。

一致するスプライト テンプレート。テンプレート アルファ マスク。

これらのような画像(任意の背景、透明な領域のランダムなもの、部分的に遮られたもの)で高からほぼ100%の一致が欲しい:

白い背景のスプライト。黒の背景にスプライト任意の背景 + 部分的に遮られた透明な領域。部分的に閉塞。

ただし、次のような画像は非常に低いパーセンテージしか得られません (間違った色、完全に黒): ここに画像の説明を入力ここに画像の説明を入力

現在、エッジ検出を使用してまともな一致 (キャニー + 相互相関) を取得していますが、ご覧のとおり、背景によっては、画像にエッジが存在する場合と存在しない場合があり、信頼性の低い結果が生成され、一般的に非常に一致します。エッジの効いた」エリア。

紙の上では問題なく動作しますが、良好なパフォーマンスで実装することはほぼ不可能です。プログラムの速度に追いつくために、複数のスプライト (~10) をほぼリアルタイム (~10 FPS) で一致させる必要があるためです。

私はここでアイデアを使い果たしています。これに対する標準的なアプローチはありますか?アイデアや提案はありますか?

0 投票する
1 に答える
3072 参照

opencv - OpenCVで既知のオブジェクトを検出する方法は?

ウィンドウにリアルタイムで図形を描画しようとしています。形は、もつれ、長方形、円、半円、円、および画面の「Z」のようなもので、黄色を使用しています。サイズや形は元の画像と同じではない場合があります。しかし、プログラムは元の形状をすべて知っています。それらは事前定義されているためです。正しい形状を特定する方法を知りたいです。例として、

ここに画像の説明を入力

これを行う方法はありますか?これにテンプレート マッチングを使用できますか? これで私を助けてください..

0 投票する
2 に答える
3948 参照

python - 行列乗算を使用したnumpyテンプレートマッチング

テンプレートを画像に沿ってシフトすることにより、テンプレートをバイナリ画像 (白黒のみ) と一致させようとしています。テンプレートと画像の間の最小距離を、この最小距離が発生した対応する位置とともに返します。例えば:

画像:

テンプレート:

このテンプレートは、位置 (1,1) で画像に最もよく一致し、距離は 0 になります。これまでのところ、それほど難しくはなく、トリックを実行するコードを既に取得しています。

しかし、必要なサイズの画像 (500 x 200 ピクセルの画像と 250 x 100 のテンプレート) の場合、これにはすでに約 4.5 秒かかり、遅すぎます。そして、行列の乗算を使用して同じことをより迅速に実行できることを知っています(matlabでは、im2colとrepmatを使用してこれを実行できると信じています)。python/numpyでそれを行う方法を誰かに説明してもらえますか?

ところで。必要なことを正確に行うopencv matchTemplate関数があることは知っていますが、後でコードを変更する必要があるかもしれないので、完全に理解して変更できるソリューションを好むでしょう。

ありがとう!

編集:opencvがこれを0.2秒未満で行う方法を誰かが説明できれば、それも素晴らしいでしょう。ソース コードをざっと見てみましたが、これらのことは常に非常に複雑に見えます。

edit2: Cython コード

0 投票する
1 に答える
886 参照

java - テンプレート マッチングによる Java の範囲外

私は最近、テンプレート マッチングに興味を持っています。OpenCV のようなライブラリが存在することは知っていますが、追加のライブラリやソフトウェアのインストールなどを必要とせずに、BufferedImage の検索でテンプレートを見つけることができるすべてのポイントを見つける単純な関数を作成したかったのです。

いくつかのコードを含む wiki の記事を見つけました。

http://en.wikipedia.org/wiki/Template_matching

それは私が必要とすることを正確に行うように見えるので、これをJavaに移植しましたが、代わりにグレースケールではなく、色を使用するように少し変更しました. 純白のテンプレート画像 (30x30) と検索画像 (508x307) を使用してテストすると、これも純白ですが、一部の領域に赤い四角形があり、コードはしばらくの間コンソールに正しく出力されているように見えますが、その後エラーが発生します:

これがグレースケールではないという事実によるものなのか、それとも Java がループ量に追加の調整を必要とするのかはわかりませんが、これを正しく機能させるための助けをいただければ幸いです。

私がテストする画像:

Template.png (白一色なのでページ上では見えません)

Template.png

検索.png

検索.png