Python Numpy内存管理

Python Numpy内存管理,python,arrays,numpy,Python,Arrays,Numpy,在本教程之后,我尝试应用numpy调色板方法: 但是我用下面的代码得到了一个错误的图像: palette_array = numpy.array(self.palette.tolist()) rgba_matrix = palette_array[self.matrix_values] image = Image.fromarray(rgba_matrix, mode='RGBA') ... 使用以下方法,一切都可以正常工作: palette_array = numpy.array(self.

在本教程之后,我尝试应用numpy调色板方法:

但是我用下面的代码得到了一个错误的图像:

palette_array = numpy.array(self.palette.tolist())
rgba_matrix = palette_array[self.matrix_values]
image = Image.fromarray(rgba_matrix, mode='RGBA')
...
使用以下方法,一切都可以正常工作:

palette_array = numpy.array(self.palette.tolist())
rgba_matrix = palette_array[self.matrix_values]
img = numpy.empty((640, 480), numpy.uint32)
for col in xrange(640):
    for row in xrange(480):
        img[row, col] = rgba_matrix[row, col]
image = Image.fromarray(img, mode='RGBA')
...
我认为这是一个与内存管理和链接对象相关的问题

我可以做些什么来避免循环


谢谢

图像在哪些方面是错误的?错误的尺寸?换位?错误的调色板?etc@NPE这是一个调换交错和错误的调色板值的组合。您可以查看这些结果,如果您包含完整的源代码或其链接,这将非常有用。@farenorth这是一个复杂项目的一部分,因此我提取了我们需要的代码,您可以对其进行测试:谢谢,好图像和坏图像之间的差异与两次将normalize_矩阵方法应用于矩阵有关。如果复制矩阵并将副本输入到第二个图像创建调用,则图像是相同的。干得好: