2024-09-26 18:04:32 发布
网友
为了演示手写数字识别系统,我希望能够在python3应用程序中用鼠标绘制数字。这些图形必须以28×28纽比阵列中的灰度光栅图像结束。在
由于数字必须与MNIST dataset中的数字相似,因此不能有别名,所以最好是在大画布上用粗笔画,将图像读入Numpy数组,然后再对其进行降采样。在
我怎样才能做到这一点?在
编辑:最初,我考虑使用Tkinter画布绘制,但似乎有no way来获得Tkinter画布绘图的光栅化版本。在
好吧,所以我显然不能用Tkinter解决这个问题。在
但是,我找到了this question。事实证明,通过使用PySide提供的Python绑定,这在Qt中是可能的(PyQt可能也会起作用)。类^{}包含一个名为^{}的方法,该方法返回像素数据的内存视图。然后可以使用^{}将其转换为Numpy数组。在
虽然QImage实例不是widget对象,因此它本身也不会由Qt呈现,但它可以是普通的QWidget对象的drawn。如果then QWidget是子类,那么方法mousePressEvent、mouseMoveEvent和{}可以在子类中重写,并使其在QImage对象中绘制例如QPainterPath,如here。在
QWidget
mousePressEvent
mouseMoveEvent
QImage
好吧,所以我显然不能用Tkinter解决这个问题。在
但是,我找到了this question。事实证明,通过使用PySide提供的Python绑定,这在Qt中是可能的(PyQt可能也会起作用)。类^{} 包含一个名为^{} 的方法,该方法返回像素数据的内存视图。然后可以使用^{} 将其转换为Numpy数组。在
虽然QImage实例不是widget对象,因此它本身也不会由Qt呈现,但它可以是普通的}可以在子类中重写,并使其在
QWidget
对象的drawn。如果thenQWidget
是子类,那么方法mousePressEvent
、mouseMoveEvent
和{QImage
对象中绘制例如QPainterPath,如here。在相关问题 更多 >
编程相关推荐