import cv2
import numpy
cap = cv2.VideoCapture("test1.avi")
while 1:
ret, frame = cap.read()
cv2.imshow("cap", frame)
if cv2.waitKey(100) & 0xff == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
我的代码在上面进行了解释,并且在 windows 中运行良好。但是在 ubuntu 16.04 中时会出现错误。请解释解决方案
Unable to stop the stream: Inappropriate ioctl for device
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/travis/miniconda/conda-bld/conda_1485299288502/work/opencv-3.2.0/modules/highgui/src/window.cpp, line 304
Traceback (most recent call last):
File "opncv_ex4.py", line 7, in <module>
cv2.imshow("cap", frame)
cv2.error: /home/travis/miniconda/conda-bld/conda_1485299288502/work/opencv-3.2.0/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow
Ubuntu 16.04 和 opencv 3.2 python 2.7
代码等待太长时间无法停止,if cv2.waitKey(100) & 0xff == ord('q'):
因此将 100 更改为 10,如下所示:if cv2.waitKey(10) & 0xff == ord('q'):
更改这行代码后,您的 Python 脚本将在终端中完美运行。
此链接列出了一个包含非常短的示例 .avi 视频的网页,非常适合测试您的代码。如果从终端运行脚本,则.avi视频必须位于当前目录中。
如果步骤 1 和 2 不起作用,通常 Anaconda 是罪魁祸首。Anaconda 基本上是一个 Windows/Mac 程序,它完全由默认 Ubuntu 存储库中的包复制,除非 Anaconda 无法找到任何未由 Anaconda 安装的 Python 模块,除非进行特殊配置以告诉 Anaconda 丢失的 Python 模块所在的位置. 或者您可以放弃并从默认的 Ubuntu 存储库安装 OpenCV,并停止使用 Anaconda。
sudo apt install python-opencv
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句