File size: 2,222 Bytes
99800f7 48013db 99800f7 d3e3172 d6dc447 2f73ba5 d6dc447 2f73ba5 d6dc447 2f73ba5 51e0491 5e97a51 cdce078 8e43ded 60f810a 6246395 8e43ded 99800f7 cdce078 8e43ded cdce078 8e43ded cdce078 99800f7 218f80f 13168fc 9df5dae 99800f7 d2c7ead |
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 55 56 57 58 59 60 61 |
import gradio as gr
import numpy as np
import cv2
from PIL import Image, ImageOps
def filter_img(input_img,filter_type):
img = input_img
new_height = 1080
ratio = float(new_height) / img.shape[0]
new_width = int(img.shape[1] * ratio)
img = cv2.resize(img, (new_width,new_height))
filtered_img = np.zeros_like(img)
if filter_type == 'Vintage':
sepia_filter = np.array([[0.393, 0.769, 0.189],
[0.349, 0.686, 0.168],
[0.272, 0.534, 0.131]])
filtered_img = np.dot(img, sepia_filter.T)
filtered_img = (filtered_img / filtered_img.max() * 255).astype(np.uint8)
elif filter_type == 'Gray-sharp':
img = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
filtered_img = cv2.addWeighted(img,4, cv2.blur(img,(128,128)),-4,128)
elif filter_type == 'Sharp':
filtered_img = cv2.addWeighted(img,4, cv2.blur(img,(128,128)),-4,128)
elif filter_type == 'Gray':
filtered_img = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
elif filter_type == 'B&W':
filtered_img = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
_,filtered_img = cv2.threshold(filtered_img,127,255,cv2.THRESH_BINARY)
elif filter_type == 'Magenta':
filtered_img[:,:,0] = img[:,:,0]
filtered_img[:,:,2] = img[:,:,2]
elif filter_type == 'Cyan':
filtered_img[:,:,1] = img[:,:,1]
filtered_img[:,:,2] = img[:,:,2]
elif filter_type == 'Yellow':
filtered_img[:,:,0] = img[:,:,0]
filtered_img[:,:,1] = img[:,:,1]
elif filter_type == 'Blue':
filtered_img[:,:,2] = img[:,:,2]
elif filter_type == 'Green':
filtered_img[:,:,1] = img[:,:,1]
elif filter_type == 'Red':
filtered_img[:,:,0] = img[:,:,0]
return filtered_img
demo = gr.Interface(filter_img,
inputs = [ gr.inputs.Image(),gr.inputs.Dropdown(["Gray","B&W","Sharp","Gray-sharp","Vintage","Magenta","Yellow","Cyan","Blue","Green","Red"])],
outputs= gr.components.Image(),
title = "Image Filterz",
description="Cool image filters!"
)
demo.launch(inline=False) |