这个错误是因为在第29行使用了未声明的标识符”keypoints_1”。这可能是由于未包含正确的头文件或变量命名错误引起的。
请确保已包含所需的头文件,并检查变量命名是否正确。例如,您可以添加以下代码来包含所需的头文件:
#include <vector>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <chrono>
using namespace std;
using namespace cv;
int main(int argc, char **argv) {
if (argc != 3) {
cout << "usage: feature_extraction img1 img2" << endl;
return 1;
}
//-- 读取图像
Mat img_1 = imread("D:\\slambook2-master\\ch7\\1.png", cv::IMREAD_COLOR);
Mat img_2 = imread("D:\\slambook2-master\\ch7\\2.png", cv::IMREAD_COLOR);
assert(img_1.data != nullptr && img_2.data != nullptr);
//-- 初始化
std::vector<KeyPoint> keypoints_1, keypoints_2;
// rest of the code...
如果问题仍然存在,请检查是否正确配置了OpenCV库和相关依赖项。
内容由零声教学AI助手提供,问题来源于学员提问