OpenCV实战之人脸美颜美型(八)——大眼(下)

        上篇文章中我们做了一些大眼功能的基础知识介绍,同时也确认了简单的将图像进行放大无法实现大眼的功能。仔细分析下,上大眼功能有两方面要求:1)眼部区域放大;2)放大区域的图像边缘与未处理区域自然过渡。

        如下图所示,我们可以规定处理区域为眼睛为圆心的一个圆形,从圆心区域开始图像会放大,但该放大的比例随着距离圆心的距离而变小,直至边缘区域的放大比例为0。这样做就使得眼睛得到放大同时放大后的区域还能够与原图自然连接。

OpenCV实战之人脸美颜美型(八)——大眼(下)_第1张图片

       我们需要将上述描述量化表达,以r代表上述变形区域的圆的半径,X表示原始图像像素到变形圆圆心的距离,Y表示像素变形后的其距离变形圆圆心的距离,则其形状大致如下图所示。如果我们希望图像不变,其函数曲线就是y=x的一条直线;如果希望图像放大,则该曲线将位于y=x直线的上方;反之曲线位于y=x直线下方时表示图像缩小。

OpenCV实战之人脸美颜美型(八)——大眼(下)_第2张图片

        不过在实际图像变形操作中我们要从目标图像映射到原图,因此我们需要将X/Y调换,让X表示变形后图像的像素距离变形圆中心的距离,Y表示原图像素距离变形圆中心的距离,则其形状如下图所示。

你可能感兴趣的:(opencv,人工智能,计算机视觉)