Loading...
墨滴

傲天居士

2021/08/15  阅读:28  主题:默认主题

Anime

1. 图像风格处理

最近某音上的动漫特效特别火,很多人都玩动漫肖像。阿里云、腾讯云、百度云都有图像风格转化的平台,用户可以调用平台API实现图像的风格转化。此外,提到图像处理就不能不提到OpenCV。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上,能够实现图像处理和计算机视觉方面的很多通用算法。

图像动漫化通常需要四个步骤:

  1. 边缘检测;
  2. 将边缘检测得到的边缘以黑色的形式贴在原来的画上;
  3. 对贴了边缘的图进行双边滤波;
  4. 修改图像颜色的饱和度。

2. 视频风格处理

一天我在午休的时候突发奇想,既然视频是由一帧帧图片合成的,那么也可以赋予视频文件“动漫风格”,也就是给定任意的视频作为输入,经过一系列处理就可以输出“动画片”。于是我突然从床上坐起来,打开电脑进行操作。由于图像风格转化已经非常成熟,而且主要的编程语言是Python和MATLAB。这里我使用Python。

首先来讲解一下我的思路。对于任一视频,可以将其分解成一帧帧的图片,然后对图片进行转化,使其具有动漫风格。最后将具有动漫风格的图片合成视频。注意最终合成的视频没有声音。

为此,我确定了基本的操作步骤:

  1. 编写视频分解脚本(from video to image)
  2. 编写图像风格转化脚本(image animation)
  3. 编写视频合成脚本(from image to video)

因此我编写了3个脚本,分别执行视频分解、图片风格转化、视频合成。经过调试,项目能够成功将视频做成“动画片”。

3. 视频动漫化工具-Anime

然而每次执行视频动漫化操作总要打开pycharm,这样还是不太方便,因此我考虑设计一个集成上述功能的小工具,并命名为“Anime”。首先进行UI界面的设计,随后编写一个主文件GraphApp.py加载UI文件并调用已经写好的脚本。执行图像风格转化的Python脚本是anime.py, 执行视频合成的Python脚本是merge.py,它们在主文件GraphApp.py中被调用。用户的操作步骤如下:

  1. 准备好需要转化的视频文件。
  2. 启动程序,程序界面上方有按钮“清空”,用以清空选定的文件夹。清空完毕会提示“清空完毕!”。
  3. 弹出对话框,选择视频分解的存储路径及图像风格转化的保存路径。视频分解完成后会提示“视频分解成功!”图像转化后会提示“图片转化完毕!”。
  4. 弹出对话框,选择视频导出路径及文件名(这一步导出的视频没有声音)。目前支持MP4文件及AVI文件。导出完成会提示“视频合成成功!”
  5. 弹出对话框,选择视频导出路径及文件名(这一步为导出视频添加原始视频的音频)。导出完成会提示“视频成功添加音频!”

另外,目前版本的Anime运行效率比较低,后续会进一步优化。

Anime项目已经开源,发布在Gitee,项目地址:https://gitee.com/Wang-AoTian/Anime,欢迎star. 欢迎有想法的朋友前来交流,为Anime的正式诞生添砖加瓦!

傲天居士

2021/08/15  阅读:28  主题:默认主题

作者介绍

傲天居士