File size: 1,322 Bytes
9692d43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e8dfdba
9692d43
 
 
 
 
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
import gradio as gr
from equalize import Equalize

def set_levels(image):
	if image is None:
		return 0, 0, 0
	eq = Equalize(0, 0, 0)
	eq.set_level(image)
	return round(eq.level[Equalize.R], 2), round(eq.level[Equalize.G], 2), round(eq.level[Equalize.B], 2)

def equalize(image, level_r, level_g, level_b):
	eq = Equalize(level_r, level_g, level_b)
	dest = eq.filter(image)
	return dest

with gr.Blocks(title='image color equalizer') as app:
	gr.Markdown('# Image Color Equalizer')

	with gr.Row():
		with gr.Column():
			image = gr.Image(type='pil')
			level_r = gr.Slider(maximum=1.0, value=0.0, step=0.01, label='R level')
			level_g = gr.Slider(maximum=1.0, value=0.0, step=0.01, label='G level')
			level_b = gr.Slider(maximum=1.0, value=0.0, step=0.01, label='B level')
			inputs = [image, level_r, level_g, level_b]
			clear = gr.ClearButton([image, level_r, level_g, level_b])
			btn = gr.Button(value='Submit')
		with gr.Column():
			outputs = [gr.Image(label='output', type='pil')]

	clear.add(inputs + outputs)
	btn.click(equalize, inputs=inputs, outputs=outputs, concurrency_limit=20)
	image.change(set_levels, inputs=[image], outputs=[level_r, level_g, level_b], concurrency_limit=20)

	gr.Examples(
		[['examples/example1.jpg'], ['examples/example2.jpg']],
		[image],
		#cache_examples=True
	)

app.launch()