有什么方法可以让用户在google colab中绘制图像并获取结果图像数据?

时间:2019-06-07 12:43:14

标签: html5-canvas google-colaboratory

我可以看到有一些方法可以将文件上传到google colab进行处理,但是如果用户可以绘制一个简单的图像来测试某些系统的视觉识别(即MNIST编号),那将是非常好的。 ,为用户提供28x28的网格以绘制数字并查看模型预测的数字。

因此,有许多示例说明如何在Codepen和一些预制的js库中执行此类操作,以便能够在画布上创建简单的像素编辑器组件,但是有人找到了一种可以让您获得类似效果的方法这在colab文档上,让用户输入数据然后从绘制的图像中获取数据吗?

1 个答案:

答案 0 :(得分:1)

我为此做了要点。

https://gist.github.com/korakot/8409b3feec20f159d8a50b0a811d3bca

主要部分是从JS发送数据

var data = new Promise(resolve=>{
  button.onclick = ()=>{
    resolve(canvas.toDataURL('image/png'))
  }
})

这会在Python中接收数据。

def draw(filename='drawing.png', w=400, h=200, line_width=1):
  display(HTML(canvas_html % (w, h, line_width)))
  data = eval_js("data")
  binary = b64decode(data.split(',')[1])
  with open(filename, 'wb') as f:
    f.write(binary)
  return len(binary)