matlab repmat_三行MATLAB实现动漫风格照片

566a4c925ebe1a5236eb9e5e585e1f75.png

要把一张照片变成动漫风格一共有三步,分别是

(1)双边滤波得到一张色块分离的图片 [后面详细介绍原理]

(2)边缘提取得到描线图

(3)合并步骤1,2中的结果

这三步可以用三行代码实现:

fi_img 

测试三行代码,下面测试静物以及人像

bd5e0693011604848f38ea8e796f19e9.png

273bd22ebba95e7bdf303526e71b05ff.png

6e331da53de39be89fc56e0ddb4835e9.png

MATLAB~ 硬是用出了Photoshop的感觉

其中双边滤波是最有趣的部分

可能大家比较熟悉的是高斯滤波,高斯滤波是把周围的像素给加权平均到当前像素,权重取决于离当前像素的距离。

高斯权重的表达式是这个样的,其中k和l是当前像素的索引,i和j是图片上任意一点的像素索引。所以图片上i和j所在点对应的权重是:

而双边滤波对应的双边权重

把像素点的值考虑了进来,在取权重的时候不仅仅考虑像素点到所在滤波点的距离,还考虑对应像素的值,如果某一个像素和滤波像素的值比较相近,那么,权重就会大一点。

这样做有一个好处,就是可以保留原有的边缘:

c1869f9d7d9308951bdae76135a5dfba.png

市面上大部分美颜的所谓【磨皮】,就是双边滤波。

这里用到双边滤波是想得到一种带点模糊,又保留边缘的效果,所以甚妙啊。

=========

Pjer内容分类:

精选 射电 编程 科研工具 太阳物理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值