2013-04-14 26 views

答えて

23

OpenCVには、オプションでRANSACを使用して2つの画像に関連するホモグラフィ行列を見つける関数cv::findHomographyがあります。この機能の例は、hereのアクションで確認できます。

具体的に興味のあるコードのセクションがある:あなたはその後、ホモグラフィ行列に応じた画像をワープする機能cv::perspectiveTransformを使用することができます

FlannBasedMatcher matcher; 
std::vector<DMatch> matches; 
matcher.match(descriptors_object, descriptors_scene, matches); 

for(int i = 0; i < good_matches.size(); i++) 
{ 
    //-- Get the keypoints from the good matches 
    obj.push_back(keypoints_object[ good_matches[i].queryIdx ].pt); 
    scene.push_back(keypoints_scene[ good_matches[i].trainIdx ].pt); 
} 

Mat H = findHomography(obj, scene, CV_RANSAC); 

CV_RANSAC以外のcv::findHomographyのその他のオプションは、すべての点を使用する0と、最小のメディアン方式を使用するCV_LMEDSです。詳細は、OpenCVカメラ校正のドキュメントhereを参照してください。

関連する問題