我需要以20fps左右的速度显示int16的二维numpy.array。在10fps以上的任何东西上使用Matplotlib的imshow扼流圈。显然存在缩放和插值的一些问题。我应该补充说,数组的尺寸是未知的,但可能大约是三十四百。

这些来自传感器的数据应该具有实时显示,因此必须动态地重新采样数据。

有帮助吗?

解决方案

显示30x400数据点的最快方法是:

使用OpenGL颜色数组

如果您可以快速将数据转换为OpenGL理解为颜色数组的数据,您可以创建一个描述四边形的顶点数组,每个传感器一个,然后更新颜色数组并在屏幕上以正交方式绘制。

使用OpenGL纹理

如果您可以快速将数据点转换为opengl纹理,则可以使用绑定到此纹理的固定UV坐标绘制一个四边形。

使用pygame

Pygame支持将Numpy / Numarray转换为曲面,Pygame可以转换这些涉及重新采样的曲面,重新采样之后你可以在屏幕上进行blit。

其它

pyglet 可以轻松处理opengl

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top