Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在应用程序中使用OpenCV视频_Python 3.x_Opencv - Fatal编程技术网

Python 3.x 在应用程序中使用OpenCV视频

Python 3.x 在应用程序中使用OpenCV视频,python-3.x,opencv,Python 3.x,Opencv,我希望创建一个程序,从两个不同的网络摄像头获取两个输入。然后,我希望使用这些视频中的一个作为输出,以便例如google meet或zoom能够显示它们。然后,如果我按s键,它将在这些视频之间切换。这部分我可以自己做 我需要的是一个命令“开关”,它应该在视频之间切换 我发现这些应用程序中没有一个可以获得这些视频 我正在使用Python 3.7(anaconda) 这是我的代码(我从中获得它,还请注意,我使用了四个空格,因为我不太熟悉在StackOverflow上提问): 所以我意外地找到了一个解决

我希望创建一个程序,从两个不同的网络摄像头获取两个输入。然后,我希望使用这些视频中的一个作为输出,以便例如google meet或zoom能够显示它们。然后,如果我按s键,它将在这些视频之间切换。这部分我可以自己做

我需要的是一个命令“开关”,它应该在视频之间切换

我发现这些应用程序中没有一个可以获得这些视频

我正在使用Python 3.7(anaconda)

这是我的代码(我从中获得它,还请注意,我使用了四个空格,因为我不太熟悉在StackOverflow上提问):


所以我意外地找到了一个解决方案:

  • 下载OBS-->它将创建一个虚拟摄像机
  • 下载(pip安装)pyvirtualcam(允许您使用OBS cam进行操作)
  • 现在,您可以使用以下模块向cam发送图片:

  • 你的意思是cv.imshow应该只显示所需的帧?不,不是那样。实际上,我的意思是视频应该通过缩放来使用,而不是通过cv.imshow在屏幕上显示。但是,例如,zoom应该只使用所需的视频。我知道,在discord或team中,您可以简单地选择要共享的窗口。对不起,我帮不上忙
    import cv2 as cv
    cap = cv.VideoCapture(0)
    cap2 = cv.VideoCapture(1)
    
    
    while True:
        ret, frame = cap.read()
        ret2, frame2 = cap2.read()
        # if frame is read correctly ret is True
        if not ret:
            print("Can't receive frame (stream end?). Exiting ...")
            break
        if not ret2:
            print("Can't receive frame2 (stream end?). Exiting ...")
            break
    
    
        # Display the resulting frame
        cv.imshow('frame', frame)
        cv.imshow('frame2', frame2)
        if cv.waitKey(1) == ord('q'):
            print("Exiting...")
            break
    
    
    cap.release()
    cv.destroyAllWindows()
    
    cam = pyvirtualcam.Camera(width=int(capture.get(3)), height=int(capture.get(4)), fps=30)
    cam.send(<Photo>)
    
    cam.sleep_until_next_frame()