当我尝试执行功能匹配时,我遇到了cv :: BFMatcher的问题。我使用xfeatures2D :: SIFT描述符计算描述符。当我尝试执行匹配时,应用程序输出显示“异常在0x7ff833308b9c,代码:0xe06d7363:C ++异常,标志= 0x1(执行无法继续)(第一次机会)在f:\ dd \ vctools \ crt_bld \ self_64_amd64 \ crt \ SRC \ xthrow.cpp:13" 代码类似于:
matchesltor.clear();
matchesrtol.clear();
cv::BFMatcher matcher(cv::NORM_L2);
ProcessedImageData *imageDataLeft = mImageDataMap.value(mapKeyList.at(m));
std::vector<cv::KeyPoint> tiePointsLeft = imageDataLeft->getTiepoints();
cv::Mat descriptorsLeft= imageDataLeft->getDescriptors();
ProcessedImageData *imageDataRight = mImageDataMap.value(mapKeyList.at(n));
std::vector<cv::KeyPoint> tiePointsRight = imageDataRight->getTiepoints();
cv::Mat descriptorsRight= imageDataRight->getDescriptors();
matcher.knnMatch(descriptorsLeft,descriptorsRight,matchesltor,2)
matcher.knnMatch(descriptorsRight,descriptorsLeft,matchesrtol,2)
输出消息显示在执行匹配“matcher.knnMatch(descriptorsLeft,descriptorsRight,matchesltor,2)”的第一行中。
奇怪的是,它在单个qt项目中工作,只执行连接点检测,连接点描述和匹配,但当我尝试将其加入其他项目(相同的代码,相同的编译器和相同的qt版本)时显示输出消息和执行停止(应用程序不会中断)。
感谢您的帮助。