跟着卷卷龙一起学Camera--美颜相机07

215 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情

高斯滤波和双边滤波的区别在于双边滤波在考虑像素空域距离的同时,考虑了像素值域之间差值的高斯系 数GQr,可以简单地认为,如果两个像素之间的值域差值较大,其在平均的过程中贡献较小, 反之则较大。通过这样的一个值域系数实现了对于图像的一种带通滤波。下面是双边滤波同 高斯滤波最为形象的区别:虽然通过双边滤波我们可以得到较好的磨皮效果,但想要达到比较强的磨皮效果的时候依然会产 生比较明显的副作用。图 3 是对于磨皮效果的对比,我们利用两款不同的美颜 APP,对于同一 张经典图像 Lenna 进行磨皮处理,中间的 APP 直接对于整张图像进行双边滤波,当磨皮效果设 置到最强的时候,可以看到虽然皮肤达到了很好的柔肤效果,但背景也发生了明显的变化,一些 纹理信息丢失了,给人一种不自然的感觉。这个问题就引出了磨皮算法中经常用到的另外一项技 术——皮肤分割算法。皮肤分割算法是学术界一直以来研究的经典算法,有多种解决方案,由于 篇幅所限,我们只从其最为基本的物理意义进行简单的解释。皮肤分割算法是利用皮肤区域颜色 或者纹理不同于背景区域的特征,利用基于规则的方法或是机器学习的方法,自动将图像中的皮 肤进行分割,最为简单、经典的皮肤分割算法,是将图像转换到亮度色彩 317 分离的空间,利用一定的阈值将皮肤同背景分割出来,此算法利用的原理基于皮肤虽然受光照(亮 度)影响表现出不同的颜色,但大部分皮肤区域色彩仍然分布在一个较为集中的范围内。 当我们得到皮肤区域的掩码后,我们可以将皮肤区域的原图同滤波结果进行一定比例的混合 (image blending),获得自然地磨皮效果,而在非皮肤区域采用原始的图像。虽然选用了最强档的磨皮效果,但背景区域没有明显的变化,得 到的结果较为自然。不同 APP 也可能会采用类似的算法去代替皮肤分割,例如,拟合人脸区域 等,但要达到的目的都是一样的,找到人脸区域,避免背景被处理。