У меня есть изображение в массиве из Matlab.
Я хочу напечатать это изображение в киви.
# encoding: utf-8
import time
import matlab.engine
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle
from kivy.graphics.texture import Texture
engine = matlab.engine.start_matlab("-nodesktop -noFigureWindows")
class kivyTest(Widget):
def __init__(self):
super(kivyTest, self).__init__()
self.texture = Texture.create(size=(560, 420), colorfmt="rgb")
time_eng, data_pict = engine.test_pict_data(4.0, 5.0, nargout=2)
self.texture.blit_buffer(data_pict._data, bufferfmt="ubyte", colorfmt="rgb")
with self.canvas:
Rectangle(pos=self.pos, size=(560, 420), texture=self.texture)
def on_touch_down(self, touch):
x = touch.pos[0]
y = touch.pos[1]
time_eng, data_pict = engine.test_pict_data(x, y, nargout=2)
self.texture.blit_buffer(data_pict._data, bufferfmt="ubyte", colorfmt="rgb")
super().on_touch_down(touch)
self.canvas.ask_update()
class my_app(App):
title = 'Matlab raw data picture test'
def build(self):
return kivyTest()
if __name__ == '__main__':
my_app().run()
размер data_pict._data 560x420x3 uint8 в одномерном массиве
Но когда я печатаю здесь, это результат:
Обычный результат должен выглядеть примерно так:
Есть ли у вас какие-либо идеи об этом поведении?