利用Python实现“亚洲四大邪术之首”:美颜功能

zhaobig 2018-11-12

开发工具

Python版本:3.5.4

相关模块:numpy模块;cv2模块;dlib模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

注1:

cv2即opencv-python模块。

注2:

dlib模块在anaconda3下可以直接pip安装,否则容易出错。相关文件中提供了编译好的python3.5版本的whl文件,供非anaconda3使用者安装使用。

利用Python实现“亚洲四大邪术之首”:美颜功能

想要学习Python。关注小编头条号,私信【学习资料】,即可免费领取一整套系统的板Python学习教程!

主要思路

声明:

主要思路是根据项目源代码推测的,不算是我的思路,希望我没有猜错。

特征提取:

利用dlib库提取面部特征,面部特征点包括:

下巴、嘴、鼻子、左右眼、左右耳等部分。

针对人脸的不同部分进行具体的美化操作。

另外,由于dlib库无法提取额头边界坐标,而额头的美颜也十分重要。。。

因此假设额头在眉心附近,并通过相应的参数做出一个椭圆作为额头的粗略估计。

实际操作过程中需要将与五官重合部分剔除,并只保留与鼻子肤色相同的部分。

美化方法:

就是很平常的美白、增加鲜艳度、磨皮和锐化操作。

美白和增加鲜艳度在HSV空间实现;

磨皮用了高斯滤波器和双边滤波器;

锐化用的是卷积锐化算法。

具体实现过程详见源代码。

使用演示

说明:

根据自己的需求调用相应的美化方法实现美颜。

默认参数仅供参考,以实际效果为准,可以自己调整一些参数让效果看起来更棒。

使用方式:

在cmd窗口运行Beauty.py文件即可。

待处理照片路径在源代码232行,请自行修改。

演示1:

利用Python实现“亚洲四大邪术之首”:美颜功能

失败2:

利用Python实现“亚洲四大邪术之首”:美颜功能

失败3:

利用Python实现“亚洲四大邪术之首”:美颜功能

T_T好吧效果比较一般。。。

更多

总体来说。。。效果比较一般。。。

同时我发现有些头型并不适合用这个算法美颜。。。比如我试了马云的照片。。。结果很不OK。。。

而且参数似乎不太好调。。。

做成Demo的话或许会好调很多。。。

有兴趣的朋友可以试试去做个美图秀秀高度不仿版。

T_T,就这样吧。

利用Python实现“亚洲四大邪术之首”:美颜功能