Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用非自由模块安装OpenCV 3.0?_Opencv - Fatal编程技术网

如何使用非自由模块安装OpenCV 3.0?

如何使用非自由模块安装OpenCV 3.0?,opencv,Opencv,我尝试过几次,但大多数指南只告诉您在构建OpenCV后如何安装它。我已经有过两次不成功的尝试,用这种方法做了很多工作,所以 我很感激(其他人在稍后阅读时可能也很感激)关于如何安装它的基本说明(假设依赖项已经存在) 最好使用git还是自己构建 运行cmake时必须遵循哪些指令 既然到目前为止版本3是不可靠的,那么只构建一个旧版本(比如2.4.9)更好吗 下面引用了Berak对这个问题的回答。基本上,您可以从Git中下拉它,添加它,然后就可以开始了 贝拉克的回答: 在3.0中,SIFT和SURF被移

我尝试过几次,但大多数指南只告诉您在构建OpenCV后如何安装它。我已经有过两次不成功的尝试,用这种方法做了很多工作,所以

  • 我很感激(其他人在稍后阅读时可能也很感激)关于如何安装它的基本说明(假设依赖项已经存在)
  • 最好使用git还是自己构建
  • 运行cmake时必须遵循哪些指令
  • 既然到目前为止版本3是不可靠的,那么只构建一个旧版本(比如2.4.9)更好吗

  • 下面引用了Berak对这个问题的回答。基本上,您可以从Git中下拉它,添加它,然后就可以开始了

    贝拉克的回答:

    在3.0中,SIFT和SURF被移动到opencv_contrib repo

    您需要克隆/分叉/下载该文件,并将其添加到您的(主文件)中 opencv)cmake

    cmake-DOPENCV\u EXTRA\u MODULES\u PATH=/MODULES
    
    然后,建好以后,

    #include "opencv2/xfeatures2d/nonfree.hpp"
    
    Ptr<xfeatures2d::SURF> surf = xfeatures2d::SURF::create(); // note
    extra namespace surf->detect(...); surf->compute(...);
    
    #包括“opencv2/xfeature2d/nonfree.hpp”
    Ptr surf=xfeatures2d::surf::create();//笔记
    额外名称空间浏览->检测(…);冲浪->计算(…);
    
    不要忘记链接到opencv_xFeature2D(.lib)


    另外,在回答问题4时。OpenCV 3.0很好,我不会说它不可靠。

    最终找到了解决方案: 首先配置了“opencv-3.4”和必需的内容。我发现很容易使用cmake gui来配置opencv-3.4。在配置期间,通过选中复选框和其他必需的内容启用“OPENCV_ENABLE_NONFREE”

    编译进行得很顺利,安装也完成了。 但是我不能使用“非自由”api,比如“xFeature2D”,它是我的应用程序的一部分

    经过6-7小时的努力,最终发现在配置opencv时需要包含“opencv contrib”模块

    已下载opencv-contrib-3.4.8,并在opencv_额外_模块_路径中的opencv配置期间提供至“./opencv-contrib-3.4.8/模块”

    然后使用cmake gui进行配置,现在我可以从“opencv_contrib”看到下面的配置,opencv已经选择了额外的模块。配置完成后,进行了make和make安装

    xfeatures2d/boostdesc: Download: boostdesc_bgm.i
    xfeatures2d/boostdesc: Download: boostdesc_bgm_bi.i
    xfeatures2d/boostdesc: Download: boostdesc_bgm_hd.i
    xfeatures2d/boostdesc: Download: boostdesc_binboost_064.i
    xfeatures2d/boostdesc: Download: boostdesc_binboost_128.i
    xfeatures2d/boostdesc: Download: boostdesc_binboost_256.i
    xfeatures2d/boostdesc: Download: boostdesc_lbgm.i
    xfeatures2d/vgg: Download: vgg_generated_48.i
    xfeatures2d/vgg: Download: vgg_generated_64.i
    xfeatures2d/vgg: Download: vgg_generated_80.i
    xfeatures2d/vgg: Download: vgg_generated_120.i
    data: Download: face_landmark_model.dat
    ..
    
    如何测试opencv中是否包含“非自由”模块: 登录到您的虚拟环境并键入“python”,然后输入“importcv2”(应该返回而没有错误)。最后执行了“surf=cv2.xfeatures2d.surf_create()”,该命令也返回,没有错误。这包括在opencv中添加“非自由”模块

    >$ python
    Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    >>> import cv2
    >>> 
    >>> surf=cv2.xfeatures2d.SURF_create()
    >>> exit()
    
    谢谢,
    Muthukumar

    在这里为感兴趣的人找到了一个很好的指南:OpenCV 3.1已经发布,许多错误已经纠正,并且有了新的功能。
    >$ python
    Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    >>> import cv2
    >>> 
    >>> surf=cv2.xfeatures2d.SURF_create()
    >>> exit()