首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新bqplot图像小部件

更新bqplot图像小部件
EN

Stack Overflow用户
提问于 2020-05-26 17:31:20
回答 1查看 389关注 0票数 0

我正在做一个项目,它使用ipywidgets和bqplot来显示图像并与之交互。使用ipywidgets和open cv,我可以修改图像、保存图像并更新窗口小部件的值。但是我还需要bqplot的on_click_element方面,所以我使用上一个小部件。我仍然无法弄清楚如何在bqplot中使用小部件做同样的事情。

我想避免重画洞的事情,但如果需要,它将不得不关闭并只重绘小部件图像,因为这是一个更大的小部件集的一部分。例如,我想使用任意treshold对图像进行二值化。

从这里我获得了关于如何使用bqplot图像小部件的信息:https://github.com/bqplot/bqplot/blob/master/examples/Marks/Object%20Model/Image.ipynb

我使用与此非常相似的东西来创建我显示的小部件。

代码语言:javascript
复制
from IPython.display import display
import ipywidgets as widgets
import bqplot as bq

with open('chelsea.png', 'rb') as f:
    raw_image = f.read()

ipyimage = widgets.Image(value=raw_image, format='png')
x_sc = bq.LinearScale()
y_sc = bq.LinearScale()
bq_image = bq.Image(image=ipyimage, scales={'x':x_sc, 'y':y_sc})
img_ani = bq.Figure(marks=[bq_image], animation_duration=400)
display(img_ani)

在此之后,我不能更新图形,除非重新绘制洞的事情。有什么想法吗?

jupyter 5.7.8、ipython 7.5.0、ipywidgets 7.5.1、bqplot 0.12.10

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 19:10:56

通过分配新图像来更新bqplot图像标记...

代码语言:javascript
复制
with open("chelsea2.png", 'rb') as f:
    raw_image2 = f.read()

# ipyimage.value =  raw_image2  # This doesn't seems to sync with widget display. Would require a redisplay of bqplot figure

# create new ipywidgets image and assign it to bqplot image
ipyimage2 = widgets.Image(value=raw_image2, format='png')
bq_image.image = ipyimage2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62018899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档