情人眼里出西施,我用Python帮你搞定了!

情人节就要到了,不知道大家都准备了什么礼物呢?情人之间送礼,追求的是心意,今天小编就带领大家做一个程序员情人节专属礼物-《我的眼里只有你》,如下如所示:

图片来源:全民小视频

大家仔细观察,图片中的男主眼中是不是全部都是女主啊,当然,单纯的图片不能够表达出诚意,因此小编为大家带来的是视频的制作,下面就跟着小编一起来学习吧。

01

识别眼部位置

首先,我们应该搞清楚,对于一张图片,我们应该如何来甄别图片中眼部的位置信息呢,这里我们用到的是dlib函数库,利用dlib函数库,我们可以定位图片中眼睛的位置,有了眼部的位置,我们只需要将女主的照片贴到眼睛的位置就大功告成了。程序如下图所示。

核心的代码其实不负责,小编来给大家一一解读一下:

  • 程序中我们首先读取图片,判断左眼的坐标位置;

  • 然后根据左眼的坐标位置判断眼睛的大小,并将女主的图片调整成合适的大小,为了更加贴合人眼珠圆形的特征,我们将女主的图片改成圆形;

  • 然后将改完的圆形图片贴到原图当中,就完成了左眼的操作,而右眼的操作与左眼完全相同。

这就实现了针对于一幅图的操作,针对于视频,我们只需要对其进行逐帧的读取操作即可。

02

逐桢读取,还原声音

上面我们是将每一张图片的人眼中都贴上了女主的照片,但是我们得到的全部都是图片,我们最终需要得到的是视频,而且更为关键的一点是,我们逐帧读取的图片中,将声音信息完全丢失掉了,这是我们非常忌讳的。接下来我们就需要将图片拼接成视频,并且将视频中的声音进行还原。程序如下图所示。

  • 上述程序中,我们首先读取所有处理好的图片,并按照顺序进行排序

  • 然后利用opencv库进行视频的拼接工作,将一幅幅的图片拼接成视频;

  • 最后利用moivepy库来将原视频中的音频信息放入到我们新拼接好的视频当中,便完成了我们整个的操作流程。

一起来看一下视频

本视频来源:全民小视频

最后,小编为大家展示一下该程序的使用方法,大家只要在程序中指定好各个路径,即可在最后的程序根目录下获得我们的视频结果,如下图所示。

以上就是小编为大家带来的情人节福利,大家也赶快动起手来,制作自己的情人节专属礼物吧。

需要源码,后台输入:情人节

点击查看优质单身小姐姐

近期热门:

高手心得|菜鸟学Python从入门到进阶

干货来了!菜鸟入门最经典的机器学习项目,面试必考!

400多人做过的8道Python极速入门题

 点击阅读原文,阅读菜鸟学Python 400篇干货!