python - 尝试使用 CV2 从网络摄像头捕获视频时出错

标签 python opencv webcam

我正在尝试制作一个使用网络摄像头获取视频的应用程序。但是当我运行程序时,网络摄像头没有启动,我也没有看到 cv2 窗口打开。我什至尝试制作一个简单的网络摄像头程序,但它也不起作用:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

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()

我收到以下错误:

[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (436) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

我的网络摄像头在其他应用程序中工作正常。只有 cv2 有问题。我应该怎么做才能解决这个问题?

最佳答案

似乎没有框架可以转换为灰度。 试试这个怎么样。

import numpy as np
import cv2

#change to your video path
cap = cv2.VideoCapture("D:\start.mp4")

while(cap.isOpened()):
    # Capture frame-by-frame
    ret, frame = cap.read()

    if (ret!=True):
         break

    # 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()

关于python - 尝试使用 CV2 从网络摄像头捕获视频时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62785443/

相关文章:

opencv - 查找颜色的精确 HSV 值

linux - 来 self 廉价的中国 IP 网络摄像头的 JPEG 流是什么格式?

Python日期字符串格式

python - 不同屏幕上的 cv2.imshow()

python - openCv captureFromCam内存泄漏?

php - 用于网站实现的网络摄像头图像流

macos - 将屏幕变成虚拟网络摄像头

python - 用于生成音频文件的好 python 库?

python - ctypes.pointer、ctypes.POINTER 和 ctypes.byref 之间有什么区别?

python - python 套接字对 EINTR 有什么作用?