我正在使用opencv并将其添加到c ++项目中。但是,我遇到了功能匹配问题。代码在这里:
cv::Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
std::vector<KeyPoint> keypoints_1, keypoints_2;
Mat descriptors_1, descriptors_2;
f2d->detectAndCompute(img_Org_Y_mat, Mat(), keypoints_1, descriptors_1);
f2d->detectAndCompute(img_Rec_Y_mat, Mat(), keypoints_2, descriptors_2);
vector<DMatch> matches;
BFMatcher matcher(NORM_L2);
matcher.match(descriptors_1, descriptors_2, matches);
我的最后一行有问题:
OpenCV Error: Assertion failed (masks.size() == imageCount) in
cv::DescriptorMatcher::checkMasks, file C:\Opencv2\opencv
master\modules\features2d\src\matchers.cpp, line 617
并在程序中写道:
Unhandled exception at 0x00007FF803FA9E08 in TAppEncoder.exe: Microsoft C++
exception: cv::Exception at memory location 0x000000CE624E9050.
答案 0 :(得分:0)
我也遇到了这个问题。我已经解决了这个问题,但我不确定这个解决方案是否适合这个问题。我将分享我的解决方案。
我已经在发布模型中添加了一些.lib文件,例如opencv_bgsegm341.lib到&#34;附加依赖项&#34;因为失误。
删除后,程序运行成功。
我希望这会对你有所帮助。