| 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) |
|
|