微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – OpenCV 2.42 FeatureDetector FREAK

我想在OpenCV 2.4.2中尝试新的FREAK.

我试图使用特征检测器的通用接口构造FREAK,但是当然不起作用.我应该如何修改代码以获得结果?

#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);

}

解决方法

FREAK只是描述符.没有相应的特征检测器.

所以您需要将其与其中一个可用的检测器:FAST,ORB,SIFT,SURF,MSER或使用goodFeaturesToTrack功能相结合.

原文地址:https://www.jb51.cc/c/114961.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐