虽然现在各种美颜APP烂大街,效果也非常好,但是想要自己用代码实现同样的效果还是有难度的,因为商用的效果大家算法和代码几乎都是不开源的
一、美颜思路介绍
美颜大致上可以分为两块:美白
和磨皮
。
如果玩过Photoshop的都知道其实美颜其实就是四大步:
- 用具有保边效果的滤波算法对图像进行模糊处理。
- 用肤色检测算法保护非皮肤区域。
- 将模糊后的图像和原图进行图像融合。
- 对融合后的图像进行锐化处理。
对于步骤1,滤波算法可以选择双边滤波,导向滤波,表面模糊等,只要能保边缘就行,有人说高斯模糊是不行的,但事实上只做美白是可以的,高斯模糊没办法实现磨皮效果。如果单单使用高斯模糊来磨皮,得到的效果是不尽人意的。原因在于,高斯模糊只考虑了像素间的距离关系,没有考虑到像素值本身之间的差异。举个例子来讲,头发与人脸分界处(颜色差异很大,黑色与人皮肤的颜色),如果采用高斯模糊则这个边缘也会模糊掉,这显然不是我们希望看到的。而双边滤波(Bilateral Filter) 则考虑到了颜色的差异,它的像素点取值也是周边像素点的加权平均,而且权重也是高斯函数。不同的是,这个权重不仅与像素间距离有关,还与像素值本身的差异有关,具体讲是,像素值差异越小,权重越大,也是这个特性让它具有了保持边缘的特性,因此它是一个很好的磨皮工具
二、美颜算法实现
Reference:
1、https://www.jianshu.com/p/905b05ee1f22
2、https://cloud.tencent.com/developer/article/1094472
3、https://blog.****.net/Trent1985/article/details/83145851 # 人像审美介绍