使用mediapipe实现ikun表情包制作

简介: 使用mediapipe实现ikun表情包制作

前言


   前些日子做了一份人物图像提取,更改背景的代码,今天一时心血来潮忍不住把蔡某坤打篮球视频剪贴下来想着制作一个表情包来玩玩,这里涉及的关键技术点有两个如何完成视频融合,融合后如何制作gif。这两个技术点中较难点是视频融合,在本文中我将着重于如何进行视频融合,原理部分将不再过多阐述。


开始制作


   由 juejin.cn/post/712452… 可以得到将视频中的任务分离出来,然后进行替换背景。


准备素材:蔡某坤的《鸡你太美》视频一份、任意鸡叫视频一份、代码如下自取。


实验整体步骤:


  1. 将两份视频分帧存储;


  1. 对两份视频帧进行归一化处理(这里我选择的是size=1080x760);


  1. 参考上述链接中地址原理使用如下代码完成蔡某坤和鸡叫视频融合;


  1. 对融合后视频进行制作gif。


代码逻辑流程:


  1. 对视频帧按照播放顺序命名(1~无穷);


  1. 建立mediapipe检测人物网络;


  1. 构造 for 循环按照帧名进行读取;


  1. 读取含有ikun的人物帧;


  1. 转换bgr2rgb空间;


  1. 设定检测阈值进行ikun人物提取;


  1. 选择背景图(方式同3中一样)


  1. 进行人物和背景融合


  1. 展示融合后的画面


  1. 将融合后的画面制作成gif


import cv2
import mediapipe as mp
import numpy as np
mp_drawing = mp.solutions.drawing_utils
mp_selfie_segmentation = mp.solutions.selfie_segmentation
for i in range(1, 1201):
    image = cv2.imread('./3/%s.jpg' % i)
    with mp_selfie_segmentation.SelfieSegmentation(
            model_selection=0) as selfie_segmentation:
        bg_image = None
        image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
        image.flags.writeable = False
        results = selfie_segmentation.process(image)
        image.flags.writeable = True
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        condition = np.stack(
            (results.segmentation_mask,) * 3, axis=-1) > 0.5
        if bg_image is None:
            bg_image = cv2.imread('./5/%s.jpg' % i)
        output_image = np.where(condition, image, bg_image)
        cv2.imshow('MediaPipe Selfie Segmentation', output_image)
        cv2.imwrite("./4/%s.jpg" %i, output_image)
        if cv2.waitKey(5) & 0xFF == 27:
            break




相关文章
|
1月前
|
人工智能
怎么用Midjourney制作表情包
怎么用Midjourney制作表情包
36 0
|
1月前
|
编解码 监控 算法
如何使用Pillow库进行拍照和截屏
如何使用Pillow库进行拍照和截屏
29 0
|
3天前
|
存储 Python
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
27 0
|
4月前
|
XML 算法 计算机视觉
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
105 1
|
4月前
|
Python
Python制作gif表情包生成工具,斗图再也不会输啦
Python制作gif表情包生成工具,斗图再也不会输啦
|
7月前
|
C++ Python
QT+Python人脸表情特征识别
QT+Python人脸表情特征识别
69 0
QT+Python人脸表情特征识别
|
8月前
|
JSON API 数据格式
mxget 的Python实现,优雅地下载你喜欢的音乐
mxget 的Python实现,优雅地下载你喜欢的音乐
|
8月前
|
Python
技巧 | 一个以假乱真的Python库,我裂开了。。
技巧 | 一个以假乱真的Python库,我裂开了。。
|
11月前
|
小程序 网络安全
通过你的 gradio 和 摄像头获取照片和视频
通过你的 gradio 和 摄像头获取照片和视频
878 0
|
11月前
|
数据可视化
使用 ggpubr 包制图
使用 ggpubr 包制图
75 0