赞@Bryan Oakley说:有没有获得Tkinter Canvas绘图的栅格化版本的方法。
不过,我想通了,这种解决方法:
import skimage.io as ski_io
(...)
# draw your canvas
(...)
# save canvas to .eps (postscript) file
canvas.postscript(file="tmp_canvas.eps",
colormode="color",
width=CANVAS_WIDTH,
height=CANVAS_HEIGHT,
pagewidth=CANVAS_WIDTH-1,
pageheight=CANVAS_HEIGHT-1)
# read the postscript data
data = ski_io.imread("tmp_canvas.eps")
# write a rasterized png file
ski_io.imsave("canvas_image.png", data)
我真的不喜欢的解决方法,但skimage
似乎是阅读PostScript文件,写的PNG最快的解决方案。
Scikit-image被开发为SciPy一个工具包,因此它正在与scipy.ndimage
内部,这是我想要什么,并可以用来很容易地创建np.ndarray
。
此外,scikit-learn是一个功能强大且快速的图像处理软件,可以操作,读取和保存各种图像格式。
现在你有充分的选择:得到NumPynp.ndarray
就进一步计算帆布数据,操纵scipy.ndimage
与SciPy的/ scikit图像或保存数据,例如作为一个光栅化的PNG,到磁盘。
我从来没有使用过numpy,但是从canvas项目获取坐标的方法已有详细记录。 –
是的,但我需要图像数据,如数据数组或像Canvas中的某些图像文件(如jpg,png,tiff,位图等)。对象的坐标本身与我无关,因为只有坐标,我将不得不重新绘制景物,例如用PIL。我需要光栅化图像数据。 – daniel451
没有办法从画布上获取栅格化图像数据 –