Python OpenCV:Python 2.7 到 Python 3.5 之间的 VideoCapture 差异

Posted

技术标签:

【中文标题】Python OpenCV:Python 2.7 到 Python 3.5 之间的 VideoCapture 差异【英文标题】:Python OpenCV : VideoCapture differences between Python 2.7 to Python 3.5 【发布时间】:2017-07-08 14:56:44 【问题描述】:

我通过 ssh 连接到远程系统,并尝试在 Python 中使用 OpenCV VideoCapture 读取帧。相同的代码在使用 Python 2.7 时成功,在使用 Python 3.5 时失败:

import cv2
cap = cv2.VideoCapture(0)

Python2.7:

print cap.isOpened() # prints True, further read() calls also return True

Python3.5:

print (cap.isOpened()) # prints False, and so are cap.open(), and of course cap.read().

什么可能导致这种行为?

谢谢!

【问题讨论】:

每个 Python 版本都有自己的 openCV 二进制文件副本,也许这两个版本是用不同的选项构建的? 【参考方案1】:

我遇到了完全相同的问题。 OpenCV 是从源代码安装的。 Python 2 和 3 环境之间的区别在于,对于 Python 3,opencv-python 另外是通过 pip3 安装的。一个

pip3 uninstall opencv-python

在我的情况下解决了。

【讨论】:

这正是我的问题。谢谢!

以上是关于Python OpenCV:Python 2.7 到 Python 3.5 之间的 VideoCapture 差异的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenCV 和 Python-2.7 进行屏幕截图

无法使用 python 3.5 安装 opencv 3.1,仅适用于 2.7

Python OpenCV:Python 2.7 到 Python 3.5 之间的 VideoCapture 差异

2.7的python opencv导入错误

虚拟环境上的 Opencv3 和 Python 2.7 - AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”

Python 2.7 Opencv 错误,ImportError: DLL load failed: 找不到指定的模块