我正在OpenCV中开发一个应用程序,在 Windows 上,以下代码有效,并且编译/工作:
/* 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);
但是,当我切换到 Mac 或 Linux 框时,我收到错误消息,说明参数没有函数原型(因为函数原型需要cv::Mat
取代std::vector< cv::Point2f >
)
所以我的问题是,我应该如何/应该从std::vector < cv::Point2f >
投射到cv::Mat
或者我应该怎么做呢?
答案 0 :(得分:5)
您似乎在Linux上有旧版本的OpenCV。我认为使用向量作为openCV函数输入的可能性被添加到2.3版本中。
所以,快乐的更新!