opencv-python和opencv-contrib-python之间的区别

32

我在查看Python包索引(PyPi)时,注意到有2个非常相似的包:opencv-contrib-pythonopencv-python,不知道它们之间有何区别。我查看了它们,发现它们有完全相同的描述和版本号。


3
opencv-contrib-python似乎是使用额外模块编译的,这些模块可以在https://github.com/opencv/opencv_contrib中找到。 - phd
3个回答

44
根据PyPi文档:
有四个不同的包(请参见下面的选项1、2、3和4):
适用于标准桌面环境的软件包:
选项1-主模块包:pip install opencv-python 选项2-完整包(包含主模块和contrib/extra模块):pip install opencv-contrib-python(从OpenCV文档中检查contrib/extra模块列表)
适用于服务器(无头)环境的软件包:
选项3-无头主模块包:pip install opencv-python-headless 选项4-无头完整包(包含主模块和contrib/extra模块):pip install opencv-contrib-python-headless 请勿在同一环境中安装多个不同的软件包。

2
无头包与非无头包有何不同? - Vlad Mashkautsan
是否支持GUI界面。在服务器上选择无头版本。反正你也不能显示任何GUI界面。 - Christoph Rackwitz

0

opencv-python提供了OpenCV的核心功能,包括基本的图像和视频处理能力。它包含了用于图像和视频输入/输出、图像处理、目标检测、特征提取和基本计算机视觉任务所需的主要模块。这个包适用于大多数常见的计算机视觉任务,通常被用作基本图像处理和分析的基础包。

opencv-contrib-python = opencv-python + 额外功能

在标准的opencv-python包中有一些额外的功能是不可用的,例如SIFT算法。因此,如果您需要进行大量的图像和计算机视觉工作,并且没有硬件限制,一定要安装opencv-contrib-python。


-2
Opencv每个版本都有两种编译方式,一种是“常规”版,功能齐全且经过充分测试;另一种是包含额外组件(contribs package)的编译方式。在他们的Github页面上,他们写道:

这个仓库旨在开发所谓的“额外”模块,即贡献功能。新模块往往没有稳定的API,并且它们没有经过充分测试。因此,它们不应作为官方Opencv发布的一部分,因为该库维护二进制兼容性,并尝试提供良好的性能和稳定性。

此外,在contribs package中还有几个非免费的计算机视觉算法(用于特征),例如SURF、BRIEF、Censure、Freak、LUCID、Daisy、BEBLID、TEBLID。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接