2

您好我正在尝试实现快速特征检测器代码,在它的初始阶段我收到以下错误

(1) 没有重载函数“cv::FastFeatureDetector::detect”的实例与参数列表匹配

(2)“KeyPointsToPoints”未定义

请帮我。

#include <stdio.h>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/nonfree/nonfree.hpp"
using namespace cv;
int main()
{
  Mat img1 = imread("0000.jpg", 1);
  Mat img2 = imread("0001.jpg", 1);
 // Detect keypoints in the left and right images
FastFeatureDetector detector(50);
Vector<KeyPoint> left_keypoints,right_keypoints;
detector.detect(img1, left_keypoints);
detector.detect(img2, right_keypoints);
vector<Point2f>left_points;
KeyPointsToPoints(left_keypoints,left_points);
vector<Point2f>right_points(left_points.size());

 return 0;
 }
4

2 回答 2

7

问题出在这一行:

Vector<KeyPoint> left_keypoints,right_keypoints;

C++ 区分大小写,它认为这Vectorvector(它应该是什么)不同。为什么会Vector起作用超出了我的范围,我本来会更早地预料到一个错误。

cv::FastFeatureDetector::detect只知道如何使用vector,而不是 a Vector,因此请尝试修复此错误并重试。

此外,KeyPointsToPointsOpenCV 库中不存在(除非您自己编程),请确保您使用它KeyPoint::convert(const vector<KeyPoint>&, vector<Point2f>&)来进行转换。

于 2013-05-09T13:50:42.927 回答
0

给出的代码存在一些小问题。首先,您缺少using namespace std以您使用它们的方式使用向量所需的内容。您还缺少包含向量#include <vector>vector<KeyPoints>也应该有一个小写的 v。我也不确定 KeyPointsToPoints 是否是 OpenCV 的一部分。您可能必须自己实现此功能。我不确定,我只是以前没见过。

#include <stdio.h>
#include <vector>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/nonfree/nonfree.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat img1 = imread("0000.jpg", 1);
Mat img2 = imread("0001.jpg", 1);
// Detect keypoints in the left and right images
FastFeatureDetector detector(50);
vector<KeyPoint> left_keypoints,right_keypoints;
detector.detect(img1, left_keypoints);
detector.detect(img2, right_keypoints);
vector<Point2f>left_points;

for (int i = 0; i < left_keypoints.size(); ++i) 
{
    left_points.push_back(left_keypoints.pt);
}
vector<Point2f>right_points(left_points.size());

return 0;
}

我没有测试上面的代码。在此处查看 OpenCV 文档

于 2013-05-09T13:54:59.390 回答