zoukankan      html  css  js  c++  java
  • 也试试简单的美肤美白(机器视觉)

    一天两篇博文也是醉了。

    这次也研究一个好玩的东西  关于美白美肤的

    实现的目标:接近美图秀秀之类的软件的处理效果,具备有美白,磨皮之类的效果

    于是可能有以下一些实现方式

    1.直接将原图光滑磨皮,然后直接美白。可能过程如下

    从左到右分别 是原图-》磨皮效果-》美白效果

    那么这个过程就可以简单的分为 1.对原图进行磨皮,2对磨皮的效果图进行美白

    那么磨皮要怎么做呢?我们磨皮是为了什么--去掉小印小坑之类的但是希望看来我们还是那样轮廓分明,该是眼睛还是眼睛的轮廓,总结起来就是去噪保边,去噪保边的理念呦呵双边滤波器有点像,所以可以用双边滤波器试试看。

    先介绍一下双边滤波器直接看图说话,看出效果没面上的浮动可以看出人物的瑕疵之类的,边缘可以看出任务的轮廓之类的,结果是瑕疵给抚平了,边缘还是几乎没变化的保留下来,因此能达到我们想要的结果(上图中)

    磨皮做完了,就要做美白了,美白实际就是色彩平衡的一种。首先要明确我们的目标是美白,美白意味着亮度会亮点,但是我们希望颜色尽量很原来的一样,我们知道彩色图片有三通道rgb,因此调节的时候rgb每个通道的增量都应该要一样,不然可能会引起色差。

    确定规则之后,我们其实就是把问题简化了,色彩不能变,那么实际上就是在调亮度了,我们当然可以直接整体加一个偏移亮度,但是那样效果会很生硬很诡异,这块可以参考一下一些图像处理的软件,理论上这块应该要设计成一个非线性且以128为中心向两边递减的一个映射关系。可以看到经过美白后,相邻像素之间由于亮度的变化,梯度方面有所弱化,有增强了一点点美肤效果。

    虽然上面那样看起来像广告封面一样很美很心动,但是有时候我们会遇到以下的情况

    美是很美,但是给人感觉很假,你叫那些在社交网站的女孩子们怎么用这些图片去骗吃骗喝啊,要骗得宅男们的心的话,处理过的图片必须真实点。换句话说上面处理完后的图片

    连个毛孔都看不到,你说我相信嘛,也说白了就是缺少原图的一些该有的纹理,那么我们就有了以下的一些做法使得处理完的图片更真实和有质感

    大概经历以下步骤原图-》磨皮-》通过磨皮数据计算出纹理的模版-》调节纹理的比例加到原图或磨皮图上-》带纹理的图进行美白。

    上面有的步骤就不重复说了,重点说一下没有的步骤

    1.计算纹理模版

    我们知道经过磨皮后的图片是没有纹理的,而我们原图片是保留原汁原味的纹理的,因此两者直接的差值就是我们要的纹理了,对应上图的上3图。

    2.调节纹理的比例

    得到纹理模版后,用没有纹理的图片稍微加点我们得到的纹理模版就可以得到又光滑由于纹理的图片的,当然结果可能会有点生硬,可以对纹理模版做一下模糊(上图下1)让整个融合过程不会太生硬。

    总结一下:基本能达到要求,文章不会具体去涉及相关的公式什么或相关的代码之类的,比较看着好玩明白原理和思路比较重要。虽然满足要求了,但是实际上上面很多过程可调的参数有点多,磨皮程度可能会过或不够,要真正弄一个比较完善的系统还需要考虑更多的东西的。

    转载请注明出处:http://www.cnblogs.com/beibaoke 谢谢~
  • 相关阅读:
    HTTP RFC解析
    Symfony框架的笔记
    Swoole学习总结1
    PHP Socket 学习笔记一
    Js解决解除多次Ajax请求的事件
    Python 操作串口
    python 实现微信自动回复和好友签名分析
    杂谈1
    Vue.js 功课1
    微信API demo
  • 原文地址:https://www.cnblogs.com/beibaoke/p/4779267.html
Copyright © 2011-2022 走看看