PyCharm:为 SIFT、SURF 等操作安装非免费 OpenCV 模块

Posted

技术标签:

【中文标题】PyCharm:为 SIFT、SURF 等操作安装非免费 OpenCV 模块【英文标题】:PyCharm: Installation of non-free OpenCV modules for operations like SIFT, SURF 【发布时间】:2018-11-01 05:20:57 【问题描述】:

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

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

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

请帮忙。谢谢。

【问题讨论】:

你能找到cv2.xfeatures2d吗? 你应该使用pip而不是任何管理器来安装模块。 @RickM。不,我不能 @Link 我想在 Pycharm 中使用它。我将 pip 作为 Pycharm 中的一个模块。 【参考方案1】:

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

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

尽管我想为您提供执行此操作的步骤,但我想感谢在线提供的一个教程来代替执行此操作。因此,请遵循此sweet tutorial - Install OpenCV 3.0 and Python 3.4+ on Ubuntu,您应该能够使用这些实现。此外,我建议查看ORB,它是 SIFT 和 SURF 的更快、免费的替代品,但不确定它是否能满足您的目的。

如果你实在不想用终端,打开一个新项目,转到->

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

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

【讨论】:

@Winbuntu 如果它对您有帮助,请接受它作为解决方案,以便将来帮助人们! 感谢您的信息。但我想在 Pycharm 中激活这些功能。我不想在终端中编写代码。所以我在 Pycharm 的项目解释器中下载了 pip、opencv-python、opencv-contrib-python、numpy 模块。那么如何激活这些功能呢? 安装所有模块后,PyCharm 将能够识别它。如果它在终端中运行,它也会在 PyCharm 上运行。如果你坚持不使用终端(不明白为什么,因为你在 Ubuntu 上工作),在 PyCharm 中打开你的项目,转到 Settings > Project > Project Interpreter > +,然后可以搜索你要安装的库 我已经做到了。使用“+”号本身,我已经下载了上面提到的模块。现在,当我编写例如 cv2.x 时,Pycharm 应该将其自动完成为 cv2.xfeatures2d 或其他任何东西,或者说 cv2.Sobel 或它具有的任何功能。但它不会自动完成它。这就是问题所在:/我坚持使用 Pycharm,因为我的项目必须在这个 IDE 上完成。 现在我创造了一切新的东西,它又可以工作了。我认为可能有缓存或其他东西。!不管怎么说,还是要谢谢你。我接受了答案。【参考方案2】:

我在尝试使用 SIFT 和 SURF 时遇到了同样的问题。我尝试了很多方法,包括添加 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 /Patent protected”错误。

pip install opencv-contrib-python==3.4.0.12

【讨论】:

以上是关于PyCharm:为 SIFT、SURF 等操作安装非免费 OpenCV 模块的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB教程案例27基于matlab的图像配准算法的仿真与分析——sift,surf,kaze等

在 matlab 中对 SURF 和 SIFT 描述符的组合运行 k-means

理解SIFT/SURF算法原理,并进行关键点检测

SIFT/SURF

用于增强现实的 SURF 和 SIFT 替代对象跟踪算法

OpenCV+Python特征提取算法与图像描述符之SIFT / SURF / ORB