"(_Ptr_user&(_BIG_ALLOCATION_ALIGNMENT

来源:互联网 发布:电脑相册制作软件 编辑:程序博客网 时间:2024/06/05 16:07

在使用VS2015+OpenCV2410时,会报如下错误,而用VS2013时不会,网上说是兼容性问题。

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);}
Expression: "(_Ptr_user&(_BIG_ALLOCATION_ALIGNMENT - 1)) ==0" && 0

查遍各大网站,在角落里挖到正确解决办法

Because the memory of vector is limited, there are too many keypoints. If the keypoints are about 10000:

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

简单来说就是给vector分配的内存有限,而特征点太多

原创粉丝点击