人像美化类软件中通常会提供一个磨皮功能,可以使得皮肤变得柔和,去除痘痘和斑点。本文基于OpenCV中的双边滤波器实现了一个简单的人脸美化功能。

双边滤波,Bilateral filter,是一种保持边缘的降噪平滑滤波器。注意两点,第一是保持边缘,这样对于人脸而言,可以在平滑皮肤区域的同时不破坏五官的边缘结构。第二,降噪平滑,这样就可以抑制皮肤上的斑点和痘痘,使得皮肤变得柔和。Bilateral filter同时利用了中心像素与周围像素在空间上和颜色强度上的差异,具体可参考这个链接:点击打开链接。

OpenCV中的cvSmooth功能支持双边滤波功能,调用格式为:

cvSmooth(constCvArr* src, CvArr* dst, int smoothtype=CV_BILATERAL, int size1=3, int size2=0,double    sigma1=0, double sigma2=0 )。其中要使用双边滤波功能,需指定size1,size3和size4三个参数,分别对应窗口大小size1*size1, color sigma和spatical sigma.

需要特别提醒的是,OpenCV中的Bilateral filater不支持原址运算,也就是说src和dst必须指定为不同的图像,如果指定为同一副图像,会出现运行时崩溃。

下图为一副网络图片,使用OpenCV中的双边滤波器进行处理,注意需要用cvCreateImage创建一副size、depth和channel与源图像相同的图像,参数设置size1=7,size2=0(无效参数),size3=70,size4=10。

        滤波结果如下,可见皮肤平滑了不少。

基于双边滤波的人脸美化相关推荐

  1. 双边滤波的人脸磨皮算法(宋茜)

    本文将介绍双边滤波的原理以及在人脸磨皮中的应用. 文章目录 双边滤波原理 人脸磨皮算法 双边滤波原理 双边滤波器是保边滤波器中广为人知的一种.保边滤波器指在滤波过程中能够有效的保留图片中的边缘信息的一 ...

  2. 基于双边滤波(BF)和加权最小二乘滤波(WLS)的RGB-NIR图像融合细节增强

    基于双边滤波(BF)和加权最小二乘滤波(WLS)的RGB-NIR图像融合细节增强 简介 实现 结果 下载 原文:RGB-NIR Image Enhancement by Fusing Bilatera ...

  3. 弱小目标检测跟踪算法研究(4) 基于双边滤波(BF)的红外弱小目标检测之背景抑制Opencv

    基于双边滤波(BF)的红外弱小目标检测之背景抑制Opencv 1. 前言 2. 双边滤波算法 3. Opencv实例 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱" ...

  4. 弱小目标检测跟踪算法研究(4) 基于双边滤波(BF)的红外弱小目标检测之背景抑制

    基于双边滤波(BF)的红外弱小目标检测之背景抑制 1. 前言 2. 双边滤波算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱"和&quo ...

  5. 双边滤波去雾matlab,基于双边滤波的去雾算法.doc

    基于双边滤波的去雾算法 中图法分类号:TP391.41 文献标识码:A 文章编号:1006-8961(2013) - - 论文引用格式: 基于双边滤波的图像去雾 王一帆1 ,尹传历2,黄义明1 , 王 ...

  6. 基于OpenCV双边滤波器的人脸美化 .

    人像美化类软件中通常会提供一个磨皮功能,可以使得皮肤变得柔和,去除痘痘和斑点.本文基于OpenCV中的双向滤波器实现了一个简单的人脸美化功能. 双边滤波,Bilateral filter,是一种保持边 ...

  7. 技术的真相 | 基于双边滤波的磨皮算法及优化

    一.背景简介 现在视频类应用非常火热,直播.美妆.医美应用层出不穷.用户们在使用这类应用时都希望自己在屏幕上的样子美美的,皮肤细腻光滑.本文就介绍一种实现简单.效果很好的磨皮算法以及对它的优化思路. ...

  8. 双边滤波opencv-python

    双边滤波--非线性滤波 文章目录 前言 一.双边滤波是什么? 二.cv.bilateralFilter()函数 1.函数原型 2.函数使用 参考 前言 虽然中值滤波作为典型的低通滤波器,可以在去除噪声 ...

  9. 【双边滤波】基于小波变换的多尺度自适应THZ增强双边滤波器的MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 提出了一种"基于小波变换的多尺度自适应双边滤波器"算法. 其对应的算法流程如下所示: 下面,我们从理论上限介绍一下这里所采 ...

最新文章

  1. 人工智能、大数据、云计算、机器学习和深度学习,主要有什么关系?
  2. 【数据展示】matplotlib.pyplot.plot()探究
  3. android仿苹果SwitchButton效果的实现
  4. 高清晰电影的文件后缀解析
  5. java web 的开发环境_JAVA WEB开发环境与搭建
  6. Python机器学习---何为机器学习?
  7. 理解SimpleExpandableListAdapter的构造函数
  8. BZOJ5286 HNOI/AHOI2018转盘(分块/线段树)
  9. 菜鸟上路-Web开发模式
  10. Android开发:菜单栏Menu用法讲解
  11. 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
  12. jmeter抓取百度热点链接
  13. 10个有效的Linux VPS/服务器性能检测与稳定性测评工具/命令
  14. php rsa 跨平台问题,为啥 rsa 这种算法扩展 php/python 不自带。而且跨平台也不是处理的很好...
  15. 用excel做机器学习
  16. 操作系统专栏——内存分配与回收
  17. windows装机必备:文件查找神器Everything + Wox
  18. Vue绑定<audio>/<video>标记的muted属性无效问题随记
  19. 【源代码】Python制作的赛车小游戏,逆行飙车
  20. OSPF 理论一(热爱自己 热爱生活)

热门文章

  1. 简单几步,让Mac外接显示器更好用
  2. 技术分享:2.0mm小间距多接枝刚挠结合板制作工艺研究
  3. 客厅中式装修风格 温馨舒适的生活格调
  4. 在.NET5 中读取Excel文件,评估下参加神秘献祭会的几位子民
  5. MSDN 、 RTM 、 OEM 、 VOL 四大版本之区别
  6. kodi android 卡顿,解决KODI v17/16在电视上不能打开4K播放卡顿的问题
  7. 小程序源码:开心锤锤超火动态表情包
  8. 无线路由器常用的五种工作模式详细介绍
  9. 企业管理员必看:企业邮箱如何注册?企业邮箱账号怎么管理?
  10. Java如何进行Base64的编码(Encode)与解码(Decode)?