我在使用 pyglet 显示 numpy 数组时遇到问题。我找到了一个非常相似的主题(如何使用 pyglet 显示一个 numpy 数组?),我使用过。我想以灰度显示数组,但 pyglet 用颜色显示它,请参阅图像:http: //i.stack.imgur.com/pL6Yr.jpg
def create(self, X,Y):
IMG = random((X,Y)) * 255
self.IMG = dstack((IMG,IMG,IMG))
return self.IMG
def image(self):
self.img_data = self.create(X,Y).data.__str__()
self.image = pyglet.image.ImageData(X,Y, 'RGB', self.img_data, pitch = -X*3)
return self.image
如果我保存并加载数组,它可以工作(但速度慢得多):
def image(self):
self.im_save=scipy.misc.toimage(self.create(X,Y),cmin=0, cmax=255)
self.im_save.save('outfile.png')
self.image = pyglet.image.load('outfile.png')
return self.image
我得到了我想要的:
i.stack.imgur.com/FCY1v.jpg
我在第一个代码示例中找不到错误:(
编辑:
非常感谢您的回答。在 Bago 的提示下,我得到了这个代码来工作:) 事实上,nfirvine 的建议是合理的,因为我只想以灰度显示矩阵。
def create(self, X,Y):
self.IMG = (random((X,Y)) * 255).astype('uint8')
return self.IMG
def image(self):
self.img_data = self.create(X,Y).data.__str__()
self.image = pyglet.image.ImageData(X,Y, 'L', self.img_data)
return self.image