プロが教える店舗&オフィスのセキュリティ対策術

OpenCVでテンプレートマッチング(http://opencv.jp/sample/matching.html)するには、
 (1)cvMatchTemplate (src_img, tmp_img, dst_img, CV_TM_CCOEFF_NORMED);
 (2) cvMinMaxLoc (dst_img, &min_val, &max_val, &min_loc, &max_loc, NULL);
の2種類を用いていますが、
マッチング部分の座標を取得して、表示するにはどうすればよいのでしょうか?

ご存知なら、どうか教えていただけないでしょうか。

A 回答 (1件)

座標については、その下の解説にちゃんと書いてますよね?


> 画像中の値の最大,最小値,およびその位置は,関数cvMinMaxLoc()によって取り出す.
> CV_TM_CCOEFF_NORMEDを指定した場合には,最大値の座標がマッチング位置になる.
> また,CV_TM_SQDIFF(SSDとも呼ばれる),CV_TM_SQDIFF_NORMEDを指定した場 合には,最小値の座標がマッチング位置になる.

くわしくはcvMinMaxLocのマニュアルも参照。

表示はどんな方法使いたいか、わからないことには。

この回答への補足

コメントありがとうございます。
説明が不足しており、大変申し訳ありません。
実は、形状認識で目的の形状(矩形、球、その他複雑な形状など)を、テンプレートマッチングを用いてカメラ画像から取得することを考えています。
一致した場合に、一致した部分の座標値を全て一覧に表示するようにしたいのです。
なにせ、必ず目的の箇所を検出できるとは限らないので、必要なら自分で関数を改良することを考えております。

補足日時:2012/10/03 22:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!