基于边缘检测的磨皮算法实现——OpenGL版
创始人
2024-05-29 20:13:22
0

一、背景

人脸磨皮算法的本质是模糊算法,但是与模糊算法最大的区别是,磨皮算法需要考虑保边效果,需要达到“磨皮了但又保留了脸部的各种纹理细节和边缘信息”的效果。保边的思路甚至与模糊的思路看似矛盾和冲突,因此目前主流磨皮算法都在模糊和保边两头发力,尤其是保边。

关于磨皮算法以及保边算法的原理可以去看我的另一篇博文介绍:
美颜的奥秘——磨皮底层原理

二、基于边缘检测的磨皮算法实现

本文探讨一种比较常见且比较易实现的带保边(边缘检测)的磨皮算法的具体实现

1.磨皮算法流程:

在这里插入图片描述

2.选择单独检测边缘的原因

很多模糊算法自带边缘检测,例如双边滤波、导向滤波(导向滤波介绍)等,但是他们的缺陷也很明显,例如性能不佳,计算量大,且需要处理比较大尺寸的图,且单单一个模糊效果在人脸上最终的磨皮效果也一般般。

因此这里把边缘检测和模糊分别单独实现,这样有几个优点:

  • 性能比较友好,模糊和边缘检测都可以用小图进行渲染
  • 效果更佳灵活,模糊算法可以灵活选择不同的模糊算法,例如高斯滤波、均值滤波,用于人脸效果的模糊和用于边缘检测的模糊可以选择不一样的算法

3.边缘检测图模糊

原始的边缘检测结果,虽然边缘比较精细和准确,但是过度往往都比较生硬,不适合直接作用在人脸上,会导致人脸细节局部区域比较突兀,因此这里对边缘检测的结果再做一次模糊,使得边缘过度更加自然和平整

4.效果展示


在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Git地址:https://github.com/sysu-huangwei/Smooth

博客地址:

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...