2012年7月27日金曜日

OpenCV 2.4.2 サンプルのmatching_to_many_imagesを試してみた


samples\cppにあるmatching_to_many_imagesを試してみた

問い合わせ画像と、学習用画像との特徴点を比較する
結果は、一致点を線で結んだ画像が保存される

注:
デフォルトではバグがあり保存されないので、matching_to_many_imagesフォルダの下にresultsフォルダを事前に作成して置く必要がある


デフォルトでは
特徴点 SURF
特徴量 SURF
比較器 FlannBased
が使用される


プログラムの流れを簡単に示す

1 ファイルリストからファイル名を取得し、グレースケールで読み込みMatをコレクションに登録

2 detectKeypoints
 問い合わせ用の画像のSURF特徴点の取得
 学習用画像コレクションからSURF特徴点コレクションの取得

3 computeDescriptors
 問い合わせ用の画像のSURF特徴量の取得
 学習用画像コレクションからSURF特徴量コレクションの取得
 注 2.4から、コレクションも引数に取れるようになった

 発見された特徴量の数を表示

4 matchDescriptors
 比較器に学習用画像のSURF特徴量コレクションを登録
 学習
  BruteForceMatcherは、何もしない
  FlannBasedMatcherは、flann::Indexを学習する

 比較し、一致情報を取得

5 saveResultImages
 学習用画像indexと一致情報の画像indexを比較し、maskデータの作成
 学習用画像と、問い合わせ画像を合成し、一致点を描画
 ファイルに保存



以上

0 件のコメント:

コメントを投稿