图像美妆算法---自动祛斑算法研究

目前,市面上有不少的人脸美妆软件,大多数也都有自动去除皮肤斑点痘痘的功能,网上对于手动祛斑的算法已有了相关实现,但是,自动祛斑的算法却少之又少,今天,在这里我简单讲一下这方面的开发经验。
对于自动祛斑,首先是建立在肤色基础之上的,这个我们必须搞清楚,我们的祛斑是去除的皮肤上的斑点和痘痘。
要实现自动祛斑,步骤如下:
1,斑点自动检测;
2,斑点去除;
对于斑点自动检测算法:
目前网上可以搜索到的相关论文如下:
Automatic freckles detection and retouching.IEEE 2008
Automatic facial skin detect defection system.IEEE 2010
Automatic facial skin defects detection and recognition system.IEEE 2011
基于色素分离的皮肤图像处理与分析.2007 浙江大学毕业论文
以上几篇论文中都提到了斑点检测的算法,但是,仔细看一下,你会发现几乎都没有什么实际意义,很有拼凑论文的嫌疑,仔细研究了这几篇论文之后,本人根本没有获得什么有用的信息。当然也可能是本人理解有误,有兴趣的同志们可以研究一下呵呵。
现在,来说一下本人认为可行的两种方法:
1.1 Sobel算子斑点检测
使用Sobel进行斑点检测,实际上是看到了美图秀秀公开的一篇祛斑专利《一种数字图像自动去除斑点的方法》,在这个专利中,美图表明是使用Sobel算子来检测斑点的,于是对这个进行了研究,确实,Sobel可以检测到大部分的斑点。
首先,使用Sobel对皮肤区域的灰度图进行边缘检测,得到结果图中你会发现,包含了大部分的斑点图像;
然后,对斑点进行过滤,滤除一些误检测的区域,比如图像边缘,人脸五官信息等等,这里可以使用连通域判断来排除这些假斑点;
最后,就可以得到我们想去除的一些斑点了。
注意,祛斑是不可能把所有我们理解中的斑点去掉的,这一点你可以看下目前市面上的软件,究其原因,是因为皮肤中还是有很多东西跟斑点特征是一样的。至于美图的这一篇专利,下载地址如下:http://pan.baidu.com/s/1eQIuPgQ,这个地址中有很多美图的专利收集。
1.2高反差保留算法进行斑点检测
使用高反差保留算法进行斑点检测,这个主要来源于PS实现过程,我们对高反差之后的灰度图进行个二值化,选取合适的阈值,即可得到斑点区域。具体实现效果,大家可以使用PS实验一下。
以上就是本人实验过的两种斑点检测算法。
对于斑点去除,这里也有两种算法:
2.1,图像融合
我们对原图进行大半径的高斯模糊,得到斑点位置的模糊值(只要模糊半径够大,这个斑点就越不明显),然后把这个斑点模糊值作为融合区域,对原图进行斑点融合,具体融合算法推荐使用泊松融合。
2.2,图像填充
有了斑点区域之后,我们可以使用inpaint算法,对斑点区域进行智能填充,这个算法效果较好,但是速度比较慢,这也是有得必有失了呵呵。
以上就是本人对自动祛斑算法的一些总结,两种算法本人都已实现,效果如下:


原图


本文算法效果图

美图秀秀效果图

对比美图秀秀算法,可以看出,本文算法在斑点去除方面要略胜一筹。

最后,对于算法具体代码,这里鉴于保密信息,本人就无法公开了,不过思路已有,跟大家分享一下,有兴趣的人,肯定能做出来!
本人邮箱: zealpixel@qq.com,个人主页 点击打开链接,有什么问题请留言,谢谢!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trent1985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值