FlannBasedMatcher 特征点快速匹配出错

最近在做一个水岸线检测的程序,根据原图以及翻转图的特征点匹配并通过公式计算水岸线位置。
但在做特征点匹配时一直出错,出错如下图,有没有大佬提供一下解决方法?
图片说明

实在运行不起来,之前的ptr列表都没有,很多变量也没做声明,您这么问还是另请高明,我是解决不了

跑一下这段代码试试

#include "highgui/highgui.hpp"

#include "opencv2/nonfree/nonfree.hpp"

#include "opencv2/legacy/legacy.hpp"

#include

using namespace cv;
using namespace std;

int main()
{
Mat image01 = imread("1.jpg", 1);

Mat image02 = imread("2.jpg", 1);

namedWindow("p2", 0);
namedWindow("p1", 0);
imshow("p2", image01);
imshow("p1", image02);

//灰度图转换  
Mat image1, image2;
cvtColor(image01, image1, CV_RGB2GRAY);
cvtColor(image02, image2, CV_RGB2GRAY);


//提取特征点    
SiftFeatureDetector siftDetector(2000);  // 海塞矩阵阈值,在这里调整精度,值越大点越少,越精准 
vector<KeyPoint> keyPoint1, keyPoint2;
siftDetector.detect(image1, keyPoint1);
siftDetector.detect(image2, keyPoint2);

//特征点描述,为下边的特征点匹配做准备    
SiftDescriptorExtractor SiftDescriptor;
Mat imageDesc1, imageDesc2;
SiftDescriptor.compute(image1, keyPoint1, imageDesc1);
SiftDescriptor.compute(image2, keyPoint2, imageDesc2);

//获得匹配特征点,并提取最优配对     
FlannBasedMatcher matcher;
vector<DMatch> matchePoints;

matcher.match(imageDesc1, imageDesc2, matchePoints, Mat());
cout << "total match points: " << matchePoints.size() << endl;


Mat img_match;
drawMatches(image01, keyPoint1, image02, keyPoint2, matchePoints, img_match);

imshow("match",img_match);
imwrite("match.jpg", img_match);

waitKey();
return 0;

}

代码我带过来了...
Mat LRGBR;
cvtColor(rectifyImageL, LRGBR, CV_GRAY2BGR);
Mat LDesc,LFDesc;
flip(LRGBI, LF, 0);
Ptr akaze = AKAZE::create();
vector keyPoint1, keyPoint2;
akaze->detectAndCompute(LRGBI, noArray(), keyPoint1, LDesc);
akaze->detectAndCompute(LF, noArray(), keyPoint2, LFDesc);
FlannBasedMatcher matcher;
vector FlannMatches;
Ptr FlannMatcher = FlannBasedMatcher::create();
FlannMatcher->match(LDesc, LFDesc, FlannMatches);
cout << "total match points: " << FlannMatches.size() << endl;
Mat img_match;
drawMatches(LRGBI, keyPoint1, LF, keyPoint2, FlannMatches, img_match);
namedWindow("match", 0);
imshow("match", img_match);
imwrite("match.jpg", img_match);
waitKey();
顺带一提..我要用的是纯opencv...就是不加附加库的...因为是3.4版本的,所以只有akaze算法能用...surf,sift之类的无法使用..请问能调试出来吗

好吧,不用了。。我找到另一种算法解决问题了。。