2

我有这个代码用于从一系列矩阵创建一系列图像,并且在每个图像中我想添加一个特定的文本。这是我的典型代码:

ax = axes([0,0,1,1])

for i in range(0,5):
    text(1,1,str(i))
    ax.imshow(a[:,:,i],origin='lower')
    savefig(str("%04d" % int(i))+'.png',format="png")
    del ax.texts[-1] 

但问题是随着迭代次数的增加,速度下降,变得如此缓慢。在后台打开很多窗口似乎有问题。

有什么建议吗?

4

2 回答 2

0

每个循环都不会创建新的图像和文本对象,而是重用这些对象。

ax = axes([0,0,1,1])
t = text(1,1,str(0))
img = ax.imshow(a[:,:,0],origin='lower')

for i in range(0,5):
    t.set_text(str(i)
    img.set_data(a[:,:,i])
    savefig(str("%04d" % int(i))+'.png',format="png")

也见

逐帧可视化 3D-numpy-array

于 2012-08-08T05:28:30.970 回答
0

我刚刚在循环末尾添加了这一行,现在它工作正常。只是在记忆中积累之前打开的数字的问题。

ax = axes([0,0,1,1])

for i in range(0,5):
    text(1,1,str(i))
    ax.imshow(a[:,:,i],origin='lower')
    savefig(str("%04d" % int(i))+'.png',format="png")
    del ax.texts[-1] 
    close(gcf())
于 2013-12-10T13:15:19.453 回答