cv2.videoCapture()返回false,也是skvideo.io.VideoCapture()

时间:2017-11-15 18:25:34

标签: python linux opencv ffmpeg cv2

我几乎阅读了有关此主题的所有问题,但我没有解决。 我正在研究Linux / Mint。我试图用opencv打开我的网络摄像头(或任何无关紧要的视频)并从视频中读取一帧。我写这段代码:

import cv2

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    print ret #It returns always false

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
       break

cap.release()
cv2.destroyAllWindows()

- >我读过这个问题可能是因为opencv安装。我检查了安装,看来是真的。当我写'pip freeze'时,结果列表包含 opencv-python模块,所以我认为安装是正确的,这不是我问题的原因。

- >我试图将将videoCapture(0)中的索引更改为-1和1,然后再次失败。

- >然后,我读到其他原因可能是 FFmpeg 编解码器。但我也安装了FFmpeg,问题没有改变。

- > cv2.VideoCapture()没有给出任何错误,但我想在Poject> Settings> Project Interpreter上安装cv2模块,它给了我一个错误(执行命令: pip install cv2 )但是当我运行此命令,它给了我这个错误:找不到满足要求的版本cv2(来自版本:)没有找到cv2的匹配分发 我检查了我的virtualenv中的cv2模块,它似乎在那里。 (/cv_env/lib/python2.7/site-packages/cv2)

- >我也尝试了“skvideo.io.VideoCapture()”,但我又失败了。

所以,我不明白这个问题,我在这个问题上真的很新。 有什么问题?

1 个答案:

答案 0 :(得分:0)

sudo modprobe bcm2835-v4l2

将"启用"你自己的pi摄像头用于opencv。