10

ドキュメントを読んでインターネット全体を検索した後でも、openCV からの matchTemplate 関数の出力を解釈する方法がわかりません。

私が理解していること:

result = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

写真のすべての部分に一致する値を持つ一種の行列が得られることを理解しています。このマトリックスの各要素によって、テンプレートとの類似性が決まります。

たとえば、一致する値が 0.7 未満のすべての場所を次のようにフィルタリングできます。

numpy.where(result >= 0.7)

私が理解していないのは、この情報が matchTemplate 関数から取得した出力にどのように格納されているか、および出力から一致の位置を抽出する方法です。

基本的に私がやりたいことは、いくつかのテンプレートを 1 つの画像に一致させ、どのテンプレートがどの場所に最もよく一致するかを判断することです (場所に適用されたすべてのテンプレートの最大の matchingValue があります)。

私の考えは、一致する値をすべてのテンプレートのマトリックスに抽出し、マトリックス (それらの要素) を互いに比較して最適な一致を見つけることです。

助けてくれてありがとう、私が間違っているところを修正してください、

こんにちはドン

4

3 に答える 3

0

次のコードを使用できます。

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)

cv2.TM_CCOEFF_NORMED を使用する場合、max_loc は img 内のテンプレートの場所になります。そして max_val は一致の相関になります

于 2016-10-17T21:41:00.993 に答える