网站首页 > 资源文章 正文
一键磨皮
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-10-01 搞定电路设计之适于树莓派的±10V模拟输入和±15V模拟输出I/O模块
- 2024-10-01 MATLAB的简单使用(matlab简单用法)
- 2024-10-01 Matlab精彩绘图示例和代码分享(matlab绘制好看的图)
- 2024-10-01 Matlab中的基本数据类型介绍(matlab概述及基本数值运算)
- 2024-10-01 有关在matlab中对信号采样及频谱的一些解释;复数的频谱,高分辨率谱,高密度谱的一些理解
- 2024-10-01 Matlab 2016b详细安装步骤(matlab2016a的安装教程)
- 2024-10-01 matlab内存不足的解决方法(matlab内存不足怎么办)
- 2024-10-01 MATLAB基础学习之绘图操作(一)(matlab绘图教程详细)
- 2024-10-01 地球抛物与宇宙速度的MATLAB数值解法(ode45)
- 2024-10-01 MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)
你 发表评论:
欢迎- 05-1430个在线地图瓦片URL分享
- 05-1425个在线地图瓦片URL分享
- 05-14PixelStyle for Mac(mac照片编辑器)
- 05-14一篇文章带你了解CSS3 3D 转换知识
- 05-14我们的世界是假的?马斯克:我们生活在高文明模拟的矩阵游戏中
- 05-14【视觉AI的基石】斯坦福大学笔记!带你吃透卷积神经网络 (CNN)
- 05-14潮流 | 通过AAPE的新价目,无虑入荷未来主义服饰
- 05-14身份证查询服务API:准确识别身份证信息
- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)