Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
lappemic
commited on
Commit
•
346da5d
1
Parent(s):
8efad9d
append filters
Browse files
app.py
CHANGED
@@ -6,6 +6,7 @@ import kornia as K
|
|
6 |
from kornia.core import Tensor
|
7 |
|
8 |
|
|
|
9 |
def box_blur_fn(file, box_blur):
|
10 |
# load the image using the rust backend
|
11 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
@@ -15,6 +16,7 @@ def box_blur_fn(file, box_blur):
|
|
15 |
|
16 |
return K.utils.tensor_to_image(x_out)
|
17 |
|
|
|
18 |
def blur_pool2d_fn(file, blur_pool2d):
|
19 |
# load the image using the rust backend
|
20 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
@@ -24,6 +26,7 @@ def blur_pool2d_fn(file, blur_pool2d):
|
|
24 |
|
25 |
return K.utils.tensor_to_image(x_out)
|
26 |
|
|
|
27 |
def gaussian_blur_fn(file, gaussian_blur2d):
|
28 |
# load the image using the rust backend
|
29 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
@@ -36,17 +39,39 @@ def gaussian_blur_fn(file, gaussian_blur2d):
|
|
36 |
return K.utils.tensor_to_image(x_out)
|
37 |
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
|
|
40 |
examples = [
|
41 |
["examples/monkey.jpg", 1, 1, 1, 1, 1],
|
42 |
["examples/pikachu.jpg", 1, 1, 1, 1, 1],
|
43 |
]
|
44 |
|
45 |
-
|
|
|
|
|
46 |
box_blur_fn,
|
47 |
[
|
48 |
gr.inputs.Image(type="file"),
|
49 |
-
gr.inputs.Slider(minimum=1, maximum=10, step=1, default=1, label="Box Blur")
|
50 |
],
|
51 |
"image",
|
52 |
examples=examples,
|
@@ -56,11 +81,12 @@ box_blur_fn_demo = gr.Interface(
|
|
56 |
live=True
|
57 |
)
|
58 |
|
59 |
-
|
|
|
60 |
blur_pool2d_fn,
|
61 |
[
|
62 |
gr.inputs.Image(type="file"),
|
63 |
-
gr.inputs.Slider(minimum=1, maximum=
|
64 |
],
|
65 |
"image",
|
66 |
examples=examples,
|
@@ -70,7 +96,8 @@ blur_pool2d_fn_demo = gr.Interface(
|
|
70 |
live=True
|
71 |
)
|
72 |
|
73 |
-
|
|
|
74 |
gaussian_blur_fn,
|
75 |
[
|
76 |
gr.inputs.Image(type="file"),
|
@@ -84,15 +111,51 @@ gaussian_blur_fn_demo = gr.Interface(
|
|
84 |
live=True
|
85 |
)
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
demo = gr.TabbedInterface(
|
88 |
[
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
|
|
92 |
],
|
93 |
[
|
94 |
"Box Blur",
|
95 |
-
"Blur Pool"
|
|
|
|
|
|
|
96 |
]
|
97 |
)
|
98 |
|
|
|
6 |
from kornia.core import Tensor
|
7 |
|
8 |
|
9 |
+
# Define Functions
|
10 |
def box_blur_fn(file, box_blur):
|
11 |
# load the image using the rust backend
|
12 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
|
|
16 |
|
17 |
return K.utils.tensor_to_image(x_out)
|
18 |
|
19 |
+
|
20 |
def blur_pool2d_fn(file, blur_pool2d):
|
21 |
# load the image using the rust backend
|
22 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
|
|
26 |
|
27 |
return K.utils.tensor_to_image(x_out)
|
28 |
|
29 |
+
|
30 |
def gaussian_blur_fn(file, gaussian_blur2d):
|
31 |
# load the image using the rust backend
|
32 |
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
|
|
39 |
return K.utils.tensor_to_image(x_out)
|
40 |
|
41 |
|
42 |
+
def max_blur_pool2d_fn(file, max_blur_pool2d):
|
43 |
+
# load the image using the rust backend
|
44 |
+
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
45 |
+
img = img[None] # 1xCxHxW / fp32 / [0, 1]
|
46 |
+
|
47 |
+
x_out: Tensor = K.filters.max_blur_pool2d(img, int(max_blur_pool2d))
|
48 |
+
|
49 |
+
return K.utils.tensor_to_image(x_out)
|
50 |
+
|
51 |
+
|
52 |
+
def median_blur_fn(file, median_blur):
|
53 |
+
# load the image using the rust backend
|
54 |
+
img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32)
|
55 |
+
img = img[None] # 1xCxHxW / fp32 / [0, 1]
|
56 |
+
|
57 |
+
x_out: Tensor = K.filters.median_blur(img, (int(median_blur), int(median_blur)))
|
58 |
+
|
59 |
+
return K.utils.tensor_to_image(x_out)
|
60 |
+
|
61 |
|
62 |
+
# Define Examples
|
63 |
examples = [
|
64 |
["examples/monkey.jpg", 1, 1, 1, 1, 1],
|
65 |
["examples/pikachu.jpg", 1, 1, 1, 1, 1],
|
66 |
]
|
67 |
|
68 |
+
|
69 |
+
# Define Demos
|
70 |
+
box_blur_demo = gr.Interface(
|
71 |
box_blur_fn,
|
72 |
[
|
73 |
gr.inputs.Image(type="file"),
|
74 |
+
gr.inputs.Slider(minimum=1, maximum=10, step=1, default=1, label="Box Blur")
|
75 |
],
|
76 |
"image",
|
77 |
examples=examples,
|
|
|
81 |
live=True
|
82 |
)
|
83 |
|
84 |
+
|
85 |
+
blur_pool2d_demo = gr.Interface(
|
86 |
blur_pool2d_fn,
|
87 |
[
|
88 |
gr.inputs.Image(type="file"),
|
89 |
+
gr.inputs.Slider(minimum=1, maximum=20, step=1, default=1, label="Blur Pool")
|
90 |
],
|
91 |
"image",
|
92 |
examples=examples,
|
|
|
96 |
live=True
|
97 |
)
|
98 |
|
99 |
+
|
100 |
+
gaussian_blur_demo = gr.Interface(
|
101 |
gaussian_blur_fn,
|
102 |
[
|
103 |
gr.inputs.Image(type="file"),
|
|
|
111 |
live=True
|
112 |
)
|
113 |
|
114 |
+
|
115 |
+
max_blur_pool2d_demo = gr.Interface(
|
116 |
+
max_blur_pool2d_fn,
|
117 |
+
[
|
118 |
+
gr.inputs.Image(type="file"),
|
119 |
+
gr.inputs.Slider(minimum=1, maximum=20, step=1, default=1, label="Max Pool")
|
120 |
+
],
|
121 |
+
"image",
|
122 |
+
examples=examples,
|
123 |
+
# title=title,
|
124 |
+
# description=description,
|
125 |
+
# article=article,
|
126 |
+
live=True
|
127 |
+
)
|
128 |
+
|
129 |
+
median_blur_demo = gr.Interface(
|
130 |
+
median_blur_fn,
|
131 |
+
[
|
132 |
+
gr.inputs.Image(type="file"),
|
133 |
+
gr.inputs.Slider(minimum=1, maximum=5, step=2, default=1, label="Median Blur")
|
134 |
+
],
|
135 |
+
"image",
|
136 |
+
examples=examples,
|
137 |
+
# title=title,
|
138 |
+
# description=description,
|
139 |
+
# article=article,
|
140 |
+
live=True
|
141 |
+
)
|
142 |
+
|
143 |
+
|
144 |
+
# Create Interface
|
145 |
demo = gr.TabbedInterface(
|
146 |
[
|
147 |
+
box_blur_demo,
|
148 |
+
blur_pool2d_demo,
|
149 |
+
gaussian_blur_demo,
|
150 |
+
max_blur_pool2d_demo,
|
151 |
+
median_blur_demo
|
152 |
],
|
153 |
[
|
154 |
"Box Blur",
|
155 |
+
"Blur Pool",
|
156 |
+
"Gaussian Blur",
|
157 |
+
"Max Pool",
|
158 |
+
"Median Blur"
|
159 |
]
|
160 |
)
|
161 |
|