Python kivy纹理从阵列打印多次

Python kivy纹理从阵列打印多次,python,arrays,matlab,kivy,textures,Python,Arrays,Matlab,Kivy,Textures,我有一张来自matlab的数组图片。 我不想用kivy打印这张照片 编码:utf-8 导入时间 导入matlab.engine 从kivy.app导入应用程序 从kivy.uix.widget导入widget 从kivy.graphics导入矩形 从kivy.graphics.texture导入纹理 engine=matlab.engine.start_matlab(“-nodesktop-noFigureWindows”) 类kivyTest(小部件): 定义初始化(自): 超级(kivyTe

我有一张来自matlab的数组图片。 我不想用kivy打印这张照片

编码:utf-8 导入时间 导入matlab.engine 从kivy.app导入应用程序 从kivy.uix.widget导入widget 从kivy.graphics导入矩形 从kivy.graphics.texture导入纹理 engine=matlab.engine.start_matlab(“-nodesktop-noFigureWindows”) 类kivyTest(小部件): 定义初始化(自): 超级(kivyTest,self)。\uuuu init\uuuuu() self.texture=texture.create(大小=(560420),colorfmt=“rgb”) 时间、数据=发动机。测试数据(4.0、5.0、nargout=2) self.texture.blit\u buffer(data\u pict.\u data,bufferfmt=“ubyte”,colorfmt=“rgb”) 使用self.canvas: 矩形(pos=self.pos,大小=(560420),纹理=self.texture) def on_触控向下(自身,触控): x=触摸位置[0] y=触摸位置[1] 时间=发动机,数据=发动机。测试数据(x,y,n=2) self.texture.blit\u buffer(data\u pict.\u data,bufferfmt=“ubyte”,colorfmt=“rgb”) 超级() self.canvas.ask_update() 分类我的应用程序(应用程序): 标题='Matlab原始数据图片测试' def生成(自): 返回kivyTest() 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 我的应用程序().run()) 1D阵列中的数据图形数据大小为560x420x3 uint8 但当我在这里打印时,结果是:

正常结果应类似于:

你知道这种行为吗?

好的,我找到了方法

事实上,来自matlab的1D数据(pictureFrame.cdata.\u数据)不可用,因此,我们需要使用numpy重新组织它,并在传递到纹理时将其展平

data_reorg = np.array(data_pict._data).reshape(data_pict.size, order='F')
self.texture.blit_buffer(data_reorg.ravel(), bufferfmt="ubyte", colorfmt="rgb")

这种方法既快速又高效。

我不知道,但是如果将rgb声明更改为rgba(并将alpha通道值添加为1.0),是否会得到相同的行为?