位置: 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)

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

  • 企业所得税研发费用加计扣除条件
  • 印花税不通过税金及附加核算
  • 工业企业提供劳务收入属于什么收入
  • 一般纳税人混凝土税率
  • 股东退股退本金及利润
  • 填专项扣除对个人还是公司受益
  • 发票认证当月必须抵扣吗
  • 自产自销的苗木怎么做账
  • 财务费用利息收入借方表示什么
  • 车辆抵押贷款怎么做
  • 印鉴变更手续费50元
  • 税务退进项税会计处理
  • 发生检测费用时怎么入账
  • 权益资本成本率计算
  • 计提固定资产减值准备属于什么支出
  • 买二手车年限久的会怎样
  • 所得税不能税前扣除项目
  • 增值税纳税申报表怎么填
  • 所得税申报填写
  • 一般纳税人减免的增值税怎么记账
  • 免税的普通发票怎么开
  • 加班工资算补贴么
  • 合同的情势变更是什么?
  • 关闭自动重新启动会怎样
  • php面向对象优点,缺点
  • 电梯安装包工头赚多少
  • 广告费和业务宣传费15%还是30%
  • 职工宿舍的折旧计入什么科目
  • 该内存不能为read怎么解决?win+r弹不出来也不好使
  • 小规模纳税人怎么申报增值税报表
  • 魅族路由器mini padavan
  • 图像分割最新算法
  • 西部大开发的主要政策措施是什么?
  • php遍历目录
  • 销售产品消费税计入什么科目
  • vue-element
  • 固定资产清理应交增值税怎么算
  • ps2021和cs6有什么区别
  • 城镇土地使用税优惠政策
  • mysql建表的完整步骤
  • 帝国cms首页调用显示标题图片代码
  • 税控发票如何入账
  • 收入和成本的原则是什么
  • PostgreSQL教程(十):性能提升技巧
  • 跨年租金如何确认收入
  • 会计调转回去还要继续教育吗
  • 月末进项税大于销项税额怎么结转
  • 资产负债表其他综合收益
  • 没有发票可以先付款吗
  • 限制性股票应纳税额的确定
  • 注册资本认缴与实缴有什么区别
  • 过路费发票可以抵扣进项税吗
  • 母子公司往来款属于借款吗
  • 押金退还需要多久
  • 700元打8折怎么算
  • 银行手续费发票未到怎样做账
  • 无形资产原值变更 摊销
  • 换工作时社保公积金怎么办
  • linux的简单使用
  • windows2008
  • win10一年更新几次
  • windows 10 mobile--移动版
  • win8磁盘分区
  • win8.1安装应用商店
  • win8电脑锁屏时间怎么设置方法
  • 基于socket的聊天程序
  • cocos如何实现跨平台
  • nodejs npm package.json中文文档
  • 监控网站是否可以删除
  • linux监控网络请求
  • shell脚本实现文件管理
  • javascript中函数
  • 仿淘宝源码
  • js处理时间
  • 深圳市财政上交广东省吗
  • 酒吧要交国税还是省税
  • 上海房产税免税面积怎么算
  • 苏州社保一卡通要充值吗
  • 统一社会信用代码证
  • 个体户 零申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设