无法使用 OpenCV、Python 和 VS Code 运行视频或网络摄像头

问题描述 投票:0回答:3

我想在 VS Code 中运行此 OpenCV 教程 中的以下 Python 代码:

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while True:
    # Capture frame-by-frame
    ret, frame = cap.read()
    # if frame is read correctly ret is True
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    # Our operations on the frame come here
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    # Display the resulting frame
    cv.imshow('frame', gray)
    if cv.waitKey(1) == ord('q'):
        break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()

我还从 VS Code 的终端收到以下错误:

[ WARN:[email protected]] global /private/var/folders/sy/f16zz6x50xz3113nwtb9bvq00000gp/T/abs_506zufg7xt/croots/recipe/opencv-suite_1664548331847/work/modules/videoio/src/cap_gstreamer.cpp (862) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

我相信我的解释器/virtualenv 是正确的。我相机的小绿灯似乎确实亮了,虽然只是短暂的亮起。相机在其他情况下工作得很好。但是我运行的时候好像没有越过第一行代码

cap = cv.VideoCapture(0)
。对发生的事情有什么想法吗?

python macos opencv visual-studio-code webcam
3个回答
1
投票

您似乎使用的是 Mac 操作系统。使用这个:

cap = cv.VideoCapture(0, apiPreference=cv.CAP_AVFOUNDATION)

Explicit

apiPreference
跳过后端的自动检测,因此甚至不会尝试 gstreamer 后端。


0
投票

它说你的 OpenCV 需要 Gstreamer 作为后端来访问你的相机,但你还没有编译一个支持 Gstreamer 的 OpenCV。


0
投票

我忘了返回这里报告我的解决方案。事实证明,VS Code 不能很好地适应基于 conda 的环境。我用 Python venv 创建了一个新环境;现在一切都像魅力一样。

© www.soinside.com 2019 - 2024. All rights reserved.