网站首页 > 技术教程 正文
一键磨皮
I= double(imread('1.jpg')); H = RF(I,30,100) - I + 128; G = imfilter(H,fspecial('gaussian',[3 3],100)); opacity = 50; Dst = (I*(100 - opacity)+(I+2*G-256)*opacity)/100; imshow([uint8(I) uint8(Dst)]);
这是输入的原图。
<img data-rawheight="636" data-rawwidth="625" src="https://pic3.zhimg.com/b2e220c645b7c55b7b84bd8593fc780e_b.jpg" class="origin_image zh-lightbox-thumb" width="625" data-original="https://pic3.zhimg.com/b2e220c645b7c55b7b84bd8593fc780e_r.jpg">
这是效果图
<img data-rawheight="636" data-rawwidth="625" src="https://pic4.zhimg.com/41d28e4989e5e2e77b57634220c6427b_b.jpg" class="origin_image zh-lightbox-thumb" width="625" data-original="https://pic4.zhimg.com/41d28e4989e5e2e77b57634220c6427b_r.jpg">
再来两张效果
<img data-rawheight="989" data-rawwidth="1035" src="https://pic4.zhimg.com/a6a377c8908f5672d0bd502004445017_b.jpg" class="origin_image zh-lightbox-thumb" width="1035" data-original="https://pic4.zhimg.com/a6a377c8908f5672d0bd502004445017_r.jpg">
这里,RF是递归域变换滤波器(Domain Transform Filter),也可换成其它保边平滑的滤波器(Edge Perserving Filter),例双边滤波,导向滤波等。不是什么黑魔法,就是PhotoShop平湖法磨皮:,按步骤用Matlab化而已。这里,给出最后的计算公式,
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100
EPFFilter是一种保边平滑的滤波器,Opacity控制透明度,GaussBlur是高斯滤波了,简单的PS的操作非常易于用Matlab程序化。
磨皮后可以再增加美白功能,也是不超过十行代码的,效果看起来更佳(其实我是想说,可以卖一个好价钱呢)。若是对皮肤美白,磨皮,祛痘这些算法感兴趣,可以在Imageshop博客 进一步学习。
<img data-rawheight="570" data-rawwidth="1366" src="https://pic3.zhimg.com/bf8e0d157151ed8fcc6128dadd1e7072_b.jpg" class="origin_image zh-lightbox-thumb" width="1366" data-original="https://pic3.zhimg.com/bf8e0d157151ed8fcc6128dadd1e7072_r.jpg">
补充说明,
Matlab并没有收录RF这个函数,但Matlab2014a已经有imguidedfilter函数,在Matlab2014a可以运行以下6行代码。
I= double(imread('7.png')); H =double(imguidedfilter(uint8(I))) - 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)]);
它的成品做出来是这个样子的。
<img src="https://pic4.zhimg.com/8c860dc578fa8ac820b095a75ae1aa73_b.png" data-rawwidth="1244" data-rawheight="689" class="origin_image zh-lightbox-thumb" width="1244" data-original="https://pic4.zhimg.com/8c860dc578fa8ac820b095a75ae1aa73_r.jpg">
除了此外,图像处理中很多算法都可以用Matlab在10行内完成的。
比如美图秀秀的滤镜,彩铅,素描等,我就不再泄露更多秘密了。
<img data-rawheight="665" data-rawwidth="1258" src="https://pic1.zhimg.com/a05218dbde53e1716882db6c67ee86f0_b.jpg" class="origin_image zh-lightbox-thumb" width="1258" data-original="https://pic1.zhimg.com/a05218dbde53e1716882db6c67ee86f0_r.jpg">
<img data-rawheight="665" data-rawwidth="1258" src="https://pic4.zhimg.com/7240ab81264ea81da700959030ebfe93_b.jpg" class="origin_image zh-lightbox-thumb" width="1258" data-original="https://pic4.zhimg.com/7240ab81264ea81da700959030ebfe93_r.jpg">
我曾有打算做出一款比美图秀秀更加友好功能更加强大的修图软件,共享出去,但是一个人力量太渺小了。非为牟利,只是因为我也修图爱好者。
铅笔画特效:
去雾特效:
猜你喜欢
- 2024-11-06 基于MATLAB的刀具角度测量 matlab测工件尺寸
- 2024-11-06 「三十一」MATLAB图像变换之傅里叶变换
- 2024-11-06 「三十三」MATLAB图像变换之Radon变换(R变换)——投影重建图像
- 2024-11-06 「MATLAB数据导入与分析」MATLAB: 使用内存映射加快文件读写
- 2024-11-06 利用边缘检测计算物体面积(内含源码)
- 2024-11-06 自动驾驶毫米波雷达物体检测技术-算法
- 2024-11-06 基于粒子滤波器的电池剩余使用寿命计算matlab仿真
- 2024-11-06 「二十」MATLAB图像处理之六 matlab怎么做图像处理
- 2024-11-06 matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应
- 2024-11-06 《基于PLE结合卡尔曼滤波的RSSI定位算法matlab仿真》基于PLE
你 发表评论:
欢迎- 最近发表
-
- PPT中动作连贯的卡通人物,我集齐了100套
- 成都13岁女孩手绘逐帧动画走红 网友:这是天赋型选手
- Android主流UI开源库整理(android完整开源项目)
- 达芬奇更新啦!DaVinci Resolve Studio 20.0.1
- LM Studio-本地安装大模型 | OpenAI API 文字转语音本地运行程序分享
- lululemon律动快闪 多色系呈现夏季活力
- [AOA][分享]160503 智珉和偶吧玩起电影游戏 用一件衣服找回悸动
- Visual Studio 2022:一个功能全面且强大的IDE
- 纽约布什维克区艺术家工作室开放即将举行
- 从 CANopen到 PROFINET:网关助力物流中心实现复杂的自动化升级
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)