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