我知道这不是一个纯粹的编程问题,但我希望得到像https://stackoverflow.com/a/18590112这样的回复。
我想知道如何构建OpenCV 3.0.0-beta库以将其与Python一起使用,具有SIFT和SURF功能,如OpenCV文档中所见,它们是lib的非自由部分,在Debian Linux操作系统上,通过命令行。
在此先感谢,我希望这个话题将有助于将来所有Google用户拼命寻找建立这个图书馆的好教程。
答案 0 :(得分:1)
使用opencv3.0,sift和surf已被移动到opencv_contrib repo,同样,你需要从src构建整个东西。这样:
将其添加到主 opencv repo中的cmake设置:cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
(重新)构建:cmake,make,make-install。
如果一切顺利,你可以尝试一下:
>>> 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(...)