OpenCvのminMaxLoc関数に関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
なり

OpenCvのminMaxLoc関数に関して

#1

投稿記事 by なり » 14年前

Windows7
OpenCv2.2
Vc2008

OpenCvを使用してテンプレートマッチングを行っています。↓
http://opencv.jp/sample/matching.html

マッチング率を出したいのでminMaxLoc関数を使用して
&max_valを取得しています。
max_val → マッチングした位置での最大値(最大値1で完全一致)

この値がなんともよくわからないのですが、マッチングを行った場合、
入力画像にテンプレート画像が存在する場合、1に近い値が出るのですが。
入力画像にテンプレート画像が全く存在しない場合でも0.95あたりの高い数値がでてしまいます。
期待している数値はもっと低い数値なのですが、この辺の切り分けは難しいのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: OpenCvのminMaxLoc関数に関して

#2

投稿記事 by h2so5 » 14年前

なり さんが書きました: 入力画像にテンプレート画像が全く存在しない場合でも0.95あたりの高い数値がでてしまいます。
期待している数値はもっと低い数値なのですが、この辺の切り分けは難しいのでしょうか?
人間の目には全く違うように見えてもアルゴリズムによっては高い数値が出ることは十分考えられますが、
これだけの情報では何とも言えませんね。

どのような画像の比較なのでしょうか?

なり

Re: OpenCvのminMaxLoc関数に関して

#3

投稿記事 by なり » 14年前

入力画像は絵とかではなく、リアル画像です。
テンプレート画像は何でもいいですが、例えばマウスなどとします。

このマウスがカメラに入っているときに判定をしているのですが、max_valがマウスが無い時でも高い数値がでます。(マウスがある場合はそれよりさらに高い数値でちゃんと空き缶の場所を認識する)

ということです。
なにもないのに変な場所を認識して、その場所の数値が0.95ぐらい出てしまうとmax_valでは比較をとるのがかなりシビアだなと思いました。

なり

Re: OpenCvのminMaxLoc関数に関して

#4

投稿記事 by なり » 14年前

すいません、自己解決です。
一致検出時のパラメータをCV_TM_CCORR_NORMEDからCV_TM_CCOEFF_NORMEDに変更したら思い通りの結果を得ることができました。

閉鎖

“C言語何でも質問掲示板” へ戻る