2011-11-10 36 views
5

私はOpenCVのでアプリケーションを開発しています、およびWindowsに次のコードは有効であり、および/作品コンパイル:CVにOpenCVのはstd ::ベクトル<CV :: Point2f>に::マット

/* Calculate the transformation points */ 
std::vector<cv::Point2f> img1; 
std::vector<cv::Point2f> img2; 
for(int i = 0; i < good_matches.size(); i++) { 
    img1.push_back(keypoints_imageOne[ good_matches[i].queryIdx ].pt); 
    img2.push_back(keypoints_imageTwo[ good_matches[i].trainIdx ].pt); 
} 

/* Generate the homogonous matrix from the transformation points */ 
cv::Mat H = cv::findHomography(img1, img2, CV_RANSAC); 

私は私のマックまたはのLinuxボックスのいずれかに切り替えたときしかし、私は(関数プロトタイプがstd::vector<cv::Point2f>の代わりにcv::Matを必要とする)

ので、引数には関数プロトタイプが存在しないというエラーを取得する私の質問は、std::vector <cv::Point2f>からcv::Matにキャストするにはどうすればよいですか、そうでなければどうすればいいですか?

答えて

5

LinuxにOpenCVの古いバージョンがあるようです。 openCV関数への入力としてベクトルを使用する可能性は、バージョン2.3に追加されていると私は思います。

だから、ハッピーアップデート!

+1

ありがとう、ちょうど更新され、Mat(img1)にキャストすると、更新前にエラーが取り除かれました。 :D – krslynx