发送到 pyvirtualcam 的网络摄像头输入为蓝色(使用 pyvirtualcam 和 opencv)
Posted
技术标签:
【中文标题】发送到 pyvirtualcam 的网络摄像头输入为蓝色(使用 pyvirtualcam 和 opencv)【英文标题】:Webcam input sent to pyvirtualcam is blue(using pyvirtualcam and opencv) 【发布时间】:2021-06-28 19:48:53 【问题描述】:我正在尝试使用 OpenCv 从我的网络摄像头获取输入,并使用 pyvirtualcam 将其发送到虚拟摄像头。出于某种原因,当我的网络摄像头显示时,它会给它一个蓝色滤镜。当我显示我的网络摄像头而不将其发送到虚拟摄像头时,没有过滤器,一切正常。
import pyvirtualcam
import cv2
cap = cv2.VideoCapture(0)
with pyvirtualcam.Camera(width=1280, height=720, fps=20) as cam:
while True:
ret_val, frame = cap.read()
frame = cv2.resize(frame, (1280, 720), interpolation=cv2.BORDER_DEFAULT)
# cv2.imshow('my webcam', frame)
cam.send(frame)
cam.sleep_until_next_frame()
if cv2.waitKey(1) == 27:
break # esc to quit
cv2.destroyAllWindows()
【问题讨论】:
请注意,OpenCV 按 BGR 顺序创建、使用、预期和发送图像,这与世界上几乎所有其他以 RGB 为标准的软件不同。习惯使用cv2.cvtColor(... cv2.COLOR_BGR2RGB)
。
谢谢,现在一切正常@MarkSetchell
【参考方案1】:
OpenCV 使用 BGR 作为像素格式。 pyvirtualcam 默认需要 RGB,但它也支持 BGR:
fmt = pyvirtualcam.PixelFormat.BGR
with pyvirtualcam.Camera(width=1280, height=720, fps=20, fmt=fmt) as cam:
【讨论】:
以上是关于发送到 pyvirtualcam 的网络摄像头输入为蓝色(使用 pyvirtualcam 和 opencv)的主要内容,如果未能解决你的问题,请参考以下文章
我想通过使用网络摄像头将捕获图像添加到我的 PyQt gui 窗口中,网络摄像头图像将出现在 gui 窗口中