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

180 阅读2分钟

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

我们首先介绍的是五官变形处理,在各个美颜相机中其实并没有五官变形这样的名称,只是 作者对于瘦脸、眼睛增大、鼻子缩小、增加微笑等功能进行的一种归并。这些操作虽然名称和应 用方向各异,但算法的基础都是相同的,都是一种 image warping 操作。以瘦脸为例,当我们 需要进行瘦脸操作时,实际上是将脸部的轮廓向人脸中心的方向进行移动,并将脸部轮廓周边的相关联的像素 P(x,y)以一定的关系映射到目标图像的新的位置 P’(u,v)上,一般可以通过单应矩阵 (Homograph Matrix)实现。图像中每个点的映射关系需要根据像素同移动的特征点之间的 相对位置决定。当给定映射关系后我们可以将现有的像素映射到目标图像新的位置,获得瘦脸后 的图像,我们称这个过程为正向映射,正向映射通常会造成目标图像出现像素缺失的问题。实际 中,通常采用反向映射,即计算目标图像中的每个像素在原图像中的位置,并利用插值的方法计 算实际像素的值,回填到目标图像上来,这样得到的图像更加自然。类似的眼睛增大是将人眼轮 廓向外部扩张,并进行 image warping,缩小鼻子是将鼻子轮廓向中心移动;而增加微笑则是 将嘴角的轮廓点向上调整。五官立体、高鼻梁等操作实际上是将眼部或者鼻子附近的部分区域的像素变暗或者变亮,使 眼睛和鼻子附近形成人造的阴影或高光效果,这些人造的阴影或高光会给人一种脸部器官看起来 更立体的感觉。我们以高鼻梁算法为例,这类算法的流程是:首先根据获得的人脸轮廓信息找到 鼻子的轮廓,在鼻子轮廓周边确定变暗区域,根据这些确定的区域改变其中像素的亮度,使鼻子 周边出现阴影的效果,使鼻梁看起来更高。