我是openCV的新手。我正在研究特征匹配。目前,我想使用 openCV 提取 ORB 特征。我搜索了如何在 openCV 上使用 ORB 功能的示例和指南。我尝试了一个非常简单的源代码来提取我在互联网上提到的 ORB 功能。但我不知道为什么它会抛出一个未处理的异常,并显示类似“motors.exe 中 0x1000AAD2 (Ldcnlib.dll) 的未处理异常:0xC0000005:访问冲突写入位置 0x00000025”的消息。这通常是一种记忆错误。但我找不到原因。谁能帮我找到解决此错误的解决方案?输入图像尺寸为 240x98。
源代码:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/features2d/features2d.hpp"
#include <vector>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
Mat img_1 = imread("008_1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
if (!img_1.data){
cout << "error"<< endl;
return -1;
}
// declare variables
OrbFeatureDetector detector;
vector<KeyPoint> kp1;
Mat desc1;
detector.detect(img_1,kp1);
// to do more
waitKey(0); // Wait for a keystroke in the window
return 0;
}