如何将cv2 capture应用于其他应用程序的实际相机?比如google meet,我想用cv2在我的相机上应用特效来吸引我的老师,我已经有了我想要的特效,但现在我不知道如何将它应用到我的实际相机上。
发布于 2021-01-21 11:38:16
为此,您需要创建一个假相机
对于Windows:您可以使用一个名为pyvirtualcam的模块
您必须使用pip安装它。
现在我们必须创建一个假摄像头,为此你必须去this link下载OBS-VirtualCamversion.zip
将其解压缩并导航到\ and您的计算机的bittedness
打开该目录中的命令提示符,然后键入
regsvr32 /n /i:1 "obs-virtualsource.dll"
这将在您的计算机上注册一个假相机
现在,您可以使用pyvirtualcam向其发送帧
import pyvirtualcam
import numpy as np
with pyvirtualcam.Camera(width=1280, height=720, fps=30) as cam:
while True:
frame = np.zeros((cam.height, cam.width, 4), np.uint8) # RGBA
frame[:,:,:3] = cam.frames_sent % 255 # grayscale animation
frame[:,:,3] = 255
cam.send(frame)
cam.sleep_until_next_frame()
对于Linux:您可以使用pyfakewebcam
要创建一个假相机,你必须运行modprobe v4l2loopback devices=2
。这将创建2个假摄像头
然后你可以使用pyfakewebcam向它发送帧。
import time
import pyfakewebcam
import numpy as np
blue = np.zeros((480,640,3), dtype=np.uint8)
blue[:,:,2] = 255
red = np.zeros((480,640,3), dtype=np.uint8)
red[:,:,0] = 255
camera = pyfakewebcam.FakeWebcam('/dev/video1', 640, 480)
while True:
camera.schedule_frame(red)
time.sleep(1/30.0)
camera.schedule_frame(blue)
time.sleep(1/30.0)
https://stackoverflow.com/questions/64304588
复制相似问题