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)