视频会议背景反转器

2024-05-14 17:25:18 发布

您现在位置:Python中文网/ 问答频道 /正文

任务: 我想开发一个程序,当视频会议参与者使用虚拟背景时,可以恢复其“真实”背景。Teams/Zoom and Co.的虚拟背景可以很好地识别人物的轮廓。只有人的边缘的小区域(见下面的红色箭头)可以看到真实的背景

Image with the red arrows

由于视频会议中的人总是移动一点,因此这些区域也会在图像中移动。待开发的程序应在视频会议期间“收集”这些区域,以便一点一点地完成真实背景。 该程序应在Windows 10上可执行,并用python编写

创意 我没有办法实施这个项目。我的想法是删除虚拟背景,用“真实”背景分离区域,并与先前保存的图像统一。最后,图像显示为Teams/Zoom中的背景

目前我有以下代码。在那里,虚拟背景被删除,任何图像都可以设置为背景。(到目前为止,我还没有Python方面的经验。)

import cv2
import cvzone
from cvzone.SelfiSegmentationModule import SelfiSegmentation

cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
cap.set(cv2.CAP_PROP_FPS, 60)
segmentor = SelfiSegmentation()
fpsReader = cvzone.FPS()
imgBg = cv2.imread('backgrounds/1.png')

while True:
    success, img = cap.read()
    imgOut = segmentor.removeBG(img, imgBg, threshold=0.42)

    imgStacked = cvzone.stackImages([img, imgOut], 2, 1)
    fps, imgStacked = fpsReader.update(imgStacked)

    cv2.imshow("image", imgStacked)
    cv2.waitKey(1)

问题 我不知道如何过滤掉背景中的“真实”部分并将它们组合在一起。有人有办法吗

如果您有任何问题或需要更多信息,请告诉我。非常感谢。:)


Tags: 图像import程序区域imgcv2cap背景

热门问题