OpenCV 3 中 SIFT 的示例代码?

Posted

技术标签:

【中文标题】OpenCV 3 中 SIFT 的示例代码?【英文标题】:Example code for SIFT in OpenCV 3? 【发布时间】:2016-03-04 07:08:29 【问题描述】:

我是 OpenCV 的新手,我正在尝试使用 SIFT 从灰度图像中提取关键点。但未能成功编译代码。互联网上似乎没有关于 SIFT 使用的明确帮助。请帮忙。谢谢。

while(true)

    Mat myFrame;
    Mat grayFrame;
    capture.read(myFrame);
    cvtColor(myFrame, grayFrame, CV_BGR2GRAY);

    vector<Vec2f> outputArray;
    vector<KeyPoint> keypoint;
    Feature2D EXTRACTOR;
    Mat descriptors;
    EXTRACTOR.detectAndCompute(grayFrame, outputArray, keypoint, descriptors);

【问题讨论】:

Nonfree module is missing in OpenCV 3.0的可能重复 【参考方案1】:
    vector<KeyPoint> keyVector;
    Mat outputDiscriptor;
    Ptr<SIFT> detector = SIFT::create();
    detector->detect(grayFrame, keyVector);
    //here grayFrame is the gray scale of the original frame/image

    if you want to get the descriptors of the key points use the 
    detector->compute(grayFrame, keyVector)

【讨论】:

以上是关于OpenCV 3 中 SIFT 的示例代码?的主要内容,如果未能解决你的问题,请参考以下文章

SIFT在OpenCV中的调用和具体实现(HELU版)

如何使用opencv查找手动定义的地标的描述符

OpenCV实现SIFT图像拼接源代码

SIFT openCV 的关键点数?

Visual Studio 中 Opencv 的介绍性示例程序以代码 -1 退出。没理由

c++ Opencv sift 位置检测