位置: IT常识 - 正文

这年头还不来尝试线稿图视频??(这年头不好混图片)

编辑:rootadmin
这年头还不来尝试线稿图视频??

推荐整理分享这年头还不来尝试线稿图视频??(这年头不好混图片),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:这年头没有钱歌曲视频,这年头dj,这年头没有钱歌曲视频,这年头没有钱歌曲视频,这年头dj,这年头谁还没点故事,这年头谁还没点故事,这年头没有钱原唱,内容如对您有帮助,希望把文章链接给更多的朋友!

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

🥰 博客首页:knighthood2001

😗 欢迎点赞👍评论🗨️

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

先看后赞,已成习惯😁👍👍(只截取了一部分,怕截取太多,你们打开卡)

目录

前言

1原始视频逐帧提取.py

2原始视频音频提取.py

3-1PIL批量转换细节帧线稿图.py

3-2PIL批量转换边缘增强线稿图.py

4PIL帧-视频合成.py

5音视频合成最终有声完整视频.py

总结


前言

入门opencv,欢笑快乐每一天

大致思路和上篇文章的类似,这里采用了opencv+PIL+moviepy,最终制作了线稿图的带声音的MP4。

这里我讲了一些关于PIL的知识:利用PIL库进行简单的图像操作,隔壁打王者的小孩子都在向我要素描图,快上车!!

目录如下:需要准备一个视频

代码主要分成以下几个部分:

        1原始视频逐帧提取

这年头还不来尝试线稿图视频??(这年头不好混图片)

        2原始视频音频提取

        3-1PIL批量转换细节帧线稿图  3-2PIL批量转换边缘增强线稿图

        4PIL帧-视频合成

        5音视频合成最终有声完整视频

注:需要更改的,笔者已经在代码中注释todo了。

1原始视频逐帧提取.pyimport osimport cv2# todocap = cv2.VideoCapture('ikun.mp4')fps = cap.get(cv2.CAP_PROP_FPS)width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)print('fps:', fps, '\n', 'width:', width, '\n', 'height:', height, '\n', 'frames:', frames)# todopath = 'ikun'if not os.path.exists(path): os.mkdir(path)i = 0while True: flag, frame = cap.read() filename = path + '/{}.jpg'.format(str(i)) print(filename) cv2.imwrite(filename, frame) i = i + 1 if i > int(frames): break

        在上篇文章中,笔者是直接将原始视频提取的帧继续边缘检测处理后保存为图片,而在这里,笔者就直接提取原视频的帧并不做修改保存。便于后续操作。 

2原始视频音频提取.pyimport moviepy.editor as mpdef extract_audio(videos_file_path): my_clip = mp.VideoFileClip(videos_file_path) my_clip.audio.write_audiofile(f'{videos_file_path.split(".")[0]}.mp3')# todoextract_audio('ikun.mp4')3-1PIL批量转换细节帧线稿图.pyimport osfrom PIL import Imagefrom PIL import ImageFilter# todo 这里的path为之前逐帧提取的图片,new_path为新生成的线稿图保存的目录path = 'ikun'new_path = 'new_ikun1'if not os.path.exists(new_path): os.mkdir(new_path)# 输出原始目录图片数量a = os.listdir(path)b = len(a)print("原始目录图片数:", b)for i in range(b): '''细节''' square = Image.open(path + "/{}.jpg".format(i)) square1 = square.filter(ImageFilter.DETAIL) '''轮廓''' square2 = square1.filter(ImageFilter.CONTOUR) square2.save(new_path + "/{}.jpg".format(i)) print(new_path + "/{}.jpg".format(i))

这里笔者采用了PIL中细节+轮廓的方式,提取线稿图(PIL提取线稿图,需要有轮廓这一步骤)

图片变化展示

3-2PIL批量转换边缘增强线稿图.pyimport osfrom PIL import Imagefrom PIL import ImageFilter# todo 这里的path为之前逐帧提取的图片,new_path为新生成的线稿图保存的目录path = 'ikun'new_path = 'new_ikun2'if not os.path.exists(new_path): os.mkdir(new_path)# 输出原始目录图片数量a = os.listdir(path)b = len(a)print("原始目录图片数:", b)for i in range(b): '''边缘增强''' square = Image.open(path + "/{}.jpg".format(i)) square1 = square.filter(ImageFilter.EDGE_ENHANCE) '''轮廓''' square2 = square1.filter(ImageFilter.CONTOUR) square2.save(new_path + "/{}.jpg".format(i)) print(new_path + "/{}.jpg".format(i))

同样的,笔者在这里只换了PIL的一个函数,采用边缘增强+轮廓的方式,大家可以去我之前博客看看,大家也可以自行去尝试,试出多种风格。

 利用PIL库进行简单的图像操作,隔壁打王者的小孩子都在向我要素描图,快上车!!

图片变化展示:

 

(不知道为啥,感觉这个更好看)

4PIL帧-视频合成.pyimport cv2import ossize = (854, 480)# todo path和保存的视频名称需要根据变化path = 'new_ikun1'videowrite = cv2.VideoWriter('output_ikun1.mp4', -1, 25, size)a = os.listdir(path)n = len(a)for i in range(n): img = cv2.imread(path + "/{}.jpg".format(i)) videowrite.write(img)videowrite.release()print('end!')5音视频合成最终有声完整视频.pyimport moviepy.editor as mp# todo 路径都要看情况变化# todo 传入的线稿图视频video = mp.VideoFileClip('output_ikun1.mp4')audio = mp.AudioFileClip('ikun.mp3')video_merge = video.set_audio(audio)# todo 最终生成的带音频的视频video_merge.write_videofile('final_ikun1.mp4')# video = mp.VideoFileClip('output_ikun2.mp4')# audio = mp.AudioFileClip('ikun.mp3')# video_merge = video.set_audio(audio)# video_merge.write_videofile('final_ikun2.mp4')

注:4和5都只是根据3-1的线稿图内容进行制作视频

总结

        大致上已经讲完了,大家对这篇文章里面内容不熟悉的,可以看我前一篇文章,里面有详细讲解。

        接下来如果有空的话就会将其改为函数,方便大家更改与使用!!

        注:以上内容只是用来探讨🐔技术,方便大家对其产生兴趣!!

本文链接地址:https://www.jiuchutong.com/zhishi/298848.html 转载请保留说明!

上一篇:【JavaScript】DOM和事件简介和文档加载流程以及DOM查询(上)案例(附源码)(javascript bom dom)

下一篇:企微获取用户敏感数据(获取企业微信用户身份信息授权失败)

  • 网络连接不可用什么原因(网络连接)(网络连接不可用-1009)

    网络连接不可用什么原因(网络连接)(网络连接不可用-1009)

  • 华为p40截屏有几种方法(华为p40屏幕截图)

    华为p40截屏有几种方法(华为p40屏幕截图)

  • 微信界面黑色怎么设置成白色(微信界面黑色怎么办)

    微信界面黑色怎么设置成白色(微信界面黑色怎么办)

  • 数据主体的权利有哪些(数据主体的权利 不受制于自动化决策)

    数据主体的权利有哪些(数据主体的权利 不受制于自动化决策)

  • 默认的工作薄文件名是(默认工作薄文件名是什么?)

    默认的工作薄文件名是(默认工作薄文件名是什么?)

  • 表格不能上下移动(表格不能上下移怎么设置)

    表格不能上下移动(表格不能上下移怎么设置)

  • 华为p40pro超级微距怎么打开(华为p40pro超级微距)

    华为p40pro超级微距怎么打开(华为p40pro超级微距)

  • 为什么qq电话打着就自动挂了(为什么qq电话打过去直接秒挂)

    为什么qq电话打着就自动挂了(为什么qq电话打过去直接秒挂)

  • 天猫魔盒没有遥控器怎么办(天猫魔盒没有遥控器怎么联网)

    天猫魔盒没有遥控器怎么办(天猫魔盒没有遥控器怎么联网)

  • 为什么交了话费手机还是没网络(为什么交了话费宽带还是不能用)

    为什么交了话费手机还是没网络(为什么交了话费宽带还是不能用)

  • oppor9能不能设置自动关机(oppo r9设置)

    oppor9能不能设置自动关机(oppo r9设置)

  • 红米7a有没有呼吸灯(红米7a怎么使用)

    红米7a有没有呼吸灯(红米7a怎么使用)

  • imei imsi权限是什么意思(im权限是啥)

    imei imsi权限是什么意思(im权限是啥)

  • 三合一打印机是什么意思(3合一打印机哪款好)

    三合一打印机是什么意思(3合一打印机哪款好)

  • 苹果11跟苹果11pro的区别(苹果11跟苹果11pro屏幕一样吗)

    苹果11跟苹果11pro的区别(苹果11跟苹果11pro屏幕一样吗)

  • 栅格化图层是什么意思(栅格化图层样式怎么弄)

    栅格化图层是什么意思(栅格化图层样式怎么弄)

  • 华为荣耀v30卡槽怎么打开(华为荣耀v30卡槽在哪里)

    华为荣耀v30卡槽怎么打开(华为荣耀v30卡槽在哪里)

  • 燃气壁挂炉mod什么意思(壁挂炉上的mod)

    燃气壁挂炉mod什么意思(壁挂炉上的mod)

  • 如何退滴滴优惠券(如何退滴滴优惠劵)

    如何退滴滴优惠券(如何退滴滴优惠劵)

  • 蓝牙耳机怎样两个分开使用(蓝牙耳机怎样两个都响)

    蓝牙耳机怎样两个分开使用(蓝牙耳机怎样两个都响)

  • 苹果x绿屏闪烁怎么处理(苹果x绿屏闪烁后又好了)

    苹果x绿屏闪烁怎么处理(苹果x绿屏闪烁后又好了)

  • 手机热点资讯怎么打开(手机热点资讯怎么关掉)

    手机热点资讯怎么打开(手机热点资讯怎么关掉)

  • 华为mate20安全模式怎么解除(华为mate20安全系统)

    华为mate20安全模式怎么解除(华为mate20安全系统)

  • 大数据平台是什么(大数据平台是什么岗位)

    大数据平台是什么(大数据平台是什么岗位)

  • 什么是税额和计税金额
  • 代扣代缴个人所得税有滞纳金吗
  • 经营性应付项目的增加怎么计算
  • 增值税不含税销售额怎么计算
  • 现金流量表中购建固定资产怎么计算
  • 企业所得税季报弥补以前年度亏损怎么填
  • 以前年度损益调整会计分录
  • 度假村功能
  • 肉联厂销售模式
  • 统借统还资金管理办法
  • 计划成本法委托加工物资例题
  • 工程款的税是怎么扣除的?
  • 亏损企业研发费加计扣除可以递延吗
  • 农产品加计扣除政策2023最新
  • 公司对公银行账户可以注销吗
  • 投资公司收回投资款
  • 核定征收金额如何确定
  • 商业承兑汇票适用于
  • 企业上月份销售收入在本月份发生销售折让时
  • 存货跌价准备转销
  • w11怎么更新
  • 小规模本月应交增值税次月交可以不计提吗
  • 香港企业股东分红税
  • 公司买了一辆二手汽车,怎么入账
  • win11发布时间正式确定
  • 应付债券包括
  • php更新数据
  • PHP:__halt_compiler()的用法_misc函数
  • PHP:mcrypt_enc_get_modes_name()的用法_Mcrypt函数
  • 公司的利润交税之前不可能叫做什么
  • 君子兰的养殖方法
  • php验证码显示不出来
  • 以前年度未入账固定资产账务处理
  • 现金折扣成本变动额
  • 特定业务计算的应纳税所得额是指
  • php面向对象是什么意思
  • 能用javascript 最终
  • ai与自动化有什么区别
  • Diffusion models代码实战:从零搭建自己的扩散模型
  • php二维数组foreach
  • 增值税的税目和税率
  • phpcms任意文件上传
  • 出口退税转内销还是转免税好
  • 零申报未申报可以不处罚吗
  • 货物样品出口
  • 收到的现金折扣
  • 建筑工程机械费用标准
  • 收到政府补贴如何入账
  • 固定资产计提折旧的原则
  • 销售折扣销货方式有哪些
  • 营业外支出为负数原因
  • 安装sql server 2008硬件要求
  • sql server获取字段长度
  • sqlserver2005网络配置里没有东西
  • mongodb与mysql相比的优缺点
  • win7清理系统垃圾的方法
  • mac怎么看文件
  • macbook怎么开hdr
  • shell 日期运算
  • centos怎么设置
  • win8怎么设置
  • win7系统怎么设置桌面便签
  • 笔记本接外设
  • win10预览体验win11
  • cocos2dx开发的游戏
  • Windows设置在哪里
  • linux 搜索文件
  • css划动
  • vue组件的使用步骤
  • activate webstorm
  • 查看项目层级结构怎么查
  • unity3d赛车游戏毕业设计
  • js入门基础教程
  • 安卓端测试
  • 税务师事务所行政登记表怎么办理
  • 成品油和非成品油的税务知识
  • 北京市国家税务局发票查询平台
  • 青椒课堂怎么激活登录
  • 工业厂房房产税什么时候开始征收
  • 税务数字证书怎么下载安装
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设