File size: 2,069 Bytes
99800f7
 
 
 
 
1e7f955
 
 
3df399d
51e0491
cdce078
 
8e43ded
99800f7
 
 
 
 
8e43ded
99800f7
cdce078
8e43ded
cdce078
8e43ded
cdce078
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99800f7
 
 
1e7f955
6ba79cc
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
import gradio as gr
import numpy as np
import cv2

def filter_img(input_img,filter_type):
    print('File name is : ',input_img)

    # Reading in as JPG format
    img = cv2.imread(input_img)
    
    filtered_img = np.zeros(img.shape, dtype=int)
    
    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 = img.dot(sepia_filter.T)
        filtered_img /= filtered_img.max()
    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(type="filepath"),gr.inputs.Dropdown(["Gray","B&W","Sharp","Gray-sharp","Vintage","Magenta","Yellow","Cyan","Blue","Green","Red"])], 
                        outputs = gr.outputs.Image(type="pil"),
                        title = "Image Filterz", 
                        description="Cool image filters!"
                    )

demo.launch(inline=False)