PIL图像到numpy数组没有副本

时间:2019-05-31 09:07:35

标签: numpy python-imaging-library

我需要将图像创建为2D numpy数组。对于背景,图像像素值为0,而在我要绘制的某些多边形中则为1。我正在处理大图像,因此避免不必要的数据复制很重要。

我开始使用PIL图片以从PIL.ImageDraw模块中受益。

这里是一个例子:

shape = (768, 1024)    # YX (rows, cols) convention
triangle = [(10, 10), (1014, 10), (512, 758)]   # XY convention
imgMask = Image.new('L', (shape[1], shape[0]), 0)  # XY
ImageDraw.Draw(imgMask).polygon(triangle, outline=1, fill=1)

mask = numpy.array(imgMask, copy=False)

不幸的是,最后一行似乎总是导致数据的副本。我怀疑PIL数组接口总是返回其数据缓冲区的副本。

是否可以直接访问PIL图像数据缓冲区?

0 个答案:

没有答案