face-correction / app.py
soiz's picture
Update app.py
f0664b9 verified
raw
history blame
1.06 kB
import cv2
import gradio as gr
import numpy as np
# 顔の補正関数
def correct_face(image):
# BGR(OpenCVのデフォルト)からLab色空間に変換
lab = cv2.cvtColor(image, cv2.COLOR_BGR2Lab)
# LabのLチャンネル(輝度)を取得
l, a, b = cv2.split(lab)
# CLAHE(局所的ヒストグラム均等化)を適用
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
l_clahe = clahe.apply(l)
# 再度チャンネルを統合し、LabからBGRに戻す
lab_clahe = cv2.merge((l_clahe, a, b))
corrected_image = cv2.cvtColor(lab_clahe, cv2.COLOR_Lab2BGR)
return corrected_image
# Gradioインターフェースの作成
iface = gr.Interface(
fn=correct_face,
inputs=gr.Image(type="numpy"),
outputs=gr.Image(type="numpy"),
title="顔補正アプリ",
description="画像をアップロードして顔の色と明るさ補正を行います。CLAHEを使用してコントラストを最適化しています。"
)
# アプリを実行
iface.launch()