|
import numpy as np |
|
import matplotlib.pyplot as plt |
|
import matplotlib.colors as mcolors |
|
import cv2 |
|
import gradio as gr |
|
|
|
from channel_functions import individual_channel_image_final, individual_channel_image, channel_distribution_plotter, which_channel_dominates |
|
description1 = '''This tab shows which channel dominates which part of an image\n |
|
Upload an image or drag an online image to the upload section. Bring it to the rectangular area. Release it when the border becomes red''' |
|
|
|
original_image_plot = gr.Radio(['yes','no'], label = "Do you want the original image be plotted in the background?") |
|
original_image_opacity = gr.Slider(0,1, value = 0.3, label = "Opacity of the original image") |
|
channel_opacity = gr.Slider(0,1, value = 0.7, label = "Opacity of the output channel-domination image") |
|
|
|
|
|
individual_channel_choice = gr.Radio(['Red','Green','Blue', 'All'], label = 'Which channel do you want to see the image in?') |
|
|
|
iface1 = gr.Interface( |
|
fn = which_channel_dominates, |
|
inputs = [gr.Image(), original_image_plot, original_image_opacity, channel_opacity], |
|
outputs = "image", |
|
title="Channel domination", |
|
description=description1, |
|
) |
|
|
|
iface2 = gr.Interface( |
|
fn = channel_distribution_plotter, |
|
inputs = gr.Image(), |
|
outputs = "image", |
|
title = "Distribution of pixel counts in all channels", |
|
description = 'Something random' |
|
) |
|
|
|
iface3 = gr.Interface( |
|
fn = individual_channel_image_final, |
|
inputs = [gr.Image(), individual_channel_choice], |
|
outputs = "image" , |
|
title = "Images in individual channels", |
|
description = "Something random" |
|
) |
|
|
|
combinedInterface = gr.TabbedInterface([iface1, iface2, iface3],['Channel domination', 'Channel distribution', "Individual channel"]) |
|
combinedInterface.launch(share=False) |
|
|