「图像处理」基于Opencv的一个美颜算法

本文是转载的,备份一下代码,方便自己查找。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :beauty.py
# @Time      :2020/6/29 15:37
# @Author    :Raink


import os
import cv2


def beauty_face(img):
    v1 = 3  # 磨皮程度
    v2 = 1  # 细节程度
    dx = v1 * 5  # 双边滤波参数之一 
    fc = v1 * 12.5  # 双边滤波参数之一 
    p = 0.1
    # 双边滤波
    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

dir = r"E:\Images"
file_names = os.listdir(dir)
files = [os.path.join(dir, name) for name in file_names]
cv2.namedWindow("SRC", cv2.WINDOW_NORMAL)
cv2.namedWindow("DST", cv2.WINDOW_NORMAL)
for file in files:
    img = cv2.imread(file);
    dst = beauty_face(img)
    cv2.imshow("SRC", img)
    cv2.imshow("DST", dst)
    cv2.waitKey()

效果如下,总体来说还是很不错的:

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV美颜算法是通过图像处理技术对人脸进行优化和修饰,使人脸看起来更加光滑、无瑕疵,提升颜值的一种算法。 首先,美颜算法会检测图像中的人脸区域,并对其进行定位和标记。通过特征提取技术,识别人脸上的关键点,如眼睛、嘴巴、鼻子等,并计算出人脸的姿态和角度,为后续处理提供基础数据。 接下来,美颜算法会对人脸区域进行皮肤检测,通过色彩空间的转换和皮肤模型的建立,从图像中提取出人脸皮肤的区域。然后,通过滤波技术对皮肤区域进行平滑处理,去除皮肤上的瑕疵和皱纹,同时保留人脸的细节,并调整亮度和对比度,增强图像的清晰度。 此外,美颜算法还会对人脸区域进行光照和色彩的调整,使人脸的肤色更加自然和均匀。通过补偿光照不均匀的区域,使人脸的亮度分布更加均匀,同时调整肤色的饱和度和色调,使之适应不同的环境和需求。 最后,美颜算法会对人脸区域进行细节增强和修饰,通过锐化边缘和增加细节的方式,使人脸的轮廓更加清晰,突出人脸的特征和轮廓,同时平衡细节增强的程度,避免过度处理导致的不自然感。 综上所述,OpenCV美颜算法通过人脸定位、皮肤检测、滤波处理、光照调整和细节增强等步骤,实现对人脸图像的优化和修饰,让人脸看起来更加光滑、无瑕疵,提升颜值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值