关于人像美容之祛痘祛斑算法的一些尝试。
祛痘祛斑算法一直在关注,一直在期待看有么有大神分享有关这方面的资料。在百度上用关键词祛痘祛斑搜到的都是于原理无关的不痛不痒的东西,看样子还是得靠自己奋斗。
总的来说,对于祛痘祛斑,我们概念上还是有一定的了解的,这个按照我的分析应该是属于图像修复方面的内容的,于是咨询了一些专门搞学术研究,特别是图像修复相关方向的比较专业的人士,他们也给我提供了一些测试的代码,其中最为简单又有一定效果代码如下(由网友西西提供):
function inpainting()f=imread('12.png');f=rgb2gray(f);f=double(f);[m,n]=size(f);lamda=0.1;phi=double(1-(f==255));%u=f; Iter =400;for k=1:IterC1 = circshift(u,[0 -1]); C1(:,n) = C1(:,n-1);C2 = circshift(u,[0 1]); C2(:,1) = C2(:,2);C3 = circshift(u,[-1 0]); C3(m,:) = C3(m-1,:);C4 = circshift(u,[1 0]); C4(1,:) = C4(2,:);lap_u=C1+C2+C3+C4;u=(phi.*f+lamda*lap_u)./(phi+4*lamda);
end
figure; imagesc(u); colormap(gray); axis off; axis equal;
这个代码的原理是参考: 一文的。具体的我也没有看,应该是基于TV模型的最简单的一种实现。
上述代码很简单,其中的lamda控制了模糊的程度,用这个代码做了下测试,对于灰度图效果如下:
原图 Mask 修复后的图
由上图可见,这种简单的代码具有一定的修复功能,但是修复部分比较模糊,另外一个问题就是这个代码的效率很低,虽然改成C语言实现病不是特别困难,但是即使是C速度也有问题,不过针对手动祛斑时的特性,编程时时不需要整图处理,比如取要祛痘祛斑2倍面积的地方进行处理也是可以的。
在一个群里也问起这个问题,有部分网友提出opencv 的 inpaint 算法可行吗,于是我也是试着用opencv的函数试验了下,实验的结果如下:
原图
Mask
修复的结果图
如果初步的看,似乎修复的结果也还是可以的。这个代码在OpenCV的inpaint.cpp,其中一种方法来自论文《An Image Inpainting Technique Based on the Fast Marching Method》, 我花费了2天左右的时间将其转换为了纯C++代码,脱离了opencv环境,不过结果验证却有点令人失望,主要的原因是这个方法其实也和TV那个类似,修复的地方会有比较明显的模糊结果(OpenCV里的算法也存在类似卷积的过程,因此模糊时不可避免的)。而观察美图等软件的修复,对于被修复部分的纹理保留的很好。
但是,也不是说这些算法也毫无用处,祛斑祛痘一般都是伴随着磨皮美白一起使用的,如果对磨皮后部分依旧没有被消除的斑点,上述祛斑的方式就能和周边的图较为完美的融合在一起的,因为周边的皮肤也是会比较光滑的,例如下图:
原图 磨皮后再手动祛斑的效果
其实现在比较难得还是斑点的自动定位,祛斑算法很多厂家已经有了成熟的算法,只是我们这些小强见识比较短而已。
至此,我的人像美容算法方法的主要的几个功能基本都已研究完成了(虽然都不完美),其中瘦脸瘦身和眼睛缩放在我的Imageshop软件的美化菜单里有实例,像皮肤红润那些只是一些色相的局部调整,没啥难度,磨皮、美白、祛斑这三个我集中在下面的文件包,有兴趣的朋友可以看下。
http://files.cnblogs.com/Imageshop/FaceBeautification.rar
****************************作者: laviewpbt 时间: 2014.7.27 联系QQ: 33184777 转载请保留本行信息**********************
转载于:https://my.oschina.net/abcijkxyz/blog/792295
关于人像美容之祛痘祛斑算法的一些尝试。相关推荐
- 关于人像美容之祛痘祛斑算法的一些尝试
本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3871237.html ...
- 几种民间排毒养颜祛痘DIY自制面膜 - 生活至上,美容至尚!
天特意为你们搜集6款民间盛传的排毒祛痘面膜,在家用食材轻松DIY,不花钱就能把痘痘给灭了! 胡萝卜面膜 材料:鲜胡萝卜500克,面粉5克 制法:取鲜胡萝卜洗净,捣碎;将捣碎的胡萝卜例及其汁液,加入面粉 ...
- 美图秀秀网页版新功能上线 新增磨皮祛痘
在人物照片的后期处理中,磨皮祛痘向来是一个比较重要的环节,特别是人像自拍.写真照等.不过,别以为这是件多么难做的事儿,因为美图秀秀网页版新上线了"磨皮祛痘"功能,也就是说以后不用东 ...
- 迹美 java_三款图像处理软件人像美容效果大比拼
面对电脑中超级多的个人照片,你知道该如何对它们进行后期处理,使之更加具有赏心悦目的效果吗?下面我们选择美图秀秀.iSee图片专家和光影魔术手三款图像处理软件,针对单纯的人像美容效果进行比较,看看哪一款 ...
- 中医偏方:巧用偏方祛痘,很多人都根治了!
中医偏方:巧用偏方祛痘,很多人都根治了! 祛痘是运用医学技术或方法消除青春痘地过程;痘是痤疮的俗名,又叫"青春痘"."暗疮"或"粉刺",是一 ...
- 这支研自985药学教授的祛痘神器,刷爆了大学朋友圈
万金志 985大学药学教授 2004~2013年于中山大学药学院任教 致力于芦荟研究和开发长达25年 中国首份芦荟专利获得者 万教授在过去的25年里,一直在和芦荟研究打交道. 在他眼中,芦荟就是他事业 ...
- 短视频美颜SDK里的祛痘功能是怎么实现的?
上次给同学们讲过美颜SDK美白功能的实现过程,受到了大家的一致好评,今天小编继续为大家解答一些美颜功能实现方面的问题.本次要讲解的功能和美白功能的热度不相上下,它就是我们最常用的美颜功能之一--&qu ...
- 使用opencv实现美颜(磨皮、祛痘)
使用opencv实现美颜(磨皮.祛痘) 头文件 #include <iostream> #include<opencv2/opencv.hpp> using namespace ...
- 图像美妆算法---自动祛斑算法研究
目前,市面上有不少的人脸美妆软件,大多数也都有自动去除皮肤斑点痘痘的功能,网上对于手动祛斑的算法已有了相关实现,但是,自动祛斑的算法却少之又少,今天,在这里我简单讲一下这方面的开发经验. 对于自动祛斑 ...
最新文章
- 【绝对靠谱】Vue生成二维码Qrcode,可插入二维码中心logo图标,可以设置二维码颜色大小等属性
- AAAI 2020论文解读:商汤科技发布新视频语义分割和光流联合学习算法
- 福利 | 爱德华·阿什福德·李:人类与AI技术将是共生关系
- struts2 action间跳转传值
- 【kali】kali设置burpsuite抓包dvwa
- 关于Vmware ESX 4.1添加第二个Servier Console 却无法添加网关的解决方法
- php刷新父页面,layui: 子iframe关闭/传值/刷新父页面
- 计算机科学与技术文理兼收吗,哪些专业是文理兼收的专业?
- oracle字段id加1,oracle 字段ID自动增1
- java后端开发需要学什么知识点(JAVA难学吗)
- c语言提示函数已有主体,C++中的函数名称粉碎机制和它的逆向应用 筋斗云网络...
- CREATE TABLESPACE语法
- Android系统简介
- 阿里云ACP云计算工程师认证攻略--转载
- [玩转UE4/UE5动画系统>Control Rig篇] 之 使用Control Rig实现目标偏移(Aim Offset)(附项目代码)
- 华为服务器 阵列信息查看,服务器查看磁盘阵列
- C# StreamReader对象
- Scratch(三十七):串联电路
- ipad下载的文件在哪里可以找到
- SAP 成本核算流程
热门文章
- Microsoft Office Excel 不能访问文件
- 解决sts 导入maven工程 报 Lifecycle mapping org.eclipse.m2e.jdt.JarLifecycleMapping is not available.
- skype安卓手机版_水晶直播app最新手机版-水晶直播app安卓免费版
- 二自由度云台扫描算法_基于HuskyLens人脸识别的二自由度自动跟踪云台
- ERROR c.z.hikari.pool.HikariPool :594 restartedMain HikariPool-1 - Exception 问题
- django模型使用操作
- 产品经理必看书籍推荐《水平营销》
- QObject::moveToThread: Current thread (0x5651ebdaa180) is not the object’s thread (0x5651eba7e2a0).
- python解析html用哪个模块_[转载]python模块学习---HTMLParser(解析HTML文档元素)
- 湖南hp服务器虚拟化解决方案,HP刀片服务器 虚拟化整合解决方案-2017年11月.doc...