又到一年樱花开。


武大学生用Python敲出樱花绽放 | 附源码_命令行


今年武汉大学的樱花依然开得灿烂,但受疫情影响,少了很多去赏花的朋友。


为了让大家看到樱花开放,各路高手纷纷亮出了自己的绝技。要说最秀的,当属用Python让樱花开放。



一时间,“武大学生代码敲出樱花开放”登上了热搜,阅读3.2亿、讨论3.8万,武汉大学、央视新闻等官号纷纷转发。


武大学生用Python敲出樱花绽放 | 附源码_ide_02




四个小时搞定,用代码为武汉加油


这位“武大学生”是武汉大学2017级信息管理与信息系统本科生朱永春,他用代码敲出的樱花开放作品系采用Python创作。

武大学生用Python敲出樱花绽放 | 附源码_python_03武大学生用Python敲出樱花绽放 | 附源码_python_04武大学生用Python敲出樱花绽放 | 附源码_ide_05樱花放大后是一个个的“武汉加油”

据悉,朱永春同学曾在武汉大学官方微博担任编辑,去年在参加由武汉大学官方微博策划开展的“樱花开放季-用专业向樱花表白”活动中,他就曾用Python创作出了“用代码画樱花树”,反响良好。

谈到这次创作,朱永春同学表示:“整个过程花了三四个小时,构思是以去年武汉大学官方微博发布的樱花初绽视频作为源视频,逐帧提取像素信息之后,再赋上由‘武汉加油’组成的新图片,而后重新拼接。”


这波神操作也得到了网友的一致认可,纷纷称赞朱永春同学太优秀:

武大学生用Python敲出樱花绽放 | 附源码_ide_06



见证奇迹的时刻,让武汉如樱花般绽放!


此外,为了能让大家在自己的电脑上实现樱花开放全过程,武大微博开源了代码,下面我们就动手亲自实现一下。首先我们看下项目结构 pic 文件夹下存放的是待处理的每帧图片,new 文件夹为处理后的图片,video 文件夹为生成的视频。

武大学生用Python敲出樱花绽放 | 附源码_python_07

主要用到的两个 Python 包,OpenCV,PIL,如有报错,通过 pip 安装对应的包即可。小编将关键步骤做了注释,下面简单介绍下每个脚本的用处。cv2.py 主要用来将视频帧保存为图片。

武大学生用Python敲出樱花绽放 | 附源码_ide_08

cv3.py 功能是用带颜色的文字将所有原始图片的像素替换,并保存到 new 文件夹下。

武大学生用Python敲出樱花绽放 | 附源码_ide_09

cv4.py 功能稍微复杂点,是用来将生成的图片重新合成视频。resort 函数用来重排图片,因为系统默认的排序可能会导致图片顺序错误,picvideo 函数将对应的图片循环写入视频。

武大学生用Python敲出樱花绽放 | 附源码_python_10

如果想制作自己的文字视频,将对应的视频放入 video 文件下,命名为 video.avi 的话,就不用修改代码了。

武大学生用Python敲出樱花绽放 | 附源码_ide_11

如果是其他格式视频,修改 OpenCV 的读取代码即可。

武大学生用Python敲出樱花绽放 | 附源码_ide_12

准备工作做好,在当前目录下打开命令行,windows 下用 Shift+右键即可看到。

武大学生用Python敲出樱花绽放 | 附源码_命令行_13

最后依次在命令行执行 python cv2.py,python cv3.py,python cv4.py。在 video 文件夹下就生成新视频了。来一起欣赏下这部樱花绽放为武汉加油的视频作品:




武大学生用Python敲出樱花绽放 | 附源码_ide_14