日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

人像美白的python实现

發布時間:2024/1/18 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人像美白的python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
人像美白在現在的美顏功能里面幾乎屬于必備的,各家的方案都不太一致,本文主要介紹一種基于膚色分割的人像美白方案。 首先得將人像進行皮膚分割,具體最好是使用AI模型,這里就不展開了,本人側重點是美白算法,所以這里直接使用了一張皮膚分割好的mask圖。 mask圖的效果如下圖所示,白色區域為皮膚區域,黑色區域為非皮膚區域。

?python代碼如下:

import cv2 import numpy as npdef skin_whiten(img, skin_mask, whitening_degree=1.0):kernel_size = 30dilate_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (kernel_size, kernel_size))erode_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (kernel_size, kernel_size))skin_mask = cv2.dilate(skin_mask, dilate_kernel, 1)skin_mask = cv2.erode(skin_mask, erode_kernel, 1)skin_mask = cv2.blur(skin_mask, (20, 20)) / 255.0skin_mask = cv2.resize(skin_mask, (img.shape[1], img.shape[0]))skin_mask[:, :, 0] *= 0.75skin_mask[:, :, 1] *= 0.75whiten_mask = skin_mask * 0.2 * whitening_degree + 0.5img = img / 255.0output_pred = (-2 * whiten_mask + 1) * img * img + 2 * whiten_mask * imgoutput_pred = output_pred * 255.0return output_predimg = cv2.imread("tmp/17.png") mask = cv2.imread("tmp/17_mask.jpg") res_img = skin_whiten(img=img, skin_mask=mask, whitening_degree=2.0) cv2.imwrite("tmp/17_whiten.jpg", res_img)

效果圖如下:

?

我們可以看到,上圖的美白效果還是很自然,而且邏輯也非常簡單

總結

以上是生活随笔為你收集整理的人像美白的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。