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

标签 python linux opencv ffmpeg

我几乎阅读了所有关于这个主题的问题,但我没有解决它。 我正在研究 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,但再次失败。

--> 然后,我读到另一个原因可能是 FFmpegcodec。但是我也安装了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()" 尝试过,但我又失败了。

所以,我不明白这个问题,我真的是这个主题的新手。 有什么问题?

最佳答案

sudo modprobe bcm2835-v4l2

将为 opencv 自动“启用”你的 pi 相机。

关于python - cv2.videoCapture() 总是返回 false,也是 skvideo.io.VideoCapture(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314694/

相关文章:

c++ - 将矩形添加到梯形 openCV C++

python - 可以使用 Python 的 re 模块一次性检索一组任意无序的命名组吗?

linux - 在 debian 上重建包和包管理器

c++ - 如何从 cv::Mat 访问数据

PHP system() 调用在由 shell 调用时不起作用

linux - 运行两个命令的 BASH 脚本

c++ - 找不到 lopencv_core 和其他库变量

python - 删除 OpenERP 主页右侧出现的面板

python - 如何在 python 2.7 中循环遍历 if 语句中的选项列表?

python - 从命令行运行 Jupyter Notebook (.ipynb),就好像它是一个 .py 文件一样