美颜的奥秘——磨皮底层原理

前言

据不完全统计,全世界每隔3秒就有一个人上传自己的自拍照,甚至不少人在P图上所花的时间都超过了化妆时间。

从十多年前“美图秀秀”的横空出世,再到近年来的实时美颜。到今天,美颜功能已经嵌入到各类手机系统当中,帮助大家实现完美自拍。有玩笑说,中国的P图术、韩国的整容术和日本的化妆术瓜三分天下。此秘术自诞生以来教众不断,但受用者,可瞬间变成天仙下凡,号称“传说中的3大东方神秘力量”。由此可见,随着朋友圈、微博等自拍社交越来越盛行,拍个美美的照片已经是人们的刚需了。

其实磨皮算法最底层的本质就是一种降噪算法,也可以说是模糊算法。即通过对脸部的模糊,把各种面部瑕疵模糊掉,以达到磨皮的效果。

本文很简单地介绍几种很基础的模糊算法以及磨皮后的边缘和细节还原。
在这里插入图片描述

一、磨皮核心——模糊算法

模糊算法也可以说是降噪算法,把清晰可见的东西变得模糊。磨皮的原理就是把脸部变“模糊”,把各种瑕疵、皱纹、痘印等变模糊,使得整个脸看起来很光滑平整。模糊算法就是这样,可以隐去很多细节,也可以说是可以用更少的图像信息量去表达一幅图,因此许多细节就在模糊的过程中被抹去。

如何使一张图片变模糊呢,我们不妨从微观看起。

我们来看一张3*3的图:

在这里插入图片描述

假设上面的数字都代表当前位置的像素值。

假如正中央的像素"9"代表一个瑕疵点,那么我们如何把这个"9"模糊掉呢?

1.中值滤波

对核心及周围的像素值排序,取中间值作为新的像素值。
在这里插入图片描述

2.均值滤波

将核心及周围的像素求和取平均值,作为新的像素值。
在这里插入图片描述

3.高斯滤波

在均值滤波的基础上,对每个像素加上一个权重。这个权重是一个高斯函数。概况地说,距离中心点越近,权重越大;距离中心点越远,权重越小。

一维高斯函数可以这样表示:
在这里插入图片描述
下图分别是一维高斯图像和二维高斯图像:
在这里插入图片描述
把二维高斯函数放到我们上面的3*3的区域中,并做归一化,就得到了权重:
在这里插入图片描述
那么最终的颜色这样计算:
在这里插入图片描述

4.双边滤波

在高斯滤波的基础上,再加上一个[像素差异]的权重:与中心颜色相差越大,权重越低;与中心颜色相差越小,权重越高。

这么做是为了能够在模糊的时候,较好地保护图像的边缘细节信息。这也是磨皮常用的模糊算法,因为磨皮就是需要保留人脸的一些纹路边缘细节,使得磨皮效果看起来更加自然。

可以这么理解:

高斯核是[空间域]上的权重:距离中心的空间距离越远,权重越小。

双边滤波多了一个[值域]上的权重:距离中心的像素差别越大,权重越小。

以下两个图片可以更好理解双边滤波:
在这里插入图片描述
在这里插入图片描述
还是拿上面3*3的区域应该这样算:
在这里插入图片描述
这里的值域核仅为了表达方便,实际应用中也需要做类似归一化的操作

我们可以看一下这几种模糊算法的效果:

原图:
在这里插入图片描述
中值滤波:
在这里插入图片描述
均值滤波:
在这里插入图片描述
高斯滤波:
在这里插入图片描述
双边滤波:
在这里插入图片描述

二、锐化——边缘和细节还原

锐化可以分成2步:第一步,提取边缘;第二步:边缘还原到原图上。第二步其实就是简单的把边缘图叠加到原图上,因此这里重点介绍边缘提取算法。

在这里插入图片描述

1.USM锐化

USM锐化是最常见的锐化,其主要利用了模糊图,原理如下:
在这里插入图片描述
上文说过的模糊算法其实就是把大部分细节抹去,用原图减去模糊图,就得到了这幅图像的边缘和细节了。得到细节之后,叠加回原图,就实现了锐化的效果。

如果想要更大的锐化怎么办呢?那就使用更模糊的图,以得到更大的差值:
在这里插入图片描述

2.拉普拉斯Laplace锐化

拉普拉斯锐化方式是通过对像素进行卷积遍历,以得到边缘。
在这里插入图片描述
以4领域卷积核为例:

如果当前像素与上下左右4个像素完全相同,那么计算得的结果为0,即代表当前像素并不是边缘;

反之如果计算结果不为0,说明当前像素与上下左右像素值存在差异,那么这个像素在一定程度上是边缘的一部分。

拉普拉斯锐化效果如下:
在这里插入图片描述

3.索贝尔sobel锐化

sobel锐化也是使用对像素的卷积遍历,不同的是它区分横纵卷积核。
在这里插入图片描述
以横向卷积核为例:

如果左边一列和右边一列像素完全相同,那么计算得的结果为0,即代表当前像素并不是边缘;

如果左边一列和右边一列像素值有所差别,那么计算结果不为0,代表当前像素正处在边缘部分。

sobel边缘提取效果如下:
在这里插入图片描述

效果图:
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值