¿Cuál es la manera más rápida de escala y mostrar una imagen en Python?
-
02-07-2019 - |
Pregunta
Estoy obligado a mostrar una de dos dimensiones numpy.matriz de int16 a 20 fps o menos.El uso de Matplotlib del imshow ahoga en nada por encima de los 10 fps.Obviamente son algunos de los temas con el escalado y la interpolación.Debo añadir que las dimensiones de la matriz no son conocidos, pero probablemente será de alrededor de treinta por cien cuatro.
Estos son los datos de un sensor que se supone que tienen una pantalla en tiempo real, de modo que los datos tiene que ser re-muestreados en la marcha.
Solución
La forma más rápida de mostrar 30x400 puntos de datos es:
El uso de OpenGL, color de matrices
Si usted puede transformar rápidamente sus datos a lo OpenGL entiende como el color de la matriz, se podría crear un vértice de la matriz que describe quads, uno para cada sensor, a continuación, actualizar su gama de colores y dibujar este orthographically en la pantalla.
El uso de texturas OpenGL
Si usted puede transformar rápidamente tus puntos de datos para una textura de opengl puede dibujar un quad con fijo de coordenadas UV que está enlazado a esta textura.
Usar pygame
Pygame tiene soporte para la conversión de Numpy/Numarray a las superficies, Pygame, a continuación, puede transformar dichas superficies que implica el remuestreo, después de remuestreo puede fundir en la pantalla.
Misc
pyglet hace tratar con opengl muy fácil