一、运行环境
运行环境如下:
python版本:3.7
opencv-python版本:4.2.0.34
numpy版本:1.19.0
二、错误案例代码及报错信息
使用如下代码调用headblur进行人脸跟踪打马赛克:
if __name__ == '__main__':
movie_in = sys.argv[1]
if len(sys.argv) == 3: #参数指定的视频文件名
subclip_s = float(sys.argv[2]) #是否指定了只加载视频的前n秒,n为浮点数
else:
subclip_s = None
clip = VideoFileClip(movie_in)
if subclip_s is not None:
clip = clip.subclip(0, subclip_s)
tracking = moviepy.video.tools.tracking.manual_tracking(clip,0,3, fps=2)[0] #取返回的第一个跟踪对象,实际上nobjects使用的是默认值1,因此也就一个跟踪对象
clip_blurred = clip.fx(vfx.headblur, tracking.xi, tracking.yi, 30) #进行模糊化处理,圆半径设置为30像素
clip_blurred.write_videofile(movie_in + '_blurred_tofxfy.mp4')
报错信息如下:
"C:\Program Files\Python37\python.exe" F:/study/python/project/moviepyTest/moviepyTest.py F:\video\zbl1.mp4 4
Traceback (most recent call last):
File "F:/study/python/project/moviepyTest/moviepyTest.py", line 63, in
clip_blurred = clip.fx(vfx.headblur, tracking.xi, tracking.yi, 30) #进行模糊化处理,圆半径设置为30像素
File "C:\Program Files\Python37\lib\site-packages\moviepy\Clip.py", line 212, in fx
return func(self, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\moviepy\video\fx\