Spaces:
Running
Running
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() | |