【发布时间】:2018-02-12 04:21:44
【问题描述】:
没有太多可使用的,这就是标题如此“模糊”的原因。 我第一次尝试使用 cv2 来完成我工作中需要的一些任务,但第一次尝试失败了,所以我最终只测试了基本代码 sn-p。 哪个,似乎根本不起作用。
import cv2
cap = cv2.VideoCapture("GoneNutty.avi")
while True:
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Frame,是一个 None 值。代码失败。即使是帽子对象,似乎也是 当我尝试 PyCharm IDE 调试模式时,基本上什么都没有,检查它 “内容”。
到目前为止我尝试了什么
- 视频绝对有效,正常播放
- 尝试输入直接路径
- os.getcwd() 给出与视频所在目录相同的目录
- 尝试了不同格式的不同视频(avi、mp4)
- 以各种方式重新安装了 cv2 几次(由于我疯狂地尝试解决问题,所以有点杂乱无章)
- 使用 cap.read("file") 选项无济于事
- print(cv2.版本) >> 3.3.0
潜在线索
就调试而言,它是一场噩梦,因为我得到的有用信息为零,因为代码在执行无帧操作之前不会引发错误。
PyCharm IDE 说 cv2.VideoCapture 有一个意外的参数。 除此之外,我不知道发生了什么。
我在重新安装时尝试了很多东西,它似乎返回的版本是正确的,但我不知道如何检查安装是否正确。
关于我的系统的信息
我正在运行 Ubuntu 14.04 (Trusty)。
Python3 - 其他东西也可以
PyCharm 2017
如果我应该提供更多信息,请告诉我?另外,如果您对如何改进标题有任何建议,请告诉我更多信息。
【问题讨论】:
-
终端中
opencv_version的输出是什么? -
返回 3.3.0。
-
尝试
cv2.VideoCapture(0)从您的网络摄像头捕获。评论结果。 -
您是从源代码还是从 repo 安装 openCV?难道是opencv无法解码这样的视频吗?您是否尝试过使用网络摄像头(@Zindarod 评论)或其他编码不同的文件,例如 mpg.就像注释一样,您应该在使用框架之前检查 ret 值(在这种情况下可能是错误的),以避免错误的捕获损坏您的代码。
-
网络摄像头也有同样的问题。我试过 cv2.VideoCapture(0),还是一样。我使用这个脚本安装了 OpenCV:raw.githubusercontent.com/jayrambhia/Install-OpenCV/master/…
标签: linux python-3.x opencv ubuntu cv2