File size: 2,013 Bytes
5cdb935 3f68dad 5cdb935 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 2784973 d1cbde3 3f68dad d1cbde3 0ab25fe d1cbde3 ce8c8d0 67c1806 d1cbde3 67c1806 5cdb935 3f68dad 67c1806 d1cbde3 a8cff8d d1cbde3 67c1806 a8cff8d d1cbde3 67c1806 3f68dad 5cdb935 ce8c8d0 | 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import gradio as gr
import cv2
import numpy as np
def apply_filter(image, filter_type, alpha, beta):
if filter_type == "Soft Glow":
gaussian = cv2.GaussianBlur(image, (15, 15), 0)
soft_glow = cv2.addWeighted(image, 0.5, gaussian, 0.5, 0)
result = soft_glow
elif filter_type == "Portrait Enhancer":
result = cv2.detailEnhance(image, sigma_s=10, sigma_r=0.15)
elif filter_type == "Warm Tone":
result = cv2.applyColorMap(image, cv2.COLORMAP_AUTUMN)
elif filter_type == "Cold Tone":
result = cv2.applyColorMap(image, cv2.COLORMAP_WINTER)
elif filter_type == "High-Key":
result = cv2.convertScaleAbs(image, alpha=1.2, beta=30)
elif filter_type == "Low-Key":
result = cv2.convertScaleAbs(image, alpha=0.7, beta=-30)
elif filter_type == "Haze":
haze = cv2.addWeighted(image, 0.7, np.full(image.shape, 255, dtype=np.uint8), 0.3, 0)
result = haze
else:
result = image
# 사용자 정의 밝기 및 대비 적용
adjusted = cv2.convertScaleAbs(result, alpha=alpha, beta=beta)
return adjusted
def live_preview(image, filter_type, alpha, beta):
# 실시간으로 이미지에 필터와 밝기/대비 적용
processed_image = apply_filter(image, filter_type, alpha, beta)
return processed_image
# Gradio 인터페이스 정의
iface = gr.Interface(
fn=live_preview,
inputs=[
"image",
gr.Radio(
["Soft Glow", "Portrait Enhancer", "Warm Tone", "Cold Tone", "High-Key", "Low-Key", "Haze"],
label="필터 선택"
),
gr.Slider(0.5, 2.0, step=0.1, value=1.0, label="밝기 (alpha)"),
gr.Slider(-100, 100, step=10, value=0, label="대비 (beta)")
],
outputs="image",
live=True, # 실시간 업데이트를 활성화
title="컬러 이미지 편집기",
description="이미지를 업로드하고 필터를 선택한 후 밝기와 대비를 실시간으로 조절하세요."
)
iface.launch()
|