File size: 2,050 Bytes
dc4014d
 
ccea513
 
 
 
dc4014d
1f644ab
 
dc4014d
 
9745f92
ccea513
4f3074a
 
dc4014d
 
 
 
 
 
ccea513
dc4014d
ccea513
dc4014d
 
4f3074a
 
 
ccea513
dc4014d
4f3074a
dc4014d
ccea513
b04dd16
ccea513
2c032a1
ccea513
 
dc4014d
 
31c3a55
9745f92
 
 
 
31c3a55
 
dc4014d
 
 
db5f9ea
ccea513
46f83dd
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
import gradio as gr
from utils import *
import cv2
import numpy as np
import matplotlib.pyplot as plt
import io

def inference(img_path, template, angle):
    color_image = cv2.imread(img_path, cv2.IMREAD_COLOR)

    HSV_image = cv2.cvtColor(color_image, cv2.COLOR_BGR2HSV)
    selected_harmomic_scheme = HarmonicScheme(str(template), int(angle))
    new_HSV_image = selected_harmomic_scheme.hue_shifted(HSV_image, num_superpixels=-1)
    # Convert HSV to BGR
    result_image = cv2.cvtColor(new_HSV_image, cv2.COLOR_HSV2BGR)

    # Compute shifted histogram
    histo_1 = count_hue_histogram(HSV_image)
    histo_2 = count_hue_histogram(new_HSV_image)

    # Create Hue Plots
    fig1 = plothis(histo_1, selected_harmomic_scheme, "Source Hue")
    fig_1_cv = get_img_from_fig(fig1)
    fig2 = plothis(histo_2, selected_harmomic_scheme, "Target Hue")
    fig_2_cv = get_img_from_fig(fig2)

    hue_plots = np.concatenate((fig_1_cv, fig_2_cv), axis=1)

    cv2.imwrite('hue.jpg', hue_plots)
    cv2.imwrite('result_image.jpg', result_image)

    return ['result_image.jpg', 'hue.jpg']

title = 'Color Harmonization'
description = 'Compute Color Harmonization with different templates based on Color Harmonization paper by Daniel Cohen-Or et al. More metrics for user interfaces on https://interfacemetrics.aalto.fi'
article = "<p style='text-align: center'></p>"
examples = [['./examples/aim_interface.png', "V", 25], ['./examples/esfahan_unsplash.jpeg', "I", 352]]
# css = ".output_image, .input_image {height: 40rem !important; width: 100% !important;}"

gr.Interface(
    inference,
    [gr.Image(type='filepath', label='Original Image'),
     gr.Dropdown(choices=["X", "Y", "T", "I", "mirror_L", "L", "V", "i"],
                 value="X",
                 label="Template"),
     gr.Slider(0, 359, label="Angle")],
    [gr.Image(type='filepath', label='Harmonized Image'),
     gr.Image(type='filepath', label='Hue')],
    title=title,
    description=description,
    article=article,
    examples=examples,
    # css=css,
).launch(debug=False)