【发布时间】:2019-02-19 18:47:10
【问题描述】:
我正在尝试根据其 alpha 值过滤 RGBA 图像,例如,使用 Bokeh 回调。我研究这个图书馆不到一个星期,所以我对它的了解真的很原始。从 API example 我不太了解如何使用这些回调。我实现我想要的方法如下:
### RGBA Image
N = 20
img = np.empty((N,N, 4), dtype=np.uint8)
for i in range(N):
for j in range(N):
img[i, j, 0] = int(i/N*255)
img[i, j, 1] = 158
img[i, j, 2] = int(j/N*255)
img[i, j, 3] = np.random.randint(1, 255)
mask = img[:, :, 3]
img = np.squeeze(img.view(np.uint32))
source = ColumnDataSource(data=(dict(image=[img],
x=[0],
y=[0],
dw=[10],
dh=[10])))
p = figure(x_range=(0,10), y_range=(0,10))
p.image_rgba(source=source, image='image', x='x', y='y', dw='dw', dh='dh')
### Threshold Slider
def slider_callback(source=source):
data = source.data
img = data['image']
img = img * (mask > cb_obj.value).astype(int)
source.change.emit();
t_slider = Slider(start=0, end=255, value=255, step=1,
title="Threshold", width=140,
callback=CustomJS.from_py_func(slider_callback))
l = layout([t_slider, p])
curdoc().add_root(l)
show(l)
由于我在更改滑块值时没有看到绘图有任何变化,所以我想我不知道如何使用此回调。
【问题讨论】: