均值滤波计算_从零学美颜算法保边滤波

作者:天儿哥

有了前面的照片处理基础,这一篇开始讲美颜算法。

一、滤波为什么要保边?

人像美颜技术中,最重要的技术之一就是磨皮,没有磨皮谁还敢自拍,谁还敢直播?

磨皮本质上就是对图像进行滤波,比如前面讲的均值滤波,或者高斯滤波,说直白点就是对整张图片进行一定程度的模糊。但是仅这么处理是不够的,整张图片都会模糊掉,所以需要在模糊的同时,保留人像面部的边界特征,此处的“保留”就是保边。

4ee167245d9139b59e3abf68c6a85364.png

二、保边滤波算法

保边滤波算法有很多种,我们不一一展开,这里仅讨论有代表性的“双边滤波”,带大家感性认识保边滤波的实现思路。其他的保边滤波算法列在文末,有兴趣的读者可自行研究。

2.1 双边滤波原理:参看下面示意图。

左边的输入是一个表面粗糙并且有边界的图像,那个阶梯表示边界。

中间的滤波算法是一个高斯模糊 * 范围的权重,即在高斯模糊的基础上,保持阶梯的突变。

右边是滤波的结果,图像的边界依然存在,没有被模糊,阶梯两侧均进行了平滑的模糊。

5cdc7b4e03e875f5f29694401a42aa6a.png

聪明的你会发现,其实就是在高斯模糊的同时,根据当前像素周围的像素信息,来计算不同的权重,结合权重来模糊。大多数空间滤波的本质都是如此,掌握双边滤波一种,其他的也更容易理解。

2.2 结合双边滤波的公式加深理解:

假设像素I(i, j)的邻域半径为R,邻域⼤⼩为S,邻域内的像素为I(k,l),那么滤波后的像素值Id的计算公式如下,w(i, j, k,l )是权重函数

589165a316a725b09f34c3dc201bccdd.png

其中权重w的计算如下:

92a48a7d17f2414c1c79ebf97e951e48.png

σd和σr分别是空间距离、颜色差值的方差,exp函数即自然数e的幂。

可以想象,当处理到边界像素时,像素突变,I(i, j) - I(k,l) 值非常大,Wr ≈ 0,W(i,j,k,l)整体很小,即周围的像素影响很小,几乎保留了当前像素的原始值。这就是通过权重,实现了“保边”。

同理,当I(i, j) - I(k,l) 接近,Wr ≈ 1,则主要体现了高斯模糊Wd的权重,该像素进行了平滑的模糊处理。

处理结果:

5fc2d491a1e71be2efb77282913db74a.png

三、其他滤波

算法比较枯燥,单篇不适宜大而全,这里列举其他常见保边滤波算法,读者可自行研究。

1. Surface Blur滤波

Surface Blur滤波又叫表⾯模糊滤波,是Photoshop中的⼀种常⽤滤波算法,也是⼀种空间域滤波算法。

2. Guided滤波算法,论文:

http://mmlab.ie.cuhk.edu.hk/pdf/pami12Guided%20Image%20Filtering.pdf

3. 局部均值滤波算法

局部均值滤波算法是 JONG-SEN LEE于 1980年在论⽂[8]中提出的⼀种基于局部均值⽅差的滤波算法。在普通的均值滤波基础之上,增加了方差的权重,由于效率高被广泛应用。

4. Anisotropic滤波

算法原理有点复杂,需要复习多元微积分,熟悉“散度”的定义

Anisotropic滤波也叫各向异性扩散滤波,由Pietro Perona和Jagannatch Malik在1990年发表的论⽂[9]中提出,在图像去噪中效果明显。此算法可以在去噪的同时,保留图像的边缘,因此,笔者认为此算法也可以作为美颜算法的可选算法之⼀

5. Smart Blur滤波算法

Smart Blur是Photoshop 2018(简称PS2018)中出现的⼀种保边滤波器,具体参考论⽂不详。

6. MeanShift滤波算法(均值飘移)

MeanShift即均值漂移,最早由Fukunaga在1975年提出,论⽂题⽬为“The Estimation of the Gradient of a density function”。MeanShift滤波算法是⽤MeanShift算法来实现的⼀种图像保边滤波算。理解起来有点复杂,算法复杂度较高,感觉不适合实际的应用,且当参考。

本篇没有给出代码,后面有时间,我写一个demo,将算法内置到Android  iOS中供读者参考。

参考:图像视频滤镜与人像美颜

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值