对皮肤美白算法的一些研究。

  皮肤美白是现在任何一款流行的美颜软件必备的功能之一,不过你如果在互联网上搜索关于美白算法,能直接拿到并使用的可能不多。一直觉得这个算法其实很简单的,并且实现的方式可以说是多种多样,本文分享自己研究过的三种实现方式。

    第一:借用色彩平衡算法

  色彩平衡是Photoshop中常用的一个功能,发现这个算法能实现美白的是从一个叫DigitalCameraEnhance的软件中偶然遇到的,这个软件的界面如下图:

  其中的调节中间影调一栏会发现右侧目的图像美白程度不断增加,于是我想到PS中有中间调的功能最有名的就是色彩平衡,打开色彩平衡功能,把色阶三个框设置为同一个正值,并且不勾选保持明度选项,则图像明显出现美白现象。

  注意第一: 色阶的三个调整值必须相同或者差异很小,不然输出图片会出现偏色,第二:一定选选择中间调;第三:必须不勾选保持明度选项。

关于这个算法的代码,可以从开源的GIMP软件中扣取,其实如果符合上述三个条件,有能力的人就会发现其实最后就是一个映射表而已了,这里不给出具体的算法公式。GIMP是开源的,有这个需求的就应该自己动手去找。

    第二:使用logarithmic Curve。

  美白其实主要使皮肤变白变亮,因此,如果能有个合适的映射表,满足使得原图在色阶上有所增强,并且在亮度两端增强的稍弱,中间稍强,则也是个不错的选择。在研究一篇图像增强论文《A Two-Stage Contrast Enhancement Algorithm for Digital Images 》时发现其中的一个公式非常适合这个情况:

  其中w(x,y) 表示输入图像数据,v(x,y)表示输入结果,beta为调节参数,我绘制了Beta分别为[2,3,4,5]时的曲线,如下图:

  可见,Beta越大,美白的程度越强,我想这个程序实现起来应该很容易吧。

  第三:使用图层混合。

  用Photoshop我是这样做的,打开图像,然后点通道面板,按住Ctrl+ 点击RGB通道图像,这样会得到以图像的强度为内容的选区(选区其实就是一副灰度图像),然后回到图层面板,点新建图层,再点添加图层蒙版按钮,这样就会将刚才所建立的选区的内容作为蒙版,接着将,图层填充为白色。调节新建图层的透明,则可以控制最终美白的程度。

这种方法中以图像强度的内容作为蒙版这一步很重要。

这种图层+蒙版的编码实现其实也就是一些Alpha混合的过程,有兴趣实现的朋友可以自行研究。

我个人认为,如果掌握了PS里调整菜单的大部分算法,很多美图软件里的调色这一块基本上都逃不出手掌心了,当然比如有强大的美工基础作为支撑,先靠美工通过某些步骤摸索出某个效果,然后再靠程序员编码实现,可以我美工不行。

   以上操作都是针对全图进行的处理,这样毕竟会把非肤色部分的地方也处理,在很多情况下可能是不合适的,因此一个更好的方式是进行肤色识别,当然这种肤色识别和我之前的磨皮算法原理也一样,不需要也不应该太准确,在边缘处还必须进行一定的羽化,包括非皮肤部分也应该有一定程度的处理,这样整个图看起来会更加自然一些。

  我用以上三种算法进行了一些处理,效果如下所示:

   

                  原图                                ColorBalance , 参数为75

   

            Log曲线, 参数Beta为5                                 图层混合,不透明度30%

   

                原图                                ColorBalance , 参数为75

   

          Log曲线, 参数Beta为6                                   图层混合,不透明度35%

     

原图                                ColorBalance , 参数为75

    

          Log曲线, 参数Beta为5                                 图层混合,不透明度30%

  纯粹就这个功能来说,和美图秀秀之类的软件区别也不大的。

测试程序下载:http://files.cnblogs.com/Imageshop/SkinWhitening.rar

  以上测试图像均来源于互联网。

  

****************************基本上我不提供源代码,但是我会尽量用文字把对应的算法描述清楚或提供参考文档************************

*************************************因为靠自己的努力和实践写出来的效果才真正是自己的东西,人一定要靠自己*******************

****************************作者: laviewpbt   时间: 2014.7.14    联系QQ:  33184777 转载请保留本行信息**********************

对皮肤美白算法的一些研究。,布布扣,bubuko.com

时间: 2024-10-01 03:37:44

对皮肤美白算法的一些研究。的相关文章

LSTM与Highway-LSTM算法实现的研究(1)

LSTM与Highway-LSTM算法实现的研究(1) [email protected] http://www.cnblogs.com/swje/ 作者:Zhouw  2015-12-22   声明: 1)该LSTM的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)本人才疏学浅,整理总结的

opencv----人脸美白算法,祛斑,祛痘,磨皮等

现在各种手机camera软件都自带图像美颜处理,但是成熟的算法在网上很难搜到,博主也是自己摸索了自己做出来了,跟美图秀秀的处理效果相比,还不错,感觉很好,所以PO上来,与各位博友分享之. 首先是根据网上搜到的一个pS美白教程写算法的,http://www.jb51.net/photoshop/9715.html具体过程,等博主写的APP上线之后再发,上一些图像处理效果图.一共有六个参数进行调节,大家可以猜猜博主是用了哪六个参数哦~ 首先上原图 主要参数调节 1.参数80 2.参数100 3.另一

考研计算机基础构造算法的实例研究

构造算法:实例研究1(计数器控制重复) 要演示如何开发算法,我们要解决几个全班平均成绩的问题.考虑下列问题: 班里有10个学生参加测验,可以提供考试成绩(0到100的整数值),以确定全班平均成绩. 全班平均成绩等于全班成绩总和除以班里人数.计算机上解决这个问题的算法是辅人每人的成绩,进行平均计算,然后打印结果. 下面用伪代码列出要执行的操作,指定这些操作执行的顺序.我们用计数器控制重复(counter-conttrolled repetition)一次一个地输人每人的成绩.这种方法用计数器(co

图像处理之基础---肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法

本文涉及的很多算法,在网络上也有不少同类型的文章,但是肯定的一点就是,很多都是不配代码的,或者所附带的代码都是象征性的,速度慢,不优雅,不具有实用价值,本文努力解决这些问题. 文中各算法出现的顺序并不代表算法的优越性,仅仅是作者随机排布的而已. 2.基于RGB颜色空间的简单阈值肤色识别 在human skin color clustering for face detection一文中提出如下简单的判别算式: R>95 And G>40 And B>20 And R>G And R

SSE图像算法优化系列二十四: 基于形态学的图像后期抗锯齿算法--MLAA优化研究。

偶尔看到这样的一个算法,觉得还是蛮有意思的,花了将近10天多的时间研究了下相关代码. 以下为百度的结果:MLAA全称Morphological Antialiasing,意为形态抗锯齿是AMD推出的完全基于CPU处理的抗锯齿解决方案.对于游戏厂商使用的MSAA抗锯齿技术不同,Intel最新推出的MLAA将跨越边缘像素的前景和背景色进行混合,用第2种颜色来填充该像素,从而更有效地改进图像边缘的变现效果,这就是MLAA技术. 其实就是这个是由Intel的工程师先于2009年提出的技术,但是由AMD将

SIFT算法研究

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://underthehood.blog.51cto.com/2531780/658350 By RaySaint 2011/09/05 1综述 结合论文[1]和Rob Hess的开源SIFT代码(发现OpenCV2.3的源码里也是用的Rob Hess的SIFT代码)对SIFT算法进行了研究,下面是小结: 在计算机视觉的领域中,图像匹配是很多问题最重要的一个方面,包括物体和场景识别,通

近十年one-to-one最短路算法研究整理【转】

前言:针对单源最短路算法,目前最经典的思路即标号算法,以Dijkstra算法和Bellman-Ford算法为根本演进了各种优化技术和算法.针对复杂网络,传统的优化思路是在数据结构和双向搜索上做文章,或者针对不必要的循环进行排除.近年来,最短路算法大量应用于需要高及时性的领域,比如GIS领域,也大量应用于网络规模巨大的社会网络分析领域,这使得传统思路并不能很好地解决,于是把最短路算法思路本身抽象成两阶段算法,第一阶段为数据预处理,第二阶段为实时地搜索.这二者是互相矛盾的,如何找到平衡是各种算法技术

静态频繁子图挖掘算法用于动态网络——gSpan算法研究

摘要 随着信息技术的不断发展,人类可以很容易地收集和储存大量的数据,然而,如何在海量的数据中提取对用户有用的信息逐渐地成为巨大挑战.为了应对这种挑战,数据挖掘技术应运而生,成为了最近一段时期数据科学的和人工智能领域内的研究热点.数据集中的频繁模式作为一种有价值的信息,受到了人们的广泛关注,成为了数据挖掘技术研究领域内的热门话题和研究重点. 传统的频繁模式挖掘技术被用来在事务数据集中发现频繁项集,然而随着数据挖掘技术应用到非传统领域,单纯的事务数据结构很难对新的领域的数据进行有效的建模.因此,频繁

几种搜索引擎算法研究

http://www.cnblogs.com/zxjyuan/archive/2010/01/06/1640136.html 1.引言 万维网WWW(World Wide Web)是一个巨大的,分布全球的信息服务中心,正在以飞快的速度扩展.1998年WWW上拥有约3.5亿个文档[14],每天增加约1百万的文档[6],不到9个月的时间文档总数就会翻一番[14].WEB上的文档和传统的文档比较,有很多新的特点,它们是分布的,异构的,无结构或者半结构的,这就对传统信息检索技术提出了新的挑战. 传统的W