Opencv 为给定的点冲浪

Opencv 为给定的点冲浪,opencv,computer-vision,surf,Opencv,Computer Vision,Surf,我试图从图像B中的图像A中找到点[x,y](仅此点)。我根据自己的算法计算了[x,y]。现在我想在图B中找到点。我已经看到了,但是我不能修改它,所以它可以做我想要的。 还使用了以下代码: cv::initModule_nonfree(); cv::Mat image( 256, 256, CV_8UC1); cv::SurfDescriptorExtractor desc(400); vector<cv::KeyPoint> pnt; pnt.push_back(cv::KeyPo

我试图从图像B中的图像A中找到点
[x,y]
(仅此点)。我根据自己的算法计算了
[x,y]
。现在我想在图B中找到点。我已经看到了,但是我不能修改它,所以它可以做我想要的。 还使用了以下代码:

cv::initModule_nonfree(); 
cv::Mat image( 256, 256, CV_8UC1);
cv::SurfDescriptorExtractor desc(400);
vector<cv::KeyPoint> pnt;
pnt.push_back(cv::KeyPoint(x, y, 50));
cv::Mat descriptors_pnt;
desc.compute(image, pnt, descriptors_pnt);
cv::initModule_nonfree();
cv::Mat图像(256,256,cv_8UC1);
cv::SurfDescriptor描述(400);
向量pnt;
pnt.推回(cv::关键点(x,y,50));
cv::Mat描述符\u pnt;
描述计算(图像、pnt、描述符);
但它返回一个内存访问错误


现在我完全迷路了。我甚至不知道SURF是否适合我,或者我是否需要找到另一种算法来实现这一点

你们的图像真的有数据吗?不在那个代码里,这是我在网上找到的。没有变化。我尝试过很多方法,图像中充满了数据;)但仍然不起作用。我的问题是,如果SURF接受从给定的点匹配点,或者我必须使用另一种算法(我现在正在尝试SIFT),您是否可以尝试先使用检测器提取特征,如果可行,然后尝试不使用检测器?如cv::SurfFeatureDetector检测器(400);向量关键点;检测器。检测(图像、关键点);顺便说一句,我假设x1,y1在图像检测器的范围内。detect在xutility文件上给了我一个错误。是的,我在程序的其他部分使用x1和y1,它们都有有效值。