6

我需要以 20fps 左右的速度显示 int16 的二维 numpy.array。使用 Matplotlib 的 imshow 阻塞任何高于 10fps 的内容。缩放和插值显然存在一些问题。我应该补充一点,数组的尺寸是未知的,但可能是 30 乘 400 左右。

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

4

1 回答 1

6

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

使用 OpenGL 颜色数组

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

使用 OpenGL 纹理

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

使用 pygame

Pygame 支持将 Numpy/Numarray 转换为表面,然后 Pygame 可以转换涉及重新采样的此类表面,重新采样后您可以在屏幕上对其进行 blit。

杂项

pyglet使处理 opengl 变得非常容易

于 2008-09-22T12:43:30.297 回答