python - ipywidgets:button.on_click() 有输出延迟
问题描述
介绍
我正在尝试制作一个小工具,用于使用 Jupyter Notebook 中的 ipywidgets 对图像进行分类,但是在对齐类和图像时遇到了一些麻烦。你有什么建议如何解决这个问题。
我做了什么
import ipywidgets as widgets
from IPython.display import display
import glob
# My images
image_paths = glob.glob("./images/*.png")
# Display image
def display_image(path):
file = open(path, "rb")
image = file.read()
return widgets.Image(
value=image,
format='png',
width=700,
height=700,
)
# Dropdown
def create_dropdown():
return widgets.Dropdown(
options=["1","2","3","4","5","6","7","8","9","10"],
value='5',
description='Category:',
disabled=False
)
# Creating widgets
input_dropdown = create_dropdown()
button = widgets.Button(description="Submit")
output_image = widgets.Image()
output_image.value = display_image(image_paths[-1]).value
# Define function to bind value of the input to the output variable
def bind_input_to_output(sender):
image_path = image_paths[-1]
image_score = input_dropdown.value
next_image_path = image_paths.pop()
print(image_score, image_path)
output_image.value = display_image(next_image_path).value
# Tell the text input widget to call bind_input_to_output() on submit
button.on_click(bind_input_to_output)
# Displaying widgets
display(output_image, input_dropdown, button)
结果
使用上面的代码,我最终对即将到来的图片进行了分类,但我真的不明白为什么。我第一次按下按钮时,小部件似乎没有更新图像。
解决方案
推荐阅读
- tensorflow - TfLite 模型与量化前模型的不同结果
- c - 这个数字代表什么
- javascript - addEventListener 在 div 中滚动
- python - asyncio python的并发和并行性
- c# - 使用Newtonsoft在c#中将字符串转换为逗号分隔数组
- javascript - 无法在 Node 中使用 ndjson 流,但类似的代码在 React 中有效
- reactjs - 在 react-js 中将 props.image 设置为背景图像
- python - 使用 GNU Parallel to Python 重写 shell 脚本
- nuxt.js - 顺风,nuxt webstrom - 智能感知不在开发模式下工作
- discord.py - 不和谐.py | 如果用户在 2 小时内收到 5 个警告,他将自动静音