美颜之祛斑算法
目前,市面上有不少的人脸美妆软件,大多数也都有自动去除皮肤斑点痘痘的功能,网上对于手动祛斑的算法已有了相关实现,但是,自动祛斑的算法却少之又少,今天,在这里简单讲一下这方面的开发经验。图玩智能科技为企业提供更稳定更优质的美颜产品,欢迎随时咨询www.toivan.com.
对于自动祛斑,首先是建立在肤色基础之上的,这个我们必须搞清楚,我们的祛斑是去除的皮肤上的斑点和痘痘。
要实现自动祛斑,步骤如下:
1,斑点自动检测;
2,斑点去除;
对于斑点自动检测算法,现在,来说一下本人认为可行的两种方法:
1.1 Sobel算子斑点检测
使用Sobel进行斑点检测,使用Sobel算子来检测斑点的,确实,Sobel可以检测到大部分的斑点。
首先,使用Sobel对皮肤区域的灰度图进行边缘检测,得到结果图中你会发现,包含了大部分的斑点图像;
然后,对斑点进行过滤,滤除一些误检测的区域,比如图像边缘,人脸五官信息等等,这里可以使用连通域判断来排除这些假斑点;
最后,就可以得到我们想去除的一些斑点了。
注意,祛斑是不可能把所有我们理解中的斑点去掉的,这一点你可以看下目前市面上的软件,究其原因,是因为皮肤中还是有很多东西跟斑点特征是一样的。
1.2高反差保留算法进行斑点检测
使用高反差保留算法进行斑点检测,这个主要来源于PS实现过程,我们对高反差之后的灰度图进行个二值化,选取合适的阈值,即可得到斑点区域。具体实现效果,大家可以使用PS实验一下。
以上就是本人实验过的两种斑点检测算法。
对于斑点去除,这里也有两种算法:
2.1,图像融合
我们对原图进行大半径的高斯模糊,得到斑点位置的模糊值(只要模糊半径够大,这个斑点就越不明显),然后把这个斑点模糊值作为融合区域,对原图进行斑点融合,具体融合算法推荐使用泊松融合。
2.2,图像填充
有了斑点区域之后,我们可以使用inpaint算法,对斑点区域进行智能填充,这个算法效果较好,但是速度比较慢,这也是有得必有失了呵呵。
以上就是本人对自动祛斑算法的一些总结,两种算法本人都已实现。
以上是 美颜之祛斑算法 的全部内容, 来源链接: utcz.com/z/518112.html