人像磨皮

先做声明,我个人一向对磨皮算法不抱有兴趣,学习图像处理的初衷还是美化自然场景。所以对人像美化感兴趣的,可以看人在旅途的博客。
先前对这种磨皮印象不过是用一种保边滤波器平滑处理一下,但见旅途这段时间做的工作都是磨皮,索性看一下。方法也很简单,就一个公式,我用matlab测试了一下,确实很有效果。

Dest=(Src(100Opacity)+(Src+2GuassBlur(EPFFilter(Src)Src+128)256)Opacity)/100

这里EPFFilter是一个保边滤波器,双边滤波,导向滤波,域变换滤波器都可以。
至于为什么可以会有这样的效果。旅途说,也无需明白背后有什么道理。嗯,我挺赞同的。
就是一个公式,直接编码就可以了。

I= double(imread('1.jpg'));
H = RF(I,30,100) - I + 128;
G = imfilter(H,fspecial('gaussian',[3 3],100));
opacity = 50;
Dest = (I*(100 - opacity)+(I+2*G-256)*opacity)/100;
imshow([uint8(I) uint8(Dest)]);

这里,我用的是递归域变换滤波器 RF 。加上前面的读取图像还有最后的显示图像才只有10行代码。对了,最好设置一个程序接口,因为需要调节相关参数才能达到最好效果的。

效果

人像磨皮_第1张图片
依次为原图,效果图,去除层。
人像磨皮_第2张图片
人像磨皮_第3张图片
人像磨皮_第4张图片
人像磨皮_第5张图片
原图,效果

更多阅读

简单探讨可牛影像软件中具有肤质保留功能的磨皮算法及其实现细节,人在旅途

Licenses

作者 日期 联系方式
风吹夏天 2015年8月14日 [email protected]

你可能感兴趣的:(人像美容,一键磨皮)