背景
朋友给了个证件磨皮的需求。研究了实现方式,记录一下。
实现原理
大神提供的算法:
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
大神本神传送门,该算法其实是对 PS 的一种磨皮方案的脚本实现。
Python + OpenCV 实现
网上看到的一个基于上述公式的 python 实现方案beauty_face,但是他再线性光叠加时出错,修正后如beauty_face2(由于对Python矩阵运算不熟悉使用了比较笨的方法实现), 具体见代码:
#!/bin/python
# 祛痘美白
import numpy as np
import cv2
def beauty_face(img):
'''
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
https://my.oschina.net/wujux/blog/1563461
'''
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.subtr

本文介绍了如何使用Python和OpenCV实现图片美白磨皮效果,详细解析了实现原理并提供了修正后的代码示例,包括beauty_face和beauty_face2两个函数,通过双边滤波和高斯模糊进行图像平滑处理。
最低0.47元/天 解锁文章
531

被折叠的 条评论
为什么被折叠?



