2013年2月12日火曜日

OpenCVの2次元特徴のtutorialを試してみた

特徴点の検出、特徴量の取得、対応点の発見のtutorialを試してみた

samples\cpp\tutorial_code\features2D SURF_Homography.cppを最初に試したが、2次元特徴のtutrialの一番最後にあたるものであった。

順番に試してみるなら下記の順番がよい

SURF_detector.cpp   SURFを用いた特徴点の検出

SURF_descriptor.cpp SURFを用いた特徴点の検出、見つけた点の特徴量を求め、BruteForceMatcherで対応する特徴点の発見と描画

SURF_FlannMatcher.cpp SURFを用いた特徴点の検出、見つけた点の特徴量を求め、FlannBasedMatcherで対応する特徴点の発見と描画

SURF_Homography.cpp SURFを用いた特徴点の検出、見つけた点の特徴量を求め、FlannBasedMatcherで対応する特徴点の発見と描画、2つの画像のHomographyを計算し、perspectiveTransformで、片方の画像での対応する面を描画

ためしに選んだ画像では、4つめのtutorialの結果がわかりづらいので、SURF_FlannMatcher.cppの結果の画像を示す。


左の画像は、ピントがすこしあまくボケているが、それでもいくつかの特徴点は、右の画像と正しく一致していることがわかる

なお、ソースでは、#include "opencv2/nonfree/features2d.cpp" となっているが
#include "opencv2/nonfree/nonfree.hpp" に変更している

また、読み込む専用のライブラリは、
#pragma comment(lib,"opencv_nonfree243d.lib")
#pragma comment(lib,"opencv_features2d243d.lib")
#pragma comment(lib,"opencv_flann243d.lib")

となる

0 件のコメント:

コメントを投稿