如何使用非免费模块为Python构建OpenCV 3.0.0?

时间:2014-12-29 17:45:37

标签: python linux opencv makefile

我知道这不是一个纯粹的编程问题,但我希望得到像https://stackoverflow.com/a/18590112这样的回复。

我想知道如何构建OpenCV 3.0.0-beta库以将其与Python一起使用,具有SIFT和SURF功能,如OpenCV文档中所见,它们是lib的非自由部分,在Debian Linux操作系统上,通过命令行。

在此先感谢,我希望这个话题将有助于将来所有Google用户拼命寻找建立这个图书馆的好教程。

1 个答案:

答案 0 :(得分:1)

使用opencv3.0,sift和surf已被移动到opencv_contrib repo,同样,你需要从src构建整个东西。这样:

  1. fork / clone /下载。花点时间在那里readme
  2. 将其添加到 opencv repo中的cmake设置:cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>

  3. (重新)构建:cmake,make,make-install。

  4. 如果一切顺利,你可以尝试一下:


  5. >>> import cv2
    >>> help(cv2.xfeatures2d)   # additional namespace !
    Help on module cv2.xfeatures2d in cv2:
    
    NAME
        cv2.xfeatures2d
    
    FILE
        (built-in)
    
    FUNCTIONS
        SIFT_create(...)
            SIFT_create([, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma]]]]]) -> retval
    
        SURF_create(...)
            SURF_create([, hessianThreshold[, nOctaves[, nOctaveLayers[, extended[,upright]]]]]) -> retval
    
    
    >>> sift = cv2.xfeatures2d.SIFT_create()
    >>> sift.detect(...)