【发布时间】:2020-08-21 00:07:27
【问题描述】:
我正在使用我制作的模型使用 Tkinter 制作手写数字解释器。我保存画布图像,然后通过我的模型读回它以获得预测。我用 cv.delete("all") 清除画布,然后绘制另一个数字进行预测,得到一个不稳定的预测。
初步结果:(3 是 3 :)!!!)
然后我清除它并写另一个数字:
然后我转到保存图像的文件夹,图片如下所示:
这是我的代码,用于定义我的画布和我要绘制的图像。
# define the canvas and image to save
lastx, lasty = None, None
cv = Canvas(root, width=420, height=420, bg='black')
image1 = PIL.Image.new("L",(420,420),"black")
draw = ImageDraw.Draw(image1)
cv.bind('<1>', activate_paint)
cv.pack(expand=YES, fill=BOTH)
这是我用来绘制的代码:
def activate_paint(e):
global lastx, lasty
cv.bind('<B1-Motion>', paint)
lastx, lasty = e.x, e.y
def paint(e):
global lastx, lasty
x, y = e.x, e.y
cv.create_line((lastx, lasty, x, y), fill = 'white',width=30)
# --- PIL
draw.line((lastx, lasty, x, y), fill='white', width=30)
lastx, lasty = x, y
这是我点击预测按钮时用来保存它的代码:
filename = f'img_to_predict.png'
image1.save(filename)
我只需要清除按钮来使图像真正空白,这样它就不会保存在以前的图像上。谁能把我推向正确的方向?
谢谢!
杰克逊
【问题讨论】:
-
您还需要通过调用
draw.rectangle((0, 0, 420, 420), fill="black")来清除图像。
标签: python image canvas tkinter save