Python 如何在MoviePy中向fl_图像添加参数?
据我所知,fl_image接受一个管道函数,该函数应该只接受一个图像,即。 processedClip=输入文件.fl\u图像(imagePipeline) 在哪里 def图像管道(img): 返回最终授权 但是如果我们的imagePipeline函数接受更多参数呢 i、 e def图像管道(img、arg1、arg2、arg3): 返回最终授权Python 如何在MoviePy中向fl_图像添加参数?,python,moviepy,Python,Moviepy,据我所知,fl_image接受一个管道函数,该函数应该只接受一个图像,即。 processedClip=输入文件.fl\u图像(imagePipeline) 在哪里 def图像管道(img): 返回最终授权 但是如果我们的imagePipeline函数接受更多参数呢 i、 e def图像管道(img、arg1、arg2、arg3): 返回最终授权 如何在fl_image中向imagePipeline添加参数?虽然这可能不是最佳解决方案,但您可以将任何参数设置为全局变量 例如: 我也遇到了同样
如何在fl_image中向imagePipeline添加参数?虽然这可能不是最佳解决方案,但您可以将任何参数设置为全局变量 例如:
我也遇到了同样的问题,并和同学们一起解决了
类处理图像:
定义初始化(self,arg1,arg2):
self.arg1=arg1
self.arg2=arg2
定义呼叫(自我,图像):
#任何你想要的过程
返回图像
clip=VideoFileClip('input.mp4')
final_clip=clip.fl_图像(ProcessImage(1,2))
最终剪辑。写入视频文件('output.mp4')
您可以使用lambda
技巧:
from moviepy.editor import VideoFileClip
def change_image(image, param):
return image + param
myparam = 1
modified_clip = (
VideoFileClip('/path/to/my/initial/clip')
.fl_image(lambda image: change_image(image, myparam))
)
您可以使用闭包(比类少一些样板):
functools.partial也会这样做。例如:
import functools
import cv2
blur5 = functools.partial(cv2.GaussianBlur,ksize=(5,5),sigmaX=0)
def mkproc(*args,*kw):
def fun(img):
#this code has access to args and kw
return img
return fun
final = clip.fl_image(mkproc("foo","bar",spam="eggs"))
import functools
import cv2
blur5 = functools.partial(cv2.GaussianBlur,ksize=(5,5),sigmaX=0)