用Python做一个戴口罩软件

新型冠状病毒的疫情牵动着全国人民的心,大家都想这个疫情能早一点的过去,大家都能走出家门,而不用蜗居在家中。虽然疫情很可怕,但是大家也要以乐观积极的心态去面对,今天,小编为大家带来了利用python来制作头像口罩的小软件,大家可以上传自己的头像,来为自己的头像添加一个小小的口罩。

先看一下展示图:

大家只需要上传自己的正面人脸头像,并选择自己喜欢的口罩样式,便可以制作头像口罩。下面就跟小编一起来了解一下程序是如何编写的吧。

01.核心思想

程序最核心的一个地方就是如何识别人脸,以及人脸中嘴部的位置。这里小编利用的是dlib库,该库下有Python可以直接调用dlib库进行面部模式识别,其中也包含了准度较高的人脸特征识别。

如上图所示,dlib的人脸关键点检测会检测人脸中的68个关键的部位,例如36-40检测的是人的左眼,而48-67检测的是人的嘴部。我们利用的就是dlib库进行嘴部位置的识别,然后确定嘴部的座标位置,以及嘴部面积的大小,方便我们后续对口罩的大小进行调整,程序如下图所示。

得到嘴部的位置和大小之后,接下来我们就是挑选我们喜欢的口罩,并调整口罩的大小,然后将口罩贴到人脸的嘴部位置,程序如下图所示。

上述程序中我们首先获取人脸中嘴部的位置和大小,然后通过PIL读入口罩图片,并根据嘴部的大小调整口罩的大小,然后将调整大小后的口罩贴到人脸嘴部的位置,并将最终的图片显示在软件中。

02.界面设计

上述我们完成了最为核心的部分,接下来的程序就是设计我们的软件,软件设计采用的是tkinter库,在软件界面中我们首先通过载入图片按钮来选择头像图片,然后通过四个不同的口罩按钮来选择不同的口罩类型,然后进行口罩的穿戴程序,并将最终的结果进行展示,部分程序如下所示。

上述的程序中,展示的是我们定义了一个标签,标签的图形是不同的口罩类型,然后通过标签绑定不同的事件,通过点击口罩,我们就可以为图像中的人脸佩戴不同形式的口罩。主要都是一些tk的控件布局,可以文末获取源码看一下。

以上就是小编为大家带来的口罩穿戴小软件,大家如果想进行拓展的话,可以考虑图像中有多个人俩的情况,以及如何调整口罩的位置来更加贴合人脸。

现在口罩是非常紧缺的资源,大家节约用口罩!也希望这次疫情早点过去,小编已经好久没有下楼了,家里的白菜都快吃完了。

目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章