3

我想使用 SIFT、SURF 等功能。我在具有 OpenCV 3.4.1 并使用 PyCharm 作为 IDE 的虚拟机上使用 Ubuntu 16.04。

我可以打开 Pycharm,创建一个项目,转到文件-设置-项目解释器并下载我需要的模块。我已经下载了 opencv-python 和 opencv-contrib-python。

但我仍然无法使用上述功能。

请帮忙。谢谢。

4

2 回答 2

5

在 OpenCV 3 中,非自由模块,即SIFT 和 SURF,它们各自的创建者已获得专利,已从默认的 OpenCV 安装中移出并进入opencv_contrib包。默认情况下不安装opencv_contrib中的实现,您需要在编译和安装 OpenCV 时显式启用它们以获得对它们的访问权限。

要访问 OpenCV 2.4.X 中的原始 SIFT 和 SURF 实现(默认安装这些实现的版本),您需要从 GitHub下载opencvopencv_contrib存储库,然后从源代码编译和安装 OpenCV3。

尽管我很想为您提供执行此操作的步骤,但我想归功于一个在线可用的教程来代替它。所以,按照这个甜蜜的教程 - 在 Ubuntu 上安装 OpenCV 3.0 和 Python 3.4+,你应该能够使用这些实现。此外,我建议查看ORB,它是 SIFT 和 SURF 的更快、免费的替代品,但不确定它是否能满足您的目的。

如果您真的不想使用终端,请打开一个新项目,转到 ->

设置 -> 项目 -> 项目解释器 -> +

通过搜索添加您想要的模块,您应该能够使用它们。

于 2018-05-22T14:00:13.130 回答
3

我在尝试使用 SIFT 和 SURF 时遇到了同样的问题。我尝试了很多方法,包括添加 opencv-contrib 甚至使用 Visual Studio 编译 opencv,但这些选项都不适合我。我建议使用 anaconda 并使用本文中显示的方法安装 opencv。

如何通过 Conda 安装 Python OpenCV?

使用安装后

conda install -c menpo opencv

我能够在没有“设置 OPENCV_ENABLE_NONFREE”的烦人按摩的情况下使用

编辑:我需要在我的树莓派上安装,而 Anaconda 在树莓派上的工作方式不同。我做了一些研究,发现如果你运行下面的命令,应该修复“NON_FREE /Patent protected”错误。

pip install opencv-contrib-python==3.4.0.12

于 2018-10-29T03:50:22.297 回答