美颜技术---几种常用磨皮滤波器

2023-05-16

磨皮滤波器

磨皮模块的功能需求:把图像中人物身上的噪点进行滤除,噪点包含痘痘,色斑,痤疮等。实现磨皮这一功能通常是使用****保边滤波器****对图像进行平滑处理,而保边滤波器的一个重要特性是对图像进行平滑处理后,依然能够较好的保留图像边缘细节,例如人物的五官细节和轮廓。

常用的保边滤波算法有表面模糊、双边滤波、引导滤波。对于这一系列的保边滤波算法,核心实质是一样的,这里先总结,*保边滤波的实质*:在进行滤波时候,对图像中的边缘处像素,滤波权重尽量减小,边缘能够较为完整的保留; 图像中非边缘像素,滤波权重尽量增加,完成较好平滑。

高斯滤波器

高斯滤波器是一个很基础的图像滤波器,它能够有效的抑制噪声,平滑图像,因为其滤波核的权重是符合高斯分布,所以把它叫做高斯滤波器。****如何计算权重?*高斯滤波器的权重是根据邻居像素与中心像素的*相对位置作为特征输入,****通过某种高斯数学模型计算而来。

其具体数学模型如下所示:
在这里插入图片描述

其中m, n指的是滤波核邻域像素位置,i, j指的是滤波核中心像素位置,sigma指的是高斯函数的方差。

*模型解释:* 通过该模型计算的滤波器权重参数固定,距离中心越远,权重系数越小,反之越大。从理论上看,高斯滤波的缺点也比较明显,即只是根据邻域像素位置信息确定权重,而没有颜色信息的约束,造成的影响是如果像素是属于图像中前景的边缘像素,那么会因为识别不到前景边缘信息,从而导致图像前景边缘模糊的现象。

表面模糊

****表面模糊,*该算法源于PS中的磨皮滤镜算法,可以在保留边缘的情况下对图像非边缘区域进行平滑操作。该算法理论简易,易于实现。*核心的思想*是设置一个边长为K的方形滤波器,方形滤波器的权值根据邻近像素颜色与中心像素的相似性来计算,再把权值进行归一化,之后进行对应像素的加权求和,完成中心像素更新。*表面模糊为什么能够做到保护边缘的情况下进行滤波?****表面模糊利用了像素之间的相似性进行求权重,与中心像素差异越大的邻域像素权值越小,这也符合图像边缘的物理特征,即处于图像边缘分界处两边像素的差异值是相比于非边缘区域的像素值来说是偏大的,所以滤波器在对边缘像素更新时,较大程度的保留了边缘像素的特征,这也是为什么它能够保护边缘的情况下,可以对图像非边缘处进行模糊。

具体的****数学模型****如下所示:
在这里插入图片描述

其中r表示半径,Y是阈值,用于保持分数小于1,x_i表示滤波核中某个像素值,x_1表示当前中心像素值,x表示输出结果。

****模型解释:****该算法的权值需要不断的更新,因此算法的时间消耗比较大。其中Y的作用是为了保证差异性分数小于1,以至于相似度计算值范围在(0,1)内,核心思想是做加权求和,归一化,得到输出中心像素。

双边滤波器

*双边滤波器*,是基于高斯滤波的升级版,相比与高斯滤波只使用位置信息,双边滤波还加入了颜色的距离信息。加入颜色距离的意义在于给予了滤波器一种识别图像边缘的信息,从而在对边缘滤波的时候有较好的保留效果,又能对非边缘区域由良好的平滑效果。*如何做到识别图像边缘?*对于数字图像来说,图像的边缘有一个很好辨别的特征,就是图像边缘处的梯度比一般非边缘区域大很多,也意味着在图像边缘处会出现色阶突变的情况。而当滤波滑块滑到图像边缘做卷积时,对于一个边缘像素为中心像素的情形来说,由于边缘分界线两侧的颜色值差异较大,导致非边缘区域像素相比于边缘区域像素获得的权重小,所以加权后的像素大部分保留了边缘像素的特征,即图像边缘被保留。也可以用*另外一个角度去理解*,即先根据像素值对要用来进行滤波的邻域做一个分割或分类,再给该点所属的类别相对较高的权重,然后进行邻域加权求和,得到最终结果。

这里给出****双边滤波器的数学模型****:

在这里插入图片描述

在这里插入图片描述

Gs表示空间域中权重,Gr表示颜色值域权重,两种权重都是通过高斯函数求得。

在这里插入图片描述

在这里插入图片描述

BF指的是滤波核中心输出像素值,Wq指的是滤波核中权重和,用于权值归一化,Ip指的是滤波核中心输入像素值,Iq指的是邻域像素值。

从公式中可以看出双边滤波结果是通过****空间域与像素值域****通过高斯函数计算权值,再与邻域像素加权求和,最后得到更新后的像素值BF。

双边滤波****图表示****如下图,图a指的是输入原图的边缘处图像灰度纹理,图b表示原图边界处的双边滤波核,图c表示滤波后的输出图像边缘处图像灰度纹理。从图a可以看出,原先图像边界处,图像的灰度梯度出现突变;从图b中可以看出,双边滤波核中边界上像素的权值和非边界像素权值有较大差别,在平滑区域权值呈高斯分布,边缘突变处出现权值急剧下滑;从图c中可以看出经过滤波后的图像保留了边缘的梯度,同时非边缘的区域变得平滑。
在这里插入图片描述

****双边滤波参数调节?*双边滤波包含三个主要参数,滤波核尺寸,空间域标准差,值域标准差。*滤波核尺寸大小*影响了滤波程度,尺寸越大,信息参考范围越大,滤波程度越大,图像越平滑、模糊;*空间域方差*决定了滤波对空间域的敏感程度,方差越大,高斯函数越矮和平坦,即权重分布越均匀,导致滤波核对空间域不敏感,图像平滑模糊效果越好,反之成立。*像素值域方差****决定了滤波对值域的敏感程度,方差越大,高斯函数越矮和平坦,即权重分布越均匀,导致滤波核对值域不敏感,边缘保护效果越低,反之成立。

双边滤波****优势*正如前面所说,可以保留边缘的情况下进行图像平滑处理。但是*缺陷***也很明显,计算复杂度和高斯核的尺寸有关,算法时间复杂度为O(mk^2),m指的是图像像素点数量,k指的是核的尺寸,滤波核需要不断更新,比较耗时。

****双边滤波和表面模糊的差异,****两种滤波算法的核心思想是一致的,都是利用了图像边缘梯度大,颜色差异较大的特点,不一致的是双边滤波比表面模糊多使用了像素位置信息,这样更加利于图像做平滑操作,具体会优秀多少可以根据PSNR这种客观指标去比较。也可以认为表面模糊是双边滤波的简化版本,他减少了双边滤波的指数计算操作,优化了算法的计算复杂度,而在滤波效果上得根据实际实验情况对比。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

美颜技术---几种常用磨皮滤波器 的相关文章

随机推荐

  • 笔记本连接WiFi后浏览器不能上网,但是连接手机热点就可以。问题解决!!!

    原因 xff1a 电脑自动获取DNS出现问题 解决方法 xff1a 一 设置电脑DNS 当电脑遇到DNS故障时 xff0c 我们可以尝试使手动设置其他DNS解析服务 xff0c 国内已经有很多公共DNS xff0c 包括阿里云DNS xff
  • WSL2配置网络代理

    注意 xff1a 本文参考自文章 xff1a WSL2配置代理 xff0c 是对原文的补充 xff0c 使其适用于河对岸云服务代理 1 开启Windows代理 1 1 开启代理软件的局域网访问权限 请注意 xff1a 本文的WSL2代理配置
  • WSL2使用Nvidia-Docker实现CUDA版本自由切换

    众所周知 xff0c 深度学习的环境往往非常麻烦 xff0c 经常不同的项目所依赖的 torch tensorflow 包对 CUDA 的版本也有不同的要求 xff0c Linux 下进行 CUDA 的管理比较麻烦 xff0c 是一个比较头
  • 基于51单片机——60秒倒计时时钟

    设计要求 xff1a 两个数码管实现从59开始显示倒计时时钟 硬件电路连接 程序 include lt reg52 h gt unsigned char second timer void t1 init 中断初始化 TMOD 61 0x1
  • 【STM32】使用VSCode编辑STM32cubeIDE工程

    问题描述 xff1a 使用VSCode编辑STM32cubeIDE工程解决路径报错问题 操作步骤 第一步 xff1a 用VSCode打开创建好的STM32cubeIDE工程的文件夹 如图会看到很多报错 第二步 xff1a 创建VSCode文
  • 机器学习之逻辑回归

    一 逻辑回归基本介绍 Logistic Regression 用于分类问题监督学习算法 二 逻辑回归工作原理 根据现有数据对分类边界线建立回归公式 xff0c 具体分为以下三步 1 将决策边界表示为 z 61 W1X1 43 W2X2 43
  • Java数组:一维数组中元素移动问题

    描述 描述 给定一组整数 xff0c 要求利用数组把这组数保存起来 xff0c 实现对数组中的数循环移动 假定共有n个整数 xff0c 则要使前面各数顺序向后移m个位置 xff0c 并使最后m个数变为最前面的m个数 要求只用一个数组的方式实
  • iOS UIAlertController 用法介绍

    原文 xff1a https www jianshu com p b72753c51b39 UIAlertController UIAlertController的用法很简单 我们却经常使用 它用以取代iOS 8 0 之前的UIAlertV
  • 问题解决:在基于anaconda的spyder中安装第三方库

    问题描述 cmd中python包的工作路径与anaconda安装路径是同一级目录 xff0c 因此anaconda下的spyder并不能检测到该包 xff0c 直接使用命令行win 43 r cmd pip无效 xff1a 解决方案 找到a
  • postgresql表操作

    postgresql数据库操作 1 表基本操作1 1创建表1 2 查看表1 3清空表数据1 4删除表1 5退出数据库 2 表属性操作2 1增加列2 2删除列2 3修改列属性2 4增加列非空约束2 5 增加列唯一约束2 6删除主键约束2 7创
  • linux用户设置

    目录 用户和用户组 cy 用户名 cy xff1a 用户全名称 su xff1a 切换用户 userdel xff1a 删除用户 groupadd xff1a 创建组 普通组 xff0c 由系统默认生成的叫做主组 gpasswd xff1a
  • 输入十个数,求最大数,最小数,以及去掉两最值数的平均值。

    实现简单的评分 十个评分 xff0c 去最高和最低分 xff0c 求最后的平均分
  • Windows虚拟机通过libvirt使用CEPH RBD

    kvm虚拟机通过 libvirt 挂在 ceph rbd作为数据盘 一 首先确定我们的ceph环境是HEALTH OK span class token punctuation span root 64 cephmon ceph span
  • 英伟达独立显卡直通虚拟机

    显卡直通KVM虚拟机 1 确认CPU是否支持硬件虚拟化 egrep span class token operator span o span class token string 39 vmx svm 39 span span class
  • Nginx反向代理实现部署dist文件

    Linux服务器安装nginx可以参考文章 Linux服务器安装Nginx Nginx常用命令可以参考文章 Nginx 启动 关闭 重启 检测等常用命令 1 创建文件存放dist文件 我的nginx安装目录为 xff1a usr local
  • ffmepg+SDL2编译安装生成ffplay播放器

    ffmpeg 43 SDL2编译生成ffplay播放器 SDL2 xff1a Simple DirectMedia Layer 是一个跨平台开发库 xff0c 旨在通过 OpenGL 和 Direct3D 提供对音频 键盘 鼠标 游戏杆和图
  • 配置本地yum源和apt源,离线安装make、gcc、g++编译工具

    配置本地yum源和apt源 xff0c 离线安装make gcc等编译工具 起因 xff1a 安装的新操作系统的机器没有网卡驱动 xff0c 离线安装网卡驱动 xff0c 需要make和gcc编译工具 1 准备镜像源 centos7 xff
  • Linux防火墙firewall的使用

    LInux防火墙firewall的常用规则 一 firewall服务的启用和停止 1 开启firewall服务 systemctl start firewalld 2 关闭firewall服务 systemctl stop firewall
  • Windows 11 笔记本开热点,手机连接一直寻找 IP 或者出现已连接但无法访问Intenet网络

    Windows 11 笔记本开热点 手机连接一直寻找 IP 或者出现已连接但无法访问Intenet网络 原因 不管是宽带连接还是以太网连接 xff0c 出现这个问题是因为电脑没有开启共享网络 解决 打开网络适配器 网络和internet g
  • 美颜技术---几种常用磨皮滤波器

    磨皮滤波器 磨皮模块的功能需求 xff1a 把图像中人物身上的噪点进行滤除 xff0c 噪点包含痘痘 xff0c 色斑 xff0c 痤疮等 实现磨皮这一功能通常是使用 保边滤波器 对图像进行平滑处理 xff0c 而保边滤波器的一个重要特性是