2013年2月9日土曜日

OpenCVでbrief_match_testを試してみた

sample\cpp\brief_match_test.cppを試したみた。
このサンプルでは、2枚の画像の特徴点を用いて、斜影変換行列のパラメータが取得できる

特徴点は、FastFeatureDetectorで検出し、各特長点の特徴量をBriefDescriptorExtractorを使用して得ている

BFMatcherをNORM_HAMMINGで(注意 NORM_HAMMING should be used with ORB and BRIEF対応付けを行い、matches2pointsのモジュールで座標をリストとして得る

次に、得た座標をfindHomographyに与えて、cv::Mat Hに変換用のパラメータを取得する

ただし、サンプルでは
  Mat H = findHomography(mpts_2, mpts_1, RANSAC, 1, outlier_mask);
のところで落ちてしまうので、

 vector<char> outlier_mask;

 Mat outlier_mask;

のように修正すると問題なく処理される

求めた、homographyを使用し、
warpPerspective(im2, warped, H, im1.size());

でwarpedに斜影変換した画像を得ることができる。

 
 


detectorのパラメータが50だと検出される点が多くなるので、
  FastFeatureDetector detector(100);

値を大きくすることで、数を減らすことができるが、得られたhomographyの値がおかしくなるので、使用するパラメータは、試行錯誤が必要と思われる

0 件のコメント:

コメントを投稿