文档章节

美肤磨皮算法OpenCV3实现

IOTService
 IOTService
发布于 2017/11/06 23:30
字数 206
阅读 94
收藏 0

参考一个大神的美肤公式:

Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 

OpenCV3实现算法如下:

```python

# -*- coding: utf-8 -*-
'''
美肤-磨皮算法
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
'''
import cv2
import numpy as np

def beauty_face(img):
    dst = np.zeros_like(img)
    #int value1 = 3, value2 = 1; 磨皮程度与细节程度的确定
    v1 = 3
    v2 = 1
    dx = v1 * 5 # 双边滤波参数之一 
    fc = v1 * 12.5 # 双边滤波参数之一 
    p = 0.1
   
    temp4 = np.zeros_like(img)
    
    temp1 = cv2.bilateralFilter(img,dx,fc,fc)
    temp2 = cv2.subtract(temp1,img);
    temp2 = cv2.add(temp2,(10,10,10,128))
    temp3 = cv2.GaussianBlur(temp2,(2*v2 - 1,2*v2-1),0)
    temp4 = cv2.add(img,temp3)
    dst = cv2.addWeighted(img,p,temp4,1-p,0.0)
    dst = cv2.add(dst,(10, 10, 10,255))
    return dst

img = cv2.imread('../datas/s3.png')
dst = beauty_face(img)
cv2.imshow("SRC",img)
cv2.imshow("DST",dst)

cv2.waitKey()
cv2.destroyAllWindows()

运行结果:

© 著作权归作者所有

共有 人打赏支持
IOTService
粉丝 23
博文 153
码字总数 34417
作品 0
广州
其他
私信 提问
妹纸们的最爱 - 拓幻科技美颜SDK算法

现在各大手机制造商都在主推美颜效果,各种前后2000万像素,照亮你的美,各种逆光也清晰。其实这些看似神秘的美颜效果,除了依赖于手机像素之外,更重要的是攻城狮们对于美颜算法的构造。除了...

tillusory
2018/01/31
0
0
用 AI 管理你全身最大的器官,真的能让你更美吗?

  皮肤是人体最大的器官,以至于人们在拍照时总少不了这道程序——磨皮。不过这一次,曾打造出带来“现象级幻觉”的拍照 APP 的美图,希望能在真实生活中也能帮你管理皮肤。   这一点怎么...

DeepTech深科技
2017/12/22
0
0
图像滤镜艺术---人脸编辑(五官微调+瘦脸美型)

原文:图像滤镜艺术---人脸编辑(五官微调+瘦脸美型) 写本文的目的,实际上是对目前人脸美型这一块技术做个总结,跟大家 分享一下! 目前提到美颜算法,大家都会想到磨皮美白 /大眼瘦脸,实际上...

杰克.陈
2018/03/14
0
0
CSDN日报1806012——《欠薪的公司,不要做任何犹豫》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/blogdevteam/article/details/80667708 程序人生 | 欠薪的公司,不要做任何犹豫! 作者:stormzhang 当一家公...

CSDN官方博客
2018/06/12
0
0
学会利用Python实现“美颜”功能

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 导语 利用Python实现美颜。。。 这是之前在GitHub上下载的一个项目。。。 似乎有些日子了。。。 所以暂时找不到原项目的链接了。。。 今...

W3Cschool小编
2018/07/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android服务2 BindService

MainActivity { class MyService extends Service { public void onCreate() {} public IBinder onBind(Intent intent) { //return new Binder(); retutn new MyBinder(); } public boolean ......

Coding缘
21分钟前
0
0
所有和Java中代理有关的知识点都汇集于此,速进学干货。

对于每一个Java开发来说,代理这个词或多或少都会听说过。你可能听到过的有代理模式、动态代理、反向代理等。那么,到底什么是代理,这么多代理又有什么区别呢。本文就来简要分析一下。 代理...

Java填坑路
27分钟前
0
0
镜像即代码:基于Packer构建阿里云镜像

什么是Packer Packer是HashiCorp推出的一款工具,旨在提供简易的方式自动化构建镜像。通过Packer,你只需要在配置文件中指明镜像构建所需的基本信息及期望安装到镜像中的软件及配置,即可通过...

迷你芊宝宝
28分钟前
0
0
好程序员前端教程之JavaScript闭包和匿名函数的关系详解

好程序员前端教程之JavaScript闭包和匿名函数的关系详解 本文讲的是关于JavaScript闭包和匿名函数两者之间的关系,从匿名函数概念到立即执行函数,最后到闭包。下面一起来看看文章分析,希望...

好程序员IT
35分钟前
0
0
简单的file获取文本内容且, 修改文本内容(java8)

题主, 因入职新公司, 表设计混乱, 不得不手动写一个小脚本,获取所有字段后,重新写入至新表中; 思路 顺序如下 原sql 具体, 获取行 , 根据行开头的" ,"截取内容, 重新输入到txt, 中就可以了; 代...

尾生
45分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部