如何仅使用matplotlib重绘已更改的图像区域

时间:2018-06-08 05:01:21

标签: matplotlib

我有一个应用程序,其中1024x2048像素图像中只有一行以每秒100次的速率变化。我想使用最少的资源实时显示和更新此图像。

但是,每次调用plt.draw()函数时,matplotlib都会重绘整个图像。这很慢且处理器密集。

有没有办法一次只重绘一行?

1 个答案:

答案 0 :(得分:1)

我不是matplotlib内部的专家,但我认为不能以这种方式完成。 Matplotlib不是设计用于以高帧速率显示大的变化纹理,它旨在提供高水平并且非常易于使用的API用于显示交互式图。 在内部,它在python和c ++中实现(用于低级和高性能操作),并且它使用Tcl / Tk作为图形用户界面和小部件工具包(允许在OS之间实现出色的跨平台可移植性)。 因此,您的1024x2048矩阵在显示之前必须进行多次转换。

如果您不需要matplotlib提供的额外功能(如自动缩放,轴,交互式缩放...),并且您的主要目标是速度,我建议您使用更集中的性能python库/模块进行显示。 有很多选择:pyopencv,pySDL2 ......