繁体   English   中英

OpenCV 找不到用于网络摄像头的 VideoCapture 或在 Windows 10 上显示

[英]OpenCV does not find VideoCapture for webcam or show on Windows 10

读取数据时不显示网络摄像头捕获

由于建议,我尝试将video_capture= cv2.VideoCapture()方法作为参数 0 和 700 作为参数,结果发生了:

  • 0 给出错误; CvCapture_MSMF::grabFrame videoio(MSMF):无法抓取帧。
  • 700 显示空白屏幕,仅填充第一行像素;
  • video_capture = cv2.VideoCapture(700)仅当我在 cv2.imshow("Capturing", gray) 处调试和断点时才有效。 屏幕显示网络摄像头视频的快照,但运行时显示以下图像;
  • 视频画面
  • 我已经在我的 mac 上尝试过使用相同的 python 文件,它运行得非常好。 我无法弄清楚 Windows 10 有什么问题。

========

import cv2

# Create an object. 700 for my external camera
video_capture = cv2.VideoCapture(700)
video_capture.set(cv2.CAP_PROP_FRAME_WIDTH,640)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT,480)

faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')


while True:

    ret, frame = video_capture.read()

    #Check if the video is being read
    if ret == False:
        print("Connection Failed!")
    else:

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

        faces = faceCascade.detectMultiScale(
            gray,
            scaleFactor=1.1,
            minNeighbors=5,
            minSize=(30, 30),
            flags=cv2.CASCADE_SCALE_IMAGE
        )

        # Draw a rectangle around the faces
        for (x, y, w, h) in faces:
            cv2.rectangle(gray, (x, y), (x+w, y+h), (0, 255, 0), 2)

        # Display the resulting frame
        cv2.imshow('Video', gray)
        
        if cv2.waitKey(1)==ord('e'):
            break

video_capture.release()
cv2.destroyAllWindows()

卡巴斯基似乎在终端运行代码上阻止了我的实时网络摄像头捕获,因此在我启用的 pycharm 上,使用 Python 控制台运行。 现在一切正常。 Pycharm 控制台配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM