我想使用像SIFT,SURF等功能。我在使用OpenCV 3.4.1的虚拟机上使用Ubuntu 16.04并使用PyCharm作为IDE。
我可以打开Pycharm,创建一个项目,转到文件 - 设置 - 项目解释器并下载我需要的模块。我已经下载了opencv-python和opencv-contrib-python。
但我仍然无法使用上述功能。
请帮忙。谢谢。
使用OpenCV 3,非自由模块,即SIFT和SURF,由其各自的创建者获得专利,被移出默认的OpenCV安装并进入opencv_contrib包。默认情况下不会安装opencv_contrib中的实现,您需要在编译和安装OpenCV时显式启用它们以获取对它们的访问权限。
要访问OpenCV 2.4.X(默认情况下安装了这些实现的版本)中的原始SIFT和SURF实现,您需要从GitHub下载opencv和opencv_contrib存储库,然后从源代码编译和安装OpenCV3。
尽管我想为您提供执行此操作的步骤,但我还是要赞扬一个在线可用的教程。因此,请遵循此sweet tutorial - Install OpenCV 3.0 and Python 3.4+ on Ubuntu,您应该能够使用这些实现。另外,我建议看一下ORB,它是SIFT和SURF的一种更快,免费的替代方案,但不确定它是否能满足你的需求。
如果您真的不想使用终端,请打开一个新项目,转到 - >
设置 - >项目 - >项目翻译 - > +
通过搜索它们来添加所需的模块,您应该能够使用它们。
尝试使用SIFT和SURF时,我遇到了同样的问题。我尝试了很多方法,包括添加opencv-contrib,甚至使用visual studio编译opencv,但这些选项都不适用于我。我建议使用anaconda并使用本文中的方法show安装opencv。
How do I install Python OpenCV through Conda?
安装后使用
conda install -c menpo opencv
没有烦人的按摩“set OPENCV_ENABLE_NONFREE”我就能使用了
编辑:我需要在我的覆盆子pi上安装,而Anaconda在覆盆子pi上的工作方式不同。我做了一些研究,我发现如果你运行下面的命令,应该修复“NON_FREE /专利保护”错误。
pip install opencv-contrib-python == 3.4.0.12