Skip to content
Snippets Groups Projects
Commit 82aa0238 authored by fima's avatar fima :beers:
Browse files

Merge branch 'gradio_plot_flicker_fix' into 'main'

Gradio plot flicker fix

See merge request !142
parents 191449a5 6709038f
No related branches found
No related tags found
1 merge request!142Gradio plot flicker fix
...@@ -166,17 +166,31 @@ class Interface(BaseInterface): ...@@ -166,17 +166,31 @@ class Interface(BaseInterface):
# Visualization and results # Visualization and results
with gr.Row(): with gr.Row():
def create_uniform_image(intensity=1):
"""
Generates a blank image with a single color.
Gradio `gr.Plot` components will flicker if there is no default value.
bug fix on gradio version 4.44.0
"""
pixels = np.zeros((100, 100, 3), dtype=np.uint8) + int(intensity * 255)
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(pixels, interpolation="nearest")
# Adjustments
ax.axis("off")
fig.subplots_adjust(left=0, right=1, bottom=0, top=1)
return fig
# Z Slicer # Z Slicer
with gr.Column(visible=False) as result_z_slicer: with gr.Column(visible=False) as result_z_slicer:
zslice_plot = gr.Plot(label="Z slice") zslice_plot = gr.Plot(label="Z slice", value=create_uniform_image(1))
zpos = gr.Slider( zpos = gr.Slider(
minimum=0, maximum=1, value=0.5, step=0.01, label="Z position" minimum=0, maximum=1, value=0.5, step=0.01, label="Z position"
) )
# Y Slicer # Y Slicer
with gr.Column(visible=False) as result_y_slicer: with gr.Column(visible=False) as result_y_slicer:
yslice_plot = gr.Plot(label="Y slice") yslice_plot = gr.Plot(label="Y slice", value=create_uniform_image(1))
ypos = gr.Slider( ypos = gr.Slider(
minimum=0, maximum=1, value=0.5, step=0.01, label="Y position" minimum=0, maximum=1, value=0.5, step=0.01, label="Y position"
...@@ -184,7 +198,7 @@ class Interface(BaseInterface): ...@@ -184,7 +198,7 @@ class Interface(BaseInterface):
# X Slicer # X Slicer
with gr.Column(visible=False) as result_x_slicer: with gr.Column(visible=False) as result_x_slicer:
xslice_plot = gr.Plot(label="X slice") xslice_plot = gr.Plot(label="X slice", value=create_uniform_image(1))
xpos = gr.Slider( xpos = gr.Slider(
minimum=0, maximum=1, value=0.5, step=0.01, label="X position" minimum=0, maximum=1, value=0.5, step=0.01, label="X position"
......
...@@ -163,29 +163,48 @@ class Interface(qim3d.gui.interface.InterfaceWithExamples): ...@@ -163,29 +163,48 @@ class Interface(qim3d.gui.interface.InterfaceWithExamples):
with gr.Column(scale=4): with gr.Column(scale=4):
def create_uniform_image(intensity=1):
"""
Generates a blank image with a single color.
Gradio `gr.Plot` components will flicker if there is no default value.
bug fix on gradio version 4.44.0
"""
pixels = np.zeros((100, 100, 3), dtype=np.uint8) + int(intensity * 255)
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(pixels, interpolation="nearest")
# Adjustments
ax.axis("off")
fig.subplots_adjust(left=0, right=1, bottom=0, top=1)
return fig
with gr.Row(): with gr.Row():
input_vol = gr.Plot( input_vol = gr.Plot(
show_label=True, show_label=True,
label="Original", label="Original",
visible=True, visible=True,
value=create_uniform_image(),
) )
binary_vol = gr.Plot( binary_vol = gr.Plot(
show_label=True, show_label=True,
label="Binary", label="Binary",
visible=True, visible=True,
value=create_uniform_image(),
) )
output_vol = gr.Plot( output_vol = gr.Plot(
show_label=True, show_label=True,
label="Local thickness", label="Local thickness",
visible=True, visible=True,
value=create_uniform_image(),
) )
with gr.Row(): with gr.Row():
histogram = gr.Plot( histogram = gr.Plot(
show_label=True, show_label=True,
label="Thickness histogram", label="Thickness histogram",
visible=True, visible=True,
value=create_uniform_image(),
) )
with gr.Row(): with gr.Row():
lt_output = gr.File( lt_output = gr.File(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment