python人物视频背景替换实现虚拟空间穿梭的方法(python,开发技术)

时间:2024-05-04 15:19:20 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

这篇文章主要介绍“python人物视频背景替换实现虚拟空间穿梭的方法”,在日常操作中,相信很多人在python人物视频背景替换实现虚拟空间穿梭的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python人物视频背景替换实现虚拟空间穿梭的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

准备工作

在实现该功能之前,我们需要准备好python==3.7 然后执行:

pipinstallmediapipe

方案一: PC端可以选择外界摄像头或者连接网络摄像头,最好挑选一个纯属的背景板作为视频画面背景(这样有利于任务分割);

方案二: 网上下载有人物活动的视频,然后用下载的视频替代连接摄像头。

到这里我们基础物件已经搭建好了,本实验代码选择方案二,对下载视频分析,其shape=(740,640,3)。接下来我将带领大家实现三个版本的背景替换

纯RGB背景替换

基础板:将人物提取出来,替换成设定好的纯色背景(可以通过RGB设定)。其基本流程如下:

1. 输入视频

2. 获取视频帧

3. 提取帧内人物图像

4. 设定背景RGB值

5. 创建同视频帧同shape的RGB图像

6. 结合背景图与人物图

7. 输出结合图

示例demo:

importcv2importmediapipeasmpimportnumpyasnpmp_drawing=mp.solutions.drawing_utilsmp_selfie_segmentation=mp.solutions.selfie_segmentationBG_COLOR=(0,0,225)#redcap=cv2.VideoCapture('111.mp4')withmp_selfie_segmentation.SelfieSegmentation(model_selection=0)asselfie_segmentation:bg_image=Nonewhilecap.isOpened():success,image=cap.read()ifnotsuccess:breakimage=cv2.cvtColor(cv2.flip(image,1),cv2.COLOR_BGR2RGB)image.flags.writeable=Falseresults=selfie_segmentation.process(image)image.flags.writeable=Trueimage=cv2.cvtColor(image,cv2.COLOR_RGB2BGR)condition=np.stack((results.segmentation_mask,)*3,axis=-1)>0.8ifbg_imageisNone:bg_image=np.zeros(image.shape,dtype=np.uint8)bg_image[:]=BG_COLORprint(bg_image.shape)output_image=np.where(condition,image,bg_image)cv2.imshow('MediaPipeSelfieSegmentation',output_image)ifcv2.waitKey(5)&0xFF==27:breakcap.release()

原视频节选帧&替换背景帧:

python人物视频背景替换实现虚拟空间穿梭的方法

python人物视频背景替换实现虚拟空间穿梭的方法

自定义图像背景板替换

由于我们已知图像的shape,我们可以在网上挑选自己喜欢的背景图,然后调整背景图的shape,使其与视频图像保持一致。整体流程图下:

1. 下载选择喜欢的背景图像

2. 调整下载图像的shape=(740,604,3)

3. 读取视频

4. 获取视频帧

5. 获取视频帧内人物图像

6. 结合背景图和人物图像

7. 输出视频画面

修改图像大小并进行50%缩放后的背景图:

python人物视频背景替换实现虚拟空间穿梭的方法

背景图结合人物图:

python人物视频背景替换实现虚拟空间穿梭的方法

这里我的背景图选择的有些单调,也不是那么适合,望读者见谅! 代码部分修改:

bg_image=cv2.imread("BBB.jpg")
若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
本文:python人物视频背景替换实现虚拟空间穿梭的方法的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:uni-app如何配置APP自定义顶部标题栏下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18