李佳琦|用Python帮小姐姐选口红,人人都是李佳琦

_原题是:用Python帮小姐姐选口红 , 人人都是李佳琦
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

对于李佳琦 , 想必知道他的女生要远远多于男生 , 李佳琦最早由于直播向广大的网友们推荐口红 , 逐渐走红网络 , 被大家称作“口红一哥” 。 不可否认的是 , 李佳琦的直播能力确实很强 , 他能够抓住绝大多数人的心理 , 让大家喜欢看他的直播 , 看他直播推荐的口红适不适合自己 , 色号适合什么样子的妆容 。
为了提升效率 , 让自己的家人或者女友能够快速的挑选出合适自己妆容的口红色号 , 今天带领大家利用Python来实现 , 如何快速挑选合适的口红色号 。
1
程序设计思路
这个程序的思路主要是利用人脸关键部位识别 , 然后识别出嘴唇的部位 , 然后进行图片替换 。
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

第一步:首先利用tkinter来选择自己的照片 , 并选择口红的色号 , 我们获得了选择照片的存储路径和选择的口红色号之后 , 程序将我们选择的色号由16进制转化为RGB形式;
第二步:利用face_recognition来读取选择的图片 , face_recognition是最简单的人脸识别的库 , 它可以检测人脸的关键点 , 包括眼睛、鼻子、上下嘴唇的位置等等信息 。 我们利用face_recognition识别图片中上下嘴唇的位置;
第三步:利用PIL库 , 将嘴唇的位置涂抹上我们选择的口红色号 , 然后将处理完的图片显示在界面上 , 就完成了我们整个程序的执行流程 。
2
动手撸代码
先来看一下设计的程序的界面 , 我用的是tk设计的 , 如果想用前端做的话也是可以的 , 换个壳子而已 。 首先 , 我们来看一下运行后的程序界面:
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

我们运行主程序 , 会弹出上面的界面 , 第一步是选择口红的色号 , 小伙伴们 , 可能会问 , 我不清楚口红的色号怎么办 , 别着急 , 小编给大家早就准备好了 ,小编为大家精心准备了迪奥、美宝莲、香奈儿、纪梵希等大牌厂家的不同系列的口红色号表格 , 如下图所示 , 大家只需要自己尽情选择就好 。
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

我们选择完口红的色号之后 , 就是点击“打开图片”选择我们本地的照片 , 并显示在“图片1”的显示框内 。
接着就是最重要的“选择口红”按钮 , 它会帮助我们识别图片中嘴唇的位置 , 然后涂抹上对应色号的照片 , 并将处理好的照片显示在“口红效果”的展示框中 。
3
关键源码解析
我们来看一下这一部分对应的源码吧
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

上述的程序中 , 主要完成了3个动作:

  • 分别对应了GUI界面中“打开图片”、“选择口红”和“退出软件”三个按钮的对应函数;
  • 其中choosePic函数用来上传并显示我们的本地图片;
  • 而showlioStickPic用来给我们的图片涂口红 , 并在界面上显示处理之后的照片;
  • quit就是处理tk界面的退出按钮
PutLipsticks函数完成了最为关键的操作 , 下面我们会一步讲解是如何处理的
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

【李佳琦|用Python帮小姐姐选口红,人人都是李佳琦】上述的程序中 , 首先程序需要将我们输入的16进制的色号转变为RGB的三通道格式 , 因为后续的函数中 , 不支持16进制的颜色表示方式 。 然后我们调用face_recognition来检测人脸的关键点 , 将我们的上下嘴唇涂上我们选择的口红颜色 , 并保存处理好的图片 , 返回保存的文件路径 。
以上就是我们的程序讲解 , 我们来看一下程序的执行效果到底如何吧 , 如下图所示:
李佳琦|用Python帮小姐姐选口红,人人都是李佳琦
文章图片

可以看到 , 我们利用不同的色号 , 为同一张图片进行了口红的试色 , 当然 , 大家可以按照自己的喜好 , 去更换口红的颜色 。
4
视频展示
说了这么多 , 小编录了一个视频 , 动态的展示程序的效果 , 大家一起来看一下 。
Python就是这么有趣 , 语法简单功能强大 , 凭借其巨大社区文化和成千上万的轮子库 , 把触角延伸到了各行各业里面 , 加上人工智能 , 5G时代的到来 , 应用的场景会越来越多!
输入框内发送【口红】获取源码 。 源码只是参考 , 需要自己安装一些库和环境适配才能运行 。


    推荐阅读