【OpenCV】"(_Ptr_user&(_BIG_ALLOCATION_ALIGNMENT - 1)) ==0" && 0

在使用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分配的内存有限,而特征点太多

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值