美颜之祛斑算法

目前,市面上有很多的人脸美妆软件,大多数也都有自动去除皮肤斑点痘痘的功能,网上对于手动祛斑的算法已有了相关实现,可是,自动祛斑的算法却少之又少,今天,在这里简单讲一下这方面的开发经验。图玩智能科技为企业提供更稳定更优质的美颜产品,欢迎随时咨询www.toivan.com.算法

对于自动祛斑,首先是创建在肤色基础之上的,这个咱们必须搞清楚,咱们的祛斑是去除的皮肤上的斑点和痘痘。spa

要实现自动祛斑,步骤以下:开发

1,斑点自动检测;产品

2,斑点去除;it

对于斑点自动检测算法,如今,来讲一下本人认为可行的两种方法:class

1.1 Sobel算子斑点检测基础

使用Sobel进行斑点检测,使用Sobel算子来检测斑点的,确实,Sobel能够检测到大部分的斑点。软件

首先,使用Sobel对皮肤区域的灰度图进行边缘检测,获得结果图中你会发现,包含了大部分的斑点图像;方法

而后,对斑点进行过滤,滤除一些误检测的区域,好比图像边缘,人脸五官信息等等,这里可使用连通域判断来排除这些假斑点;经验

最后,就能够获得咱们想去除的一些斑点了。

注意,祛斑是不可能把全部咱们理解中的斑点去掉的,这一点你能够看下目前市面上的软件,究其缘由,是由于皮肤中仍是有不少东西跟斑点特征是同样的。

1.2高反差保留算法进行斑点检测

使用高反差保留算法进行斑点检测,这个主要来源于PS实现过程,咱们对高反差以后的灰度图进行个二值化,选取合适的阈值,便可获得斑点区域。具体实现效果,你们可使用PS实验一下。

以上就是本人实验过的两种斑点检测算法。

对于斑点去除,这里也有两种算法:

2.1,图像融合

咱们对原图进行大半径的高斯模糊,获得斑点位置的模糊值(只要模糊半径够大,这个斑点就越不明显),而后把这个斑点模糊值做为融合区域,对原图进行斑点融合,具体融合算法推荐使用泊松融合。

2.2,图像填充

有了斑点区域以后,咱们可使用inpaint算法,对斑点区域进行智能填充,这个算法效果较好,可是速度比较慢,这也是有得必有失了呵呵。

以上就是本人对自动祛斑算法的一些总结,两种算法本人都已实现。

相关文章
相关标签/搜索