Frage

Ich bin verpflichtet, bei 20fps oder so eine zweidimensionale numpy.array von int16 anzuzeigen. Matplotlib der imshow Mit Drosseln auf etwas über 10 fps. Es gibt natürlich einige Probleme mit Skalierung und Interpolation. Ich sollte hinzufügen, dass die Dimensionen des Arrays nicht bekannt sind, wird aber wahrscheinlich etwa dreißig bis vierhundert sein.

Es handelt sich um Daten von einem Sensor, der eine Echtzeit-Anzeige haben sollen, so müssen die Daten im laufenden Betrieb neu abgetastet werden.

War es hilfreich?

Lösung

Der schnellste Weg 30x400 Datenpunkte angezeigt werden soll:

Mit OpenGL Farbe Arrays

Wenn Sie schnell Ihre Daten zu transformieren können, was OpenGL versteht als Farbarray, könnten Sie eine Vertex-Array erstellen Quads beschreiben, eine für jeden Sensor, dann Farbarray aktualisieren und diese zeichnen orthographically auf dem Bildschirm.

Mit OpenGL-Texturen

Wenn Sie schnell Ihre Datenpunkte zu einer OpenGL Textur verwandeln können Sie ein Quad mit festen UV ziehen können Koordinaten, die auf diese Textur gebunden ist.

Mit pygame

Pygame Unterstützung für die Konvertierung von Numpy / numarray auf Oberflächen hat, Pygame kann dann solche Oberflächen verwandelt, das Resampling beinhaltet, nach dem Resampling Sie es auf dem Bildschirm blitten können.

Verschiedenes

Pyglet macht mit opengl Umgang sehr einfach

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top