Tôi đang cố gắng phát hiện các điểm chính với mọi thứ ORB là tốt cho đến khi tôi chuyển sang Opencv 2.4.9.ORB không phát hiện keyPoints trong opencv 2.4.9
flirts, có vẻ như số lượng các phím decresed, và đối với một số hình ảnh, không keypoint được phát hiện:
Đây là mã của tôi biên soạn với hai phiên bản: (2.3.1 và 2.4.9)
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
OrbFeatureDetector detector;
detector.detect(img, kp);
std::cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);
waitKey(0);
return 0;
}
Kết quả: 2.3.1: Tìm thấy 152 keypoint
2,4. 9: Tìm thấy 0 keypoint
Tôi cũng thử nghiệm với một Constructor ORB khác nhau, nhưng tôi nhận được kết quả tương tự, không có KPts. Các giá trị constuctor giống như trong constructor 2.3.1 mặc định của: 2.4.9 tùy chỉnh constr:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
// default in 2.4.9 is : ORB(700, 1.2f, 3, 31, 0);
OrbFeatureDetector detector(500, 1.2f, 8, 31, 0); // default values of 2.3.1
detector.detect(img, kp);
std::cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);
waitKey(0);
return 0;
}
Bạn có bất cứ ý tưởng gì đang xảy ra? Và làm thế nào tôi có thể sửa nó?
Cảm ơn bạn.
Bạn có nhận được giải pháp nào không? –
Trên các hình ảnh khác, bạn cũng tìm thấy 0 điểm chính? Hay chỉ là ít điểm then chốt hơn với openCV 2.3.1? – Whysmerhill