筛选检测和计算得到不同大小的关键点和描述符,这是怎么回事?

时间:2019-05-14 07:11:45

标签: c++ opencv3.0 descriptor keypoint

    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

0 个答案:

没有答案