问题
近日进行大量图片转换工作时,使用plt.savefig()保存图片,在循环时迭代速度下降明显。
表现特点为内存占用率不高,但速度下降比较有规律。
参与循环部分:
plt.rcParams['figure.figsize'] = (10.24, 10.24)
plt.rcParams['savefig.dpi'] = 50
plt.axis('off')
plt.margins(0,0)
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
plt.imshow(img_arr,cmap=plt.cm.gray)
plt.savefig(pathto + filename + ".jpg")
解决方案
通过添加plt.clf()于末尾,清除图片的信息,可有效避免溢出
plt.rcParams['figure.figsize'] = (10.24, 10.24)
plt.rcParams['savefig.dpi'] = 50
plt.axis('off')
plt.margins(0,0)
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
plt.imshow(img_arr,cmap=plt.cm.gray)
plt.savefig(pathto + filename + ".jpg")
plt.clf()