|
import gradio as gr |
|
import kornia as K |
|
from kornia.core import Tensor |
|
import numpy as np |
|
|
|
def enhance(image, brightness, contrast, saturation, gamma, hue): |
|
|
|
if isinstance(image, np.ndarray): |
|
img = K.image_to_tensor(image).float() / 255.0 |
|
else: |
|
|
|
img = K.io.load_image(image, K.io.ImageLoadType.RGB32) |
|
|
|
img = img.unsqueeze(0) |
|
|
|
|
|
x_out: Tensor = K.enhance.adjust_brightness(img, float(brightness)) |
|
x_out = K.enhance.adjust_contrast(x_out, float(contrast)) |
|
x_out = K.enhance.adjust_saturation(x_out, float(saturation)) |
|
x_out = K.enhance.adjust_gamma(x_out, float(gamma)) |
|
x_out = K.enhance.adjust_hue(x_out, float(hue)) |
|
|
|
return K.utils.tensor_to_image(x_out.squeeze()) |
|
|
|
examples = [ |
|
["examples/ninja_turtles.jpg", 0, 1, 1, 1, 0], |
|
["examples/kitty.jpg", 0, 1, 1, 1, 0], |
|
] |
|
|
|
title = "Kornia Image Enhancements" |
|
description = "<p style='text-align: center'>This is a Gradio demo for Kornia's Image Enhancements.</p><p style='text-align: center'>To use it, simply upload your image, or click one of the examples to load them, and use the sliders to enhance! Read more at the links at the bottom.</p>" |
|
article = "<p style='text-align: center'><a href='https://kornia.readthedocs.io/en/latest/' target='_blank'>Kornia Docs</a> | <a href='https://github.com/kornia/kornia' target='_blank'>Kornia Github Repo</a> | <a href='https://kornia.github.io/tutorials/#category=kornia.enhance' target='_blank'>Kornia Enhancements Tutorial</a></p>" |
|
|
|
iface = gr.Interface( |
|
enhance, |
|
[ |
|
gr.Image(type="numpy"), |
|
gr.Slider(minimum=0, maximum=1, step=0.1, value=0, label="Brightness"), |
|
gr.Slider(minimum=0, maximum=4, step=0.1, value=1, label="Contrast"), |
|
gr.Slider(minimum=0, maximum=4, step=0.1, value=1, label="Saturation"), |
|
gr.Slider(minimum=0, maximum=1, step=0.1, value=1, label="Gamma"), |
|
gr.Slider(minimum=-0.5, maximum=0.5, step=0.1, value=0, label="Hue"), |
|
], |
|
"image", |
|
examples=examples, |
|
title=title, |
|
description=description, |
|
article=article, |
|
live=True |
|
) |
|
|
|
iface.launch() |