python的head函数输不出数据_moviepy音视频剪辑:headblur函数遇到的ValueError assignment destination is read-only问题及解决办法...

在Python 3.7、moviepy 1.0.3和numpy 1.19.0环境中,使用moviepy的headblur函数进行视频人脸跟踪模糊时出现'assignment destination is read-only'错误。该错误是由于numpy认为帧数组不可编辑。解决方案包括:1. 降低numpy版本至1.14.5并改变frame为可写;2. 对帧数据进行分段复制后再与模糊化部分拼接。文章详细介绍了这两种方法并推荐第二种方法。
摘要由CSDN通过智能技术生成

一、运行环境

运行环境如下:

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\

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值