|
import gradio as gr |
|
import cv2 |
|
import numpy as np |
|
|
|
def apply_filter(image, filter_type): |
|
if filter_type == "Grayscale": |
|
|
|
return convert_to_grayscale(image) |
|
elif filter_type == "Soft Glow": |
|
|
|
gaussian = cv2.GaussianBlur(image, (15, 15), 0) |
|
soft_glow = cv2.addWeighted(image, 0.5, gaussian, 0.5, 0) |
|
return soft_glow |
|
elif filter_type == "Portrait Enhancer": |
|
|
|
enhanced = cv2.detailEnhance(image, sigma_s=10, sigma_r=0.15) |
|
return enhanced |
|
elif filter_type == "Warm Tone": |
|
|
|
warm_image = cv2.applyColorMap(image, cv2.COLORMAP_AUTUMN) |
|
return warm_image |
|
elif filter_type == "Cold Tone": |
|
|
|
cold_image = cv2.applyColorMap(image, cv2.COLORMAP_WINTER) |
|
return cold_image |
|
elif filter_type == "High-Key": |
|
|
|
high_key = cv2.convertScaleAbs(image, alpha=1.2, beta=30) |
|
return high_key |
|
elif filter_type == "Low-Key": |
|
|
|
low_key = cv2.convertScaleAbs(image, alpha=0.7, beta=-30) |
|
return low_key |
|
elif filter_type == "Haze": |
|
|
|
haze = cv2.addWeighted(image, 0.7, np.full(image.shape, 255, dtype=np.uint8), 0.3, 0) |
|
return haze |
|
else: |
|
|
|
return image |
|
|
|
def convert_to_grayscale(image): |
|
|
|
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) |
|
return gray_image |
|
|
|
def convert_and_save(image, filter_type): |
|
|
|
filtered_image = apply_filter(image, filter_type) |
|
|
|
output_path = "output.jpg" |
|
cv2.imwrite(output_path, filtered_image) |
|
return filtered_image, output_path |
|
|
|
|
|
iface = gr.Interface( |
|
fn=convert_and_save, |
|
inputs=[ |
|
"image", |
|
gr.Radio( |
|
["None", "Grayscale", "Soft Glow", "Portrait Enhancer", "Warm Tone", "Cold Tone", "High-Key", "Low-Key", "Haze"], |
|
label="ํํฐ ์ ํ" |
|
) |
|
], |
|
outputs=["image", "file"], |
|
title="์ด๋ฏธ์ง ํํฐ ๋ฐ ํ๋ฐฑ ๋ณํ๊ธฐ", |
|
description="์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ํ๊ณ ํํฐ(๋๋ ํ๋ฐฑ ๋ณํ)๋ฅผ ์ ํํ๋ฉด, ๋ณํ๋ ์ด๋ฏธ์ง๋ฅผ JPG ํ์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค." |
|
) |
|
|
|
iface.launch() |
|
|