sift = cv2.xfeatures2d.SIFT_create() 即使安装了 contrib 也无法正常工作
sift = cv2.xfeatures2d.SIFT_create() not working even though have contrib installed
所以我正在尝试使用:
sift = cv2.xfeatures2d.SIFT_create()
它出现了这个错误:
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented)
This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake
option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'
我正在使用 Python 3.5.0
和 opencv(3.4.3)
,我只是在闲置。这发生在我尝试安装 TensorFlow 并且我尝试环顾四周并安装了 opencv-contrib-python 但我仍然遇到相同的错误。提前谢谢你,如果我没有提供足够的信息,我深表歉意
可能是opencv版本和opencv-contrib版本不匹配导致的。
如果你使用CMake从源码安装opencv,并且源码版本与opencv-contrib-python的版本不同,卸载当前的opencv-contrib-python并执行pip install opencv-contrib-python==<version of the source>.X
或者另一个兼容版本。
我有 运行 的一个版本设置是 opencv source (3.2)、opencv-python (3.4.0.14) 和 opencv-contrib-python (3.4.2.17)
我遇到了同样的问题。 SIRF和SURF好像是no longer available in opencv > 3.4.2.16. I chose an older opencv-python and opencv-contrib-python versions and solved this problem. Here is the history version about opencv-python,我用的代码如下:
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
编辑
对于 Anaconda 用户,只需要这个而不是 pip
conda install -c menpo opencv
这将安装 cv2 3.4.1 以及 运行 SIFT
所需的一切
祝你好运~
编辑:opencv-contrib-python-nonfree
已从 pypi 中删除。
在 Linux/ MacOS 上,我找到了更好的解决方案!要访问非自由检测器,请使用:
pip install opencv-contrib-python-nonfree
由于 SIFT 专利到期,SIFT 已移至主仓库。
要在 Opencv 中使用 SIFT,您现在应该使用 cv2.SIFT_create() 而不是 cv2.xfeatures2d.SIFT_create()。 (xfeatures2d 只存在于 contrib 包中,但 sift 现在是主包的一部分。)
以下 link 会有所帮助。
https://github.com/opencv/opencv/issues/16736
所以我正在尝试使用:
sift = cv2.xfeatures2d.SIFT_create()
它出现了这个错误:
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented)
This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake
option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'
我正在使用 Python 3.5.0
和 opencv(3.4.3)
,我只是在闲置。这发生在我尝试安装 TensorFlow 并且我尝试环顾四周并安装了 opencv-contrib-python 但我仍然遇到相同的错误。提前谢谢你,如果我没有提供足够的信息,我深表歉意
可能是opencv版本和opencv-contrib版本不匹配导致的。
如果你使用CMake从源码安装opencv,并且源码版本与opencv-contrib-python的版本不同,卸载当前的opencv-contrib-python并执行pip install opencv-contrib-python==<version of the source>.X
或者另一个兼容版本。
我有 运行 的一个版本设置是 opencv source (3.2)、opencv-python (3.4.0.14) 和 opencv-contrib-python (3.4.2.17)
我遇到了同样的问题。 SIRF和SURF好像是no longer available in opencv > 3.4.2.16. I chose an older opencv-python and opencv-contrib-python versions and solved this problem. Here is the history version about opencv-python,我用的代码如下:
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
编辑
对于 Anaconda 用户,只需要这个而不是 pip
conda install -c menpo opencv
这将安装 cv2 3.4.1 以及 运行 SIFT
所需的一切祝你好运~
编辑:opencv-contrib-python-nonfree
已从 pypi 中删除。
在 Linux/ MacOS 上,我找到了更好的解决方案!要访问非自由检测器,请使用:
pip install opencv-contrib-python-nonfree
由于 SIFT 专利到期,SIFT 已移至主仓库。 要在 Opencv 中使用 SIFT,您现在应该使用 cv2.SIFT_create() 而不是 cv2.xfeatures2d.SIFT_create()。 (xfeatures2d 只存在于 contrib 包中,但 sift 现在是主包的一部分。)
以下 link 会有所帮助。 https://github.com/opencv/opencv/issues/16736