Ptr<SIFT> detector = xfeatures2d::SIFT::create();
vector<cv::KeyPoint> key_points_1, key_points_2;
Mat dstImage1, dstImage2;
detector->detectAndCompute(srcImage1, Mat(), key_points_1, dstImage1);
我要提取图像筛选功能;但是当我在上面运行代码时,情况很奇怪;众所周知,key_points_1.size() != dstImage1.size();
描述符将通过关键点创建和计算,因此它们应具有相同的大小。有一次我遇到这种情况,所以我重建了opencv和opencv_contribute,代码就可以了。但是几天后,这个错误再次出现,我感到困惑。详细信息:vector<keypoint>& keypoint;
在用完函数detectAndCompute直到'}'keypoint.size() = descriptor.size
用完之前,可以;但是返回主功能时,keypoint.size()
已更改。
WIN7 Visual Studio 2017 opencv 3.4.1 opencv_contribute 3.4.1 详细信息:https://upload.cc/i1/2019/05/14/9Me5hT.jpg
keypoint1.size = 156 ,but descriptor1.size = 224
keypoint2.size = 143 ,but descriptor2.size = 205