【问题标题】:Cannot get cv2 to work - even most basic code无法让 cv2 工作 - 即使是最基本的代码
【发布时间】: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 调试模式时,基本上什么都没有,检查它 “内容”。

到目前为止我尝试了什么

  1. 视频绝对有效,正常播放
  2. 尝试输入直接路径
  3. os.getcwd() 给出与视频所在目录相同的目录
  4. 尝试了不同格式的不同视频(avi、mp4)
  5. 以各种方式重新安装了 cv2 几次(由于我疯狂地尝试解决问题,所以有点杂乱无章)
  6. 使用 cap.read("file") 选项无济于事
  7. 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


【解决方案1】:

你有安装 ffmpeg 吗?如果你没有ffmpeg,你无法在linux中加载视频。

【讨论】:

  • 我安装了最新的 ffmpeg。
猜你喜欢
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2020-07-24
相关资源
最近更新 更多