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