美颜算法中磨皮的原理

谈到磨皮美颜,你们可能认为是一个很高深难懂的事情,网上搜索关于美颜的文章,通常都是搬出许多算法,看得让你头晕目眩的。今天将用大白话来让你快速认识磨皮美颜原理,轻松get到她的点!只要你耐着性子读完本篇文章,你会发现美颜原理其实也是一件很好理解的事情。图玩智能科技为企业提供更稳定更优质的美颜产品及服务,欢迎随时咨询www.toivan.com算法

磨皮美颜概念函数

讲磨皮美颜以前,先讲讲咱们的人脸,认清磨皮美颜的目的;一般,咱们的人脸上或许有许多痘痘和一些暗色粗糙皮肤,美颜的目的就是尽量使痘痘消失,暗色皮肤变白,使粗糙变细腻,达到美颜效果,从上诉的分析能够得出咱们须要作的事情以下:性能

 

1.寻找脸上的特征点,如痘痘、暗色粗糙皮肤spa

2.对痘痘、粗糙皮肤加以处理,完成美化。3d

特征点分析blog

咱们一般看到痘痘和暗色皮肤,仔细观察,会发现这些特征点和周围正常皮肤在肤色上有一个差异;若是拍照拍下来,用灰度值查看这个图片,你会发现特征点灰度值较低,而正常白色皮肤灰度值较高,这是一个凸变的过程,正常皮肤到特征点,灰度值从高点陡然下跌;咱们能够用这个现象来把特征点提取出来,如何提取请继续往下看;图片

另外一个是局部粗糙皮肤,其局部灰度值,也须要尽量将其数字磨平,让它和正常皮肤同样,和上面痘痘同样,也会有一个灰度值陡然降低的过程get

特征点提取源码

这里须要一种滤波算法,能够是均值化滤波、高斯滤波、双边滤波和导向滤波等算法,考虑到手机CPU性能,咱们通常选择高斯滤波,加权求平均的算法;试想一下,一张二维灰度值人脸图片,特征点灰度值低,正常皮肤灰度值高,滤波算法事后,正常皮肤变化不大,特征点由于周围正常皮肤灰度值较高的缘由,广泛灰度值会有一个变大的效果,这个时候咱们用原图灰度值减去滤波后的灰度值,那么特征点的灰度值是小于0位负的,正常皮肤灰度值为正的,这样咱们就获得整张人脸图片的特征点了产品

特征点=原图滤波后的图特征点 = 原图 - 滤波后的图

特征点=原图滤波后的图

咱们归一化灰度值,也就是将灰度值0-255归一化为0-1的取值,按照上面的步骤,获得特征点后,给他统一加0.5,也就是

特征点=原图滤波后的图+0.5特征点 = 原图 - 滤波后的图 + 0.5

特征点=原图滤波后的图+0.5

这样,咱们的特征点小于0.5,正常皮肤的是大于0.5的

特征点增强

为了使咱们的特征点更明显,咱们对特征点增强,主要是使特征更加明显,后续好处理;获得一个高度反差的图像,以下图

如上图,手上有皱纹以及关节处黑色比较明显,获得了特征点增强图片

源码:

注意: 滤波越细腻,磨皮效果越好

特征点处理

通过上一步,特征点已经处理了,那特征点如何处理了,处理的原则又是什么呢?
那就是对特征点亮化处理,增长其灰度值大小,使其尽量比原色更白,和正常肤色同样,那如何才能达成这一效果?
请看如下算法:

算法解释都在代码注释里面了,主要仍是看第三句代码:

primaryColor-vec3(features)
原图减去特征点,暗色的特征点很小,减法后值更大;正常皮肤特征点大,减法后值越小;最后在加上原图,原图特征点值变大了,就会显得亮度更亮,实现了咱们要的效果

细节补偿

进过上面的图像处理时,会有必定的图像细节丢失,咱们须要将原始图像和处理图像融合进行细节补偿,达到细节补偿效果;

先用max选择亮度较高的灰度值,最后在与处理图融合;
这里为何要用max函数来处理一遍呢,由于在特征点处理步骤,正常图片作减法后的加法,其灰度值可能比原图更低,因此这里这么处理,最后咱们获得的图片效果;

以上就是磨皮美颜的常规处理,最终效果上看确实达到了美颜的效果;

美颜不单单是美肤,还有瘦脸、大眼睛等,这些才是美颜的进阶!

相关文章
相关标签/搜索