图像算法---磨皮算法研究汇总
2016-01-11 17:28
337 查看
转自:http://blog.csdn.net/trent1985/article/details/50496969
写这篇博客,也是对自己这段时间关于磨皮算法内容研究做个小结。
目前,对于人脸磨皮算法,大家并不陌生,从PS到APP应用,可谓是层出不穷,这里我总结一下,具体流程如下:
1,保边滤波器
2,肤色检测
3,图像融合
4,锐化
对于保边滤波器:
此类滤波器主要作用是在平滑皮肤的同时,保留五官的细节。目前可以做磨皮的保边滤波主要有以下几种:
1,表面模糊
这个算法是PS中的一个功能,具有较好的保边作用,它的算法实现连接:点击打开链接
代码库连接:点击打开链接
效果如下:
原图 表面模糊
2,双边滤波
这个算法是由一个高斯分量+梯度分量组成权重信息来实现模糊平滑图像的同时,保留边缘的功能的,代码连接:点击打开链接
效果图如下:
原图 双边滤波r=15
3,导向滤波
导向滤波是基于导向图的一种保边滤波算法,最开始由He kai ming提出,用于基于暗通道去雾算法中,它的实现算法和代码DEMO连接:点击打开链接
效果图如下:
原图 导向滤波 快速导向滤波
3,基于均值滤波的保边滤波器算法
这个算法速度很快,单效果一般,参考论文《Lee Filter Digital Image Enhancement and Noise Filtering by Use of Local Statistics》
算法实现及程序DEMO连接:点击打开链接
效果图如下:
原图 效果图
4,选择性模糊算法
这个算法的具体实现及程序DEMO连接:点击打开链接
效果图如下:
原图 选择性滤波算法效果
5,基于高斯滤波的磨皮实现算法
这个算法不多说,大家可以直接看连接:点击打开链接
相关代码DEMO连接:点击打开链接
效果如图:
原图 磨皮效果图
以上就是我收集到的,目前可以用来做磨皮算法的滤波器,大家可以参考一下。
对于肤色检测:
肤色检测的相关资料比较多,主要可以分为两大类,基于颜色空间统计信息的方法,基于机器学习分类的方法。
这里给出一些链接:点击打开链接
一种基于RGB颜色空间的算法:
对于图像融合:
这个图像融合,主要是指将滤波图像和细节图像进行融合,得到一张具有较强细节真实感和磨皮效果的结果图。
一般基于alpha通道,或者使用羽化操作来进行融合,公式如下:
res = (basePixel * alpha + filterPixel * (255 - alpha)) >>8
注意,这里的alpha在0-255之间,这里举的是原图和滤波图的融合。
对于锐化算法:
在得到磨皮融合的效果图后,我们还需要进行一定的锐化算法,来进一步增强细节感,这里大家可以使用USM锐化或者经典的邻域锐化,laplace锐化等等,相关资料自行百度吧。
上述所有内容,都是磨皮算法相关的内容,跟大家分享一下,最后一个,就是算法的效率问题了,这个问题解决的核心,还在于滤波算法的选择,大家可以自行优化。本人基于Sobel算子和均值滤波实现了一种保边滤波器,只需进行一次均值滤波,一次sobel算子即可,速度很不错,这里给个效果图:
原图
效果图
注意,这里简单的进行了全图滤波呵呵。
我的QQ:1358009172,有问题可以交流
写这篇博客,也是对自己这段时间关于磨皮算法内容研究做个小结。
目前,对于人脸磨皮算法,大家并不陌生,从PS到APP应用,可谓是层出不穷,这里我总结一下,具体流程如下:
1,保边滤波器
2,肤色检测
3,图像融合
4,锐化
对于保边滤波器:
此类滤波器主要作用是在平滑皮肤的同时,保留五官的细节。目前可以做磨皮的保边滤波主要有以下几种:
1,表面模糊
这个算法是PS中的一个功能,具有较好的保边作用,它的算法实现连接:点击打开链接
代码库连接:点击打开链接
效果如下:
原图 表面模糊
2,双边滤波
这个算法是由一个高斯分量+梯度分量组成权重信息来实现模糊平滑图像的同时,保留边缘的功能的,代码连接:点击打开链接
效果图如下:
原图 双边滤波r=15
3,导向滤波
导向滤波是基于导向图的一种保边滤波算法,最开始由He kai ming提出,用于基于暗通道去雾算法中,它的实现算法和代码DEMO连接:点击打开链接
效果图如下:
原图 导向滤波 快速导向滤波
3,基于均值滤波的保边滤波器算法
这个算法速度很快,单效果一般,参考论文《Lee Filter Digital Image Enhancement and Noise Filtering by Use of Local Statistics》
算法实现及程序DEMO连接:点击打开链接
效果图如下:
原图 效果图
4,选择性模糊算法
这个算法的具体实现及程序DEMO连接:点击打开链接
效果图如下:
原图 选择性滤波算法效果
5,基于高斯滤波的磨皮实现算法
这个算法不多说,大家可以直接看连接:点击打开链接
相关代码DEMO连接:点击打开链接
效果如图:
原图 磨皮效果图
以上就是我收集到的,目前可以用来做磨皮算法的滤波器,大家可以参考一下。
对于肤色检测:
肤色检测的相关资料比较多,主要可以分为两大类,基于颜色空间统计信息的方法,基于机器学习分类的方法。
这里给出一些链接:点击打开链接
一种基于RGB颜色空间的算法:
对于图像融合:
这个图像融合,主要是指将滤波图像和细节图像进行融合,得到一张具有较强细节真实感和磨皮效果的结果图。
一般基于alpha通道,或者使用羽化操作来进行融合,公式如下:
res = (basePixel * alpha + filterPixel * (255 - alpha)) >>8
注意,这里的alpha在0-255之间,这里举的是原图和滤波图的融合。
对于锐化算法:
在得到磨皮融合的效果图后,我们还需要进行一定的锐化算法,来进一步增强细节感,这里大家可以使用USM锐化或者经典的邻域锐化,laplace锐化等等,相关资料自行百度吧。
上述所有内容,都是磨皮算法相关的内容,跟大家分享一下,最后一个,就是算法的效率问题了,这个问题解决的核心,还在于滤波算法的选择,大家可以自行优化。本人基于Sobel算子和均值滤波实现了一种保边滤波器,只需进行一次均值滤波,一次sobel算子即可,速度很不错,这里给个效果图:
原图
效果图
注意,这里简单的进行了全图滤波呵呵。
我的QQ:1358009172,有问题可以交流
相关文章推荐
- 数据解析
- 我们是如何解决问题的
- PHP指定字段的多维数组排序方法
- sql建立跨服务器链接
- Sublime Text 3快捷键
- mysql 权限与安全
- 宏定义的高级用法
- linux uptime命令详解
- kamailio sip server 开发指南
- org.xmlpull.v1.XmlPullParserException: preconditon: START_TAG
- UCOS三种临界区管理机制
- 多个字符串逆置
- 二级多菜单
- Golang初级系列教程-Struct
- oc中文首字母排序
- 设置rem
- golang esl api
- Centos 5.3安装增强工具时报错权限不够
- JS正则表达式使用详细分析
- orcale 查询两个不同的条件的结果的差值(minus)