谈到美颜算法中的“磨皮”功能,大家可能认为是一个很高深难懂的事情,因为其中牵扯到很多的算法,今天小编就用比较直白的方式,让你快速认识磨皮美颜原理。
一、目的分析
在讲磨皮美颜算法之前,先认清磨皮美颜的目的;通常,人脸上或许有许多痘痘和一些暗色粗糙皮肤,磨皮的目的就是尽可能使痘痘消失,暗色皮肤变白,使粗糙变细腻,达到美颜效果,因此,磨皮算法要做的事情如下:
1、寻找脸上的特征点,如痘痘、暗色粗糙皮肤。
2、对痘痘、粗糙皮肤加以处理,完成美化。
二、特征点分析
我们通常看到痘痘和暗色皮肤,仔细观察,会发现这些特征点和周围正常皮肤在肤色上有一个差别;如果拍照拍下来,用灰度值查看这个图片,你会发现特征点灰度值较低,而正常白色皮肤灰度值较高,这是一个凸变的过程,正常皮肤到特征点,灰度值从高点陡然下跌;可以用这个现象来把特征点提取出来。
另一个是局部粗糙皮肤,其局部灰度值,也需要尽可能将数字磨平,让它和正常皮肤一样,也会有一个灰度值徒然下降的过程。
三、特征点提取
这里需要一种滤波算法,可以是均值化滤波、高斯滤波、双边滤波和导向滤波等算法,考虑到手机CPU性能,一般会选择高斯滤波,加权求平均的算法;试想一下,一张二维灰度值人脸图片,特征点灰度值低,正常皮肤灰度值高,滤波算法过后,正常皮肤变化不大,特征点因为周围正常皮肤灰度值较高的原因,普遍灰度值会有一个变大的效果,这个时候用原图灰度值减去滤波后的灰度值,那么特征点的灰度值是小于0位负的,正常皮肤灰度值为正的,就得到整张人脸图片的特征点了。
之后再经过特征点加强、特征点亮化处理、细节补偿后,就能得到想要的图片效果了,因为这里会牵扯很多代码上的内容,就不再详细展开了。
以上就是磨皮在美颜算法中的实现过程,如果你对美颜sdk接入感兴趣,欢迎咨询在线客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。