MoviePy - 中文文档4-MoviePy实战案例-追踪人脸,打马赛克

回到目录

追踪人脸,打马赛克

首先,我们需要先追踪到人脸,即,获得两个函数fxfy就像(fx(t), fy(t))获得某时刻t脸的中心的坐标,通过manual_tracking,这个功能很快就实现了。然后我们就需要把脸的中心为半径的一部分区域做模糊化处理。

import pickle

from moviepy.editor import *
from moviepy.video.tools.tracking import manual_tracking, to_fxfy


# 加载clip,截取一个卓别林电影的6‘51-7’01之间的片段
clip = VideoFileClip("../../videos/chaplin.mp4").subclip((6,51.7),(7,01.3))

# 手动跟踪标记头部

# 下面的三行代码,手动跟踪,然后把结果保存进文件,应该在一次运行之后就完成量跟踪标记
# 注意:我们保存的格式是一个(ti,xi,yi)list,不是函数fx和fy

#txy, (fx,fy) = manual_tracking(clip, fps=6)
#with open("../../chaplin_txy.dat",'w+') as f:
#    pickle.dump(txy)



# 已经完成手动跟踪人脸并标记的情况下
# fx(t),fy(t)的形式加载跟踪标记的数据

with open("../../chaplin_txy.dat",'r') as f:
    fx,fy = to_fxfy( pickle.load(f) )


# 在clip中,模糊卓别林的头部

clip_blurred = clip.fx( vfx.headblur, fx, fy, 25)


# 生成文本,灰色背景

txt = TextClip("Hey you ! \n You're blurry!", color='grey70',
               size = clip.size, bg_color='grey20',
               font = "Century-Schoolbook-Italic", fontsize=40)
               
               
# 把卓别林的vedio clip和TextClip连接起来,添加audio clip

final = concatenate_videoclips([clip_blurred,txt.set_duration(3)]).\
          set_audio(clip.audio)

# 将比特率修改为3000k是为了画面不至于太丑

final.write_videofile('../../blurredChaplin.avi', bitrate="3000k")

一起交流,一起进步,群内提问答疑

QQ群:MoviePy中文 :819718037

回到目录

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ucsheep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值