Spaces:
Sleeping
Sleeping
import gradio as gr | |
from gradio_imageslider import ImageSlider | |
import cv2 | |
import numpy as np | |
def convert_to_grayscale(image): | |
""" | |
์ด๋ฏธ์ง๋ฅผ ํ๋ฐฑ์ผ๋ก ๋ณํ. | |
Gradio๋ RGB ํ์์ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ฏ๋ก, OpenCV์์ ์ฌ์ฉํ๊ธฐ ์ํด BGR๋ก ๋ณํ ํ ๊ทธ๋ ์ด์ค์ผ์ผ๋ก ๋ณํ. | |
""" | |
# RGB๋ฅผ BGR๋ก ๋ณํ | |
bgr_image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) | |
# BGR์ ๊ทธ๋ ์ด์ค์ผ์ผ๋ก ๋ณํ | |
gray_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2GRAY) | |
return gray_image | |
def convert_and_save(image): | |
""" | |
์ด๋ฏธ์ง๋ฅผ ํ๋ฐฑ์ผ๋ก ๋ณํํ๊ณ , ๋ค์ด๋ก๋ ๊ฐ๋ฅํ PNG ํ์ผ๋ก ์ ์ฅ. | |
๋ณ๊ฒฝ ์ ์ด๋ฏธ์ง๋ ์๋ณธ, ๋ณ๊ฒฝ ํ ์ด๋ฏธ์ง๋ ํ๋ฐฑ ์ด๋ฏธ์ง๋ก ์ฌ๋ผ์ด๋์ ํ์. | |
""" | |
# ํ๋ฐฑ ์ด๋ฏธ์ง ๋ณํ | |
gray_image = convert_to_grayscale(image) | |
# ํ๋ฐฑ ์ด๋ฏธ์ง๋ฅผ PNG๋ก ์ ์ฅ | |
output_path = "output.png" | |
cv2.imwrite(output_path, gray_image) | |
# ์๋ณธ ์ด๋ฏธ์ง๋ ์ด๋ฏธ RGB ํ์ | |
original_rgb = image.copy() | |
# ํ๋ฐฑ ์ด๋ฏธ์ง๋ฅผ RGB ํ์์ผ๋ก ๋ณํ (์ฌ๋ผ์ด๋ ํธํ์ ์ํด) | |
gray_rgb = cv2.cvtColor(gray_image, cv2.COLOR_GRAY2RGB) | |
# ๋ณ๊ฒฝ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ผ์ด๋๋ก ๋ฐํ (๋ณ๊ฒฝ ์ : ์๋ณธ, ๋ณ๊ฒฝ ํ: ํ๋ฐฑ) | |
return [original_rgb, gray_rgb], output_path | |
# ์ฌ๋ผ์ด๋ ์ค์ | |
slider = ImageSlider(label="๋ณํ ์ ํ ์ด๋ฏธ์ง") | |
# Gradio ์ธํฐํ์ด์ค ์ ์ | |
iface = gr.Interface( | |
fn=convert_and_save, | |
inputs="image", | |
outputs=[slider, "file"], | |
examples=["1.png", "2.jpg", "3.png"], # ์ํ ์ด๋ฏธ์ง ์ถ๊ฐ | |
title="์ด๋ฏธ์ง ํ๋ฐฑ ๋ณํ๊ธฐ", | |
description="์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ฉด ์๋ณธ๊ณผ ํ๋ฐฑ์ผ๋ก ๋ณํ๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ผ์ด๋๋ก ๋น๊ตํ ์ ์์ผ๋ฉฐ, ํ๋ฐฑ ์ด๋ฏธ์ง๋ฅผ PNG ํ์ผ์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค." | |
) | |
if __name__ == "__main__": | |
iface.launch() | |