表达式:“(_Ptr_user&(_ BIG_ALLOCATION_ALIGNMENT - 1))== 0”&& 0

时间:2015-11-06 17:09:16

标签: visual-studio opencv

我正在使用Visual Studio和OpenCV。我有一个简单的代码,可以检测关键点并计算两个图像的描述符。

void extractfeatures::extractKeypoints(cv::Mat _frame, cv::Mat _object)
{
    //Extract keypoints
    cv::Ptr<cv::FeatureDetector> detector;
    cv::Ptr<cv::AKAZE> akaze = cv::AKAZE::create();
    std::vector<cv::KeyPoint> object_keypoints, background_keypoints;
    cv::Mat desc1, desc2;
    akaze->detectAndCompute(_object, cv::noArray(), object_keypoints, desc1);
    akaze->detectAndCompute(_frame, cv::noArray(), background_keypoints, desc2);
}

代码工作正常,与OpenCV Akaze文档中的代码几乎相同:http://docs.opencv.org/3.0-beta/doc/tutorials/features2d/akaze_matching/akaze_matching.html

但是,当它退出该功能时,它会给我这个错误:

  

表达式:“(_Ptr_user&amp;(_ BIG_ALLOCATION_ALIGNMENT - 1))== 0”&amp;&amp; 0

提前谢谢!

2 个答案:

答案 0 :(得分:0)

因为向量的内存有限,所以关键点太多了。 如果关键点大约是10000:

object_keypoints.reserve(10000);
background_keypoints.reserve(10000)

答案 1 :(得分:0)

一旦遇到这样的问题。原来,该程序没有链接正确的opencv的DLL。当我将正确的dll(例如opencv_world310d.dll)移动到我程序的Debug文件夹时,此错误消失了。