帮助与文档
热搜关键词:美颜SDK萌颜SDK视频美颜SDK   
直播美颜sdk中如何实现祛痘
发布来源:美狐美颜    Date:2020-07-23 10:48:46

一般来讲,直播美颜sdk中的祛痘有两种实现方式,一是采用高度磨皮,去掉痘痘跟周围不同的像素,做一个局部的平均;还有一种方式是做图像修复。从效果上来看,基于图像修复技术做祛痘的效果会更好,接下来就给大家重点介绍一下直播美颜sdk中的这种技术。

直播美颜sdk

一、图像修复算法介绍

图像修复是图像复原中的一个重要内容,主要利用那些被破坏区域的边缘,即边缘的颜色和结构,复制、混合到损坏的图像中进行修复图像。OpenCV中集成了用于修复小尺度缺损的数字图像修补技术,即利用待修补区域的边缘信息,同时采用一种由粗到精的方法来估计等照度线的方向,并采用传播机制将信息传播到待修补的区域内,以便达到较好的修补效果。

二、图像修复原理

修复一个像素点具体原理如下:

如下图所示,Ω区域是待修复的区域,而δΩ是指Ω区域的边界。要修复Ω中的像素,就需要计算出新的像素值来代替原值。

现在假设p点是要修复的像素,以p为中心选取一个小邻域B(ϵ),该邻域中的点像素值都是已知的,ϵ就是OpenCV函数中的参数inpaintRadius。q为Bϵp)中的一点,这里需要用邻域p)中的所有点计算p点的新灰度值。但是邻域内的每个像素点所起的作用是不同的,所以就引入了权值函数,这里的w(p,q)是权值函数,用来限定邻域中各像素的贡献大小。

其中,d0和T0分别为距离参数和水平集参数,一般都取1.方向因子dir(p,q)保证了离p点越近的像素点对p点的贡献越大。水平集距离因子lev(p,q)保证了离经过点p的待修复区域的轮廓线越近的一只像素点对点p的贡献越大。

直播美颜sdk

三、通过图像修复算法实现祛痘

根据inpaint()函数的原理,选择要修复的区域,然后对这个区域进行修复,python调用了模拟美颜相机的手动祛痘操作,以获取当前的坐标,然后绘制出一个圆,对圆里面的图像做修复。

选中图像中黑色斑点的位置,然后生成一个单通道的mask,利用这个单通道的mask图像进行inpaint操作。从运行结果来看,算法对祛痘的效果表现很好,圆形对图像进行了修复,修复后的图像与原本的皮肤非常相近,基本看不出太大区别。

以上,就是在直播美颜sdk中,如何利用图像修复算法实现祛痘的大体过程,如果您对直播美颜sdk开发感兴趣,欢迎咨询官方客服。

声明:本文由美狐原创,未经允许禁止转载,谢谢合作。

本文标签: 直播美颜sdk
相关阅读
13188947262