このサンプルでは、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 件のコメント:
コメントを投稿