2013年1月18日金曜日

OpenCVのTemplate Matchingのチュートリアルをためしてみた


評価式や処理に関しては、英語だがここに詳しい説明がある。

ソースは、samples\cpp\tutorial_code\Histograms_MatchingのMatchTemplate_Demo.cppに含まれている。

cvsample用のテンプレートプロジェクトにそのままソースをコピーしてビルドを行った。
引数を与えるのがめんどくさいので、ソースのargv[1],argv[2]を画像ファイルへのパスに変更した。

対象の画像には、samplesにふくまれていたbaboon.jpg(argv[1])を使用し、WindowsのSnipping toolを使用して目の部分を切り出したものをテンプレートとしている(argv[2])。
マッチングのアルゴリズムは6種類準備されており、トラックバーを使用して方式を切り替えることができる。

0: SQDIFF
1: SQDIFF NORMED
2: TM CCORR
3: TM CCORR NORMED
4: TM COEFF
5: TM COEFF NORMED

matchTemplateの結果は、SQDIFF and SQDIFF_NORMEDの場合だけ、結果が小さいほうがより似ているものとなる。



自分の画像から切り出した画像をテンプレートに使用しているので、問題ないかと思ったが、2のTM CCORRは、まったく異なる場所がベストの結果となった。



古典的手法なのであまり使う機会がないと思われる。また、使用した環境では、トラックバーの文字が正しく表示されないことに気づいた。

0 件のコメント:

コメントを投稿