File size: 1,062 Bytes
e38d403
 
 
 
 
 
cd2329d
 
e38d403
f0664b9
cd2329d
f0664b9
 
 
 
e38d403
cd2329d
f0664b9
 
e38d403
 
 
 
 
 
 
 
 
f0664b9
e38d403
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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()