opencv python绑定的包装程序包。
opencv-contrib-python-headless的Python项目详细描述
车轮上的opencv
非官方的为python预先构建的opencv包。
安装和使用
如果您已经手动安装了以前/其他版本的opencv(例如,python站点包根目录中的cv2模块),请在安装之前将其删除,以避免冲突。
为您的环境选择正确的软件包:
有四个不同的软件包,您应该只选择其中一个。不要在同一环境中安装多个不同的软件包。没有插件体系结构:所有包使用相同的命名空间(
cv2
)。如果您在同一环境中安装了多个不同的软件包,请使用pip uninstall将它们全部卸载,然后只重新安装一个软件包。a.标准桌面环境(Windows、MacOS、几乎所有GNU/Linux发行版)的软件包
- 如果只需要主模块,请运行pip install opencv python
- 如果需要主模块和contrib模块,请运行
pip install opencv contrib python
b.用于服务器(无头)环境的软件包
这些包不包含任何gui功能。它们体积较小,适用于更受限制的环境。
- 如果只需要主模块,请运行pip install opencv python headless
- 如果需要主模块和contrib模块,请运行pip install opencv contrib python headless(查看opencv documentation中的额外模块列表)
导入包:
导入CV2
所有包都包含haarcascade文件。
cv2.data.haarcascades
可以用作数据文件夹的快捷方式。例如:cv2.cascadescifier(cv2.data.haarcascades+"haarcascade_frontalface_default.xml")
阅读opencv文档
在打开新问题之前,请阅读下面的常见问题解答,并查看已打开的其他问题。
< > >签出存储库和子模块
- opencv包含在子模块中,并且更新了版本 在新的opencv版本发布后由维护人员手动执行
- contrib模块也包括在子模块中
从源代码中查找opencv版本
安装依赖项(numpy)
构建opencv
- 测试被禁用,否则生成时间增加太多
- 每个生成组合有4个生成矩阵项:有无控制模块,有无gui(无头)
- Linux版本在ManyLinux Docker容器(CentOS 5)中运行
将每个
.pyd/.so
文件复制到此项目的cv2文件夹中,然后 生成轮子- 使用auditwheel和delocate检查linux和macos控制盘
安装生成的车轮
测试python是否可以导入库并运行一些健全性检查
使用tween将生成的控制盘上载到pypi(仅在发布版本中)
< > >
常见问题
问:我是否也需要单独安装opencv?
A:不,这些包是特殊的Wheel二进制包,它们已经包含静态构建的opencv二进制文件。
Q:PIP失败,找不到满足要求的版本…
?
A:很可能这个问题与PIP太旧有关,可以通过运行 q:在Windows上导入失败: A:如果在Windows上导入失败,请确保已导入Visual C++可再发行2015已安装。如果您使用的是比Windows 10旧的Windows版本,并且未安装最新的系统更新,Universal C Runtimemi这也是必需的。 windows n和kn版本不包括opencv所需的媒体功能包。如果您使用的是Windows N或Kn版本,请同时安装Windows Media功能包。
如果上述方法无效,请检查您是否正在使用水蟒。旧版本的anaconda有一个导致错误的错误,请参阅此问题的手动修复。 如果在检查完之前的所有解决方案后仍然遇到错误,下载依赖项,然后打开 问:我还有其他一些导入错误? A:确保您已经删除了opencv python绑定的旧手动安装(站点包中的cv2.so或cv2.pyd)。 q:为什么包中不包含非免费算法? 答:这些软件包中不包括sift和surf等非免费算法,因为它们获得了专利,因此不能作为构建的二进制文件分发。有关更多信息,请参见本期:https://github.com/skvark/opencv python/issues/126 q:为什么包和导入不同(opencv python与cv2)? 答:相比于cv2,用户更容易理解opencv python,也更容易通过搜索引擎找到软件包。 这个存储库的目的是为最常用的python版本和平台提供打包每个新的opencv版本的方法。 该项目的结构类似于一个普通的python包,它有一个标准的 由于所有包都使用上述相同的 opencv python包(存储库中的脚本)在mit许可下提供。 opencv本身可以在3条bsd许可证下获得。
第三方软件包许可证位于license-3rd-party.txt 所有车轮均配有ffmpeg许可证,许可证位于lgplv2.1 Linux和MacOS Wheels随附qt 4.8.7许可证,许可证位于lgplv2.1 当一个新的标记被推送到主分支时,发布并上传到pypi。这些标记区分了包(这个repo可能有修改,但opencv版本保持不变),应该按顺序递增。实际上,发行版本号如下: 将建立对此回购的主分支的每个提交。可能的生成工件使用本地版本标识符: 这些工件不能也不会上载到PYPI。 Linux轮子是使用manylinux构建的。这些轮子对于大多数发行版(使用gnu c标准库)来说都是现成的,因为它们是根据glibc的旧版本构建的。 默认的 Python2.7是2.x系列中唯一受支持的版本。Python2.7支持将在2019年底取消。 python 3.x版本遵循numpy版本。例如,numpy不再支持python 3.3,因此在opencv python中也不再支持它了。 目前,提供了以下python版本的版本:pip install--upgrade pip
来解决。注意,wheel(特别是manylinux)格式目前不支持正确的arm架构,因此pypi中没有针对基于arm的平台的包。但是,opencv python
覆盆子pi的包可以从https://www.piwheels.org/中找到。
importorror:dll加载失败:找不到指定的模块。
?cv2.pyd
(通常位于c:\ users\username\appdata\local\programs\pythonxx\lib\site packages\cv2
)文件,用它调试缺少的dll问题。cv2
(旧opencv版本中的旧接口命名为cv
)是opencv开发人员在创建绑定生成器时选择的名称。这被保留为导入名称,以便与Internet上的不同类型教程保持一致。对于习惯于import cv2
的经验丰富的用户来说,更改导入名称或行为也会让他们感到困惑。
opencv python的文档
构建过程
setup.py
文件。构建矩阵中单个条目的构建过程如下(请参见appveyor.yml
文件):cv2.pyd/.so
文件通常被复制到站点包中。为了避免污染根文件夹,这个包将静态构建的二进制文件包装到cv2包中,包中的文件正确处理导入逻辑。cv2
名称空间,因此在从opencv python
切换到opencv contrib python
之前卸载另一个包。
许可
版本控制
find_version.py
脚本从opencv源搜索版本信息,并将特定于此存储库的修订号附加到版本字符串中。发布
cv_major.cv_minor.cv_revision.package_revision
例如3.1.0.0
开发构建
cvu major.cvu minor.cvu revision+git\u hash这个回购协议
e.g.3.1.0+14a8d39
Manylinux车轮
manylinux
图像已经用一些opencv依赖项进行了扩展。有关详细信息,请参见docker文件夹。支持的Python版本
推荐PyPI第三方库