Chcę wypróbować nową klasę FREAK
w OpenCV 2.4.2.OpenCV 2.42 FeatureDetector FREAK
Próbowałem użyć wspólnego interfejsu detektora funkcji do skonstruowania FREAK
, ale oczywiście to nie działa. W jaki sposób powinienem poprawić mój kod, aby uzyskać wynik?
#include <stdio.h>
#include <iostream>
#include <opencv\cxcore.h>
#include <opencv2\nonfree\features2d.hpp>
#include <opencv\highgui.h>
#include <opencv2\features2d\features2d.hpp>
#include <vector>
using namespace std;
using namespace cv;
int main(){
Mat mat1;
mat1 = imread("Testimg06.jpg",0);
vector<KeyPoint> P1;
Ptr<FeatureDetector> freakdes;
Ptr<DescriptorExtractor> descriptorExtractor;
freakdes = FeatureDetector::create("FREAK");
freakdes->detect(mat1,P1);
Mat keypoint_img;
drawKeypoints(mat1, P1, keypoint_img, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
imshow("Keypoints 1", keypoint_img);
cvWaitKey(0);
}
Należy pamiętać, że aby uzyskać najlepszą wydajność, FREAK potrzebuje niezmiennych punktów obrotu i skalowania, dlatego opcja FAST nie jest najlepszą opcją, patrz * OCENA BINARNYCH OPISÓW KLUCZOWYCH * więcej informacji: http://2013.ieeeicip.org/proc /pdfs/0003652.pdf – aledalgrande