我的编程空间,编程开发者的网络收藏夹
学习永远不晚

线稿图视频制作补充(调整视频亮度、对比度;删除无用文件)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

线稿图视频制作补充(调整视频亮度、对比度;删除无用文件)

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 

🥰 博客首页:knighthood2001

😗 欢迎点赞👍评论🗨️

❤️ 热爱python,期待与大家一同进步成长!!❤️

目录

一、整合视频

二、删除无用文件(视频帧图片)

三、视频亮度调暗

四、对比度调整

五、全部代码展示

六、总结


之前内容(建议看一下) 

这年头还不来尝试线稿图视频??https://blog.csdn.net/knighthood2001/article/details/126175764?spm=1001.2014.3001.5502线稿图视频制作--从此短视频平台不缺上传视频了https://blog.csdn.net/knighthood2001/article/details/126912547?spm=1001.2014.3001.5502

一、整合视频

        目前文件夹比较清晰vedio文件夹中是经过线稿图转换前后的视频,data文件夹是代码运行过程中,线稿图制作过程中产生的相应的文件。

代码更改如下:

lj = 'vedio/'file = 'bang.mp4'filename = file.split(".")[0]mp3_file = f'{filename}.mp3'if not os.path.exists('vedio'):    os.mkdir('vedio')

  lj表示路径(/别忘了),

cap = cv2.VideoCapture(lj + file)
# 音频提取def extract_audio():    my_clip = mp.VideoFileClip(lj + file)    my_clip.audio.write_audiofile('data/' + mp3_file)
    video_merge.write_videofile(lj + 'final_' + b + '.mp4')

 读取视频、音频提取和最终视频合成的时候,需要多这个路径。

二、删除无用文件(视频帧图片)

import osdef deldir(dir):    if not os.path.exists(dir):        print('{}(路径)无内容'.format(dir))        return    if os.path.isfile(dir):        os.remove(dir)        return    for i in os.listdir(dir):        t = os.path.join(dir, i)        if os.path.isdir(t):            deldir(t)        else:            os.unlink(t)    os.removedirs(dir)    print('{}已删除'.format(dir))

构建一个这样的函数,从而把不需要的文件删除,后续只需要调用即可

deldir('data/gougou')deldir('data/gougou_newpc')deldir('data/silence_dindin.mp4')deldir('data/dindin.mp3')deldir('data/dindin')# 删除不用的图片和视频deldir(path)# deldir(new_picture_path)deldir(file_name)

三、视频亮度调暗

from moviepy.editor import *clip = VideoFileClip(r"final_gougou1.mp4")clipColorx = clip.fx(vfx.colorx, 0.5)clipColorx.write_videofile(r"gougou2.mp4")

首先传入视频,如何更改上面的参数(0.5可以换成其他的,当它小于1,表示调暗,大于1表示调亮),最后将亮度变化的视频保存即可。

四、对比度调整

import moviepy.video.fx.lum_contrastfrom moviepy.editor import *# 对比度调整clip = VideoFileClip(r"vedio/gougou.mp4")a = moviepy.video.fx.lum_contrast.lum_contrast(clip, contrast=0.3, contrast_thr=127)a.write_videofile(r"gougou13.mp4")

我们可以调整contrast参数

def lum_contrast(clip, lum = 0, contrast=0, contrast_thr=127):    """ luminosity-contrast correction of a clip """    """剪辑的亮度对比度校正"""        def fl_image(im):        im = 1.0*im # float conversion        corrected = im + lum + contrast*(im-float(contrast_thr))        corrected[corrected < 0] = 0        corrected[corrected > 255] = 255        return corrected.astype('uint8')        return clip.fl_image(fl_image)

这是lum_consrast()函数代码。

五、全部代码展示

        注意:调整视频亮度、对比度不在代码里面

import osimport cv2from PIL import Imagefrom PIL import ImageFilterimport moviepy.editor as mplj = 'vedio/'# TODO 更改文件名称file = '1.mp4'filename = file.split(".")[0]mp3_file = f'{filename}.mp3'if not os.path.exists('vedio'):    os.mkdir('vedio')if not os.path.exists('data'):    os.mkdir('data')path = os.path.join('data', filename)new_picture_path = os.path.join('data', filename + "_newpc")if not os.path.exists(path):    os.mkdir(path)if not os.path.exists(new_picture_path):    os.mkdir(new_picture_path)# 无声视频file_name = os.path.join('data', 'silence_' + file)cap = cv2.VideoCapture(lj + file)fps = int(cap.get(cv2.CAP_PROP_FPS))width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))print('fps:', fps, '\n', 'width:', width, '\n', 'height:', height, '\n', 'frames:', frames)for i in range(0, frames):    flag, frame = cap.read()    filename = path + '/{}.jpg'.format(str(i))    print(filename)    cv2.imwrite(filename, frame)# 音频提取def extract_audio():    my_clip = mp.VideoFileClip(lj + file)    my_clip.audio.write_audiofile('data/' + mp3_file)# 原图-线稿图转换def convert():    for i in range(0, frames):        '''细节'''        square = Image.open(path + "/{}.jpg".format(i))        square1 = square.filter(ImageFilter.DETAIL)        '''轮廓'''        square2 = square1.filter(ImageFilter.CONTOUR)        square2.save(new_picture_path + "/{}.jpg".format(i))        print(new_picture_path + "/{}.jpg".format(i))# 原图-线稿图转换(边缘增强)def convert_edge():    for i in range(0, frames):        square = Image.open(path + "/{}.jpg".format(i))        square1 = square.filter(ImageFilter.EDGE_ENHANCE)        '''轮廓'''        square2 = square1.filter(ImageFilter.CONTOUR)        square2.save(new_picture_path + "/{}.jpg".format(i))        print(new_picture_path + "/{}.jpg".format(i))# 生成无声视频def picture_merge():    size = (width, height)    videowrite = cv2.VideoWriter(file_name, -1, fps, size)    for i in range(0, frames):        img = cv2.imread(new_picture_path + "/{}.jpg".format(i))        videowrite.write(img)    videowrite.release()    print('end!')# 最终合成有声视频def final_merge():    video = mp.VideoFileClip(file_name)    audio = mp.AudioFileClip('data/' + mp3_file)    video_merge = video.set_audio(audio)    # todo 最终生成的带音频的视频    b = file.split(".")[0]    video_merge.write_videofile(lj + 'final_' + b + '.mp4')# 删除不要文件def deldir(dir):    if not os.path.exists(dir):        print('{}(路径)无内容'.format(dir))        return    if os.path.isfile(dir):        os.remove(dir)        return    for i in os.listdir(dir):        t = os.path.join(dir, i)        if os.path.isdir(t):            deldir(t)        else:            os.unlink(t)    os.removedirs(dir)    print('{}已删除'.format(dir))if __name__ == '__main__':    extract_audio()    convert()    # convert_edge()    picture_merge()    final_merge()    # 删除不用的图片和视频    # deldir(path)    # # deldir(new_picture_path)    # deldir(file_name)

六、总结

        线稿图视频制作到目前应该就算完结了。感兴趣的可以去试试。

        笔者源代码也发了,希望能支持一下,给个关注!!

        👀赶紧来刷题学习,巩固基础吧👀

来源地址:https://blog.csdn.net/knighthood2001/article/details/126957085

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

线稿图视频制作补充(调整视频亮度、对比度;删除无用文件)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录