Spaces:
Running
Running
File size: 1,157 Bytes
4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 8bc65c5 4336de4 |
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 |
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import io
def convert_to_sketch(image):
img = np.array(image)
# Ubah gambar ke grayscale
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Inversi warna
inverted_image = cv2.bitwise_not(gray_image)
# Terapkan gaussian blur
blurred = cv2.GaussianBlur(inverted_image, (21, 21), sigmaX=0, sigmaY=0)
# Inversi hasil blur
inverted_blurred = cv2.bitwise_not(blurred)
# Buat sketsa
sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0)
# Konversi sketsa menjadi gambar PIL
pil_image = Image.fromarray(sketch)
# Menyimpan gambar dalam format JPG
img_byte_arr = io.BytesIO()
pil_image.save(img_byte_arr, format="JPEG")
img_byte_arr.seek(0) # Kembali ke awal stream
return img_byte_arr # Gradio akan menangani ini sebagai file gambar
# Interface
gr.Interface(fn=convert_to_sketch,
inputs="image",
outputs=gr.Image(type="pil"),
title="Konversi gambar ke sketsa",
description="Unggah gambar dan dapatkan versi sketsa dalam format JPG").launch()
|