gpt4 book ai didi

python - matplotlib - 如何将数组保存为带有叠加文本的图像?

转载 作者:行者123 更新时间:2023-11-28 19:12:42 28 4
gpt4 key购买 nike

我有一个二维数组,我需要将其保存为 png。我还需要为图像添加文本标签。到目前为止,我已经尝试了两种方法,但都不是最优的:

  • 我使用matplotlib.image 模块将数组直接保存为图像:

    matplotlib.image.imsave(FILENAME, ARRAY, cmap=plt.cm.binary)  

    但是我无法使用该命令添加文本。保存原始图像后,我可以使用 PIL 进行读取和编辑,但是大型数据集的 I/O 成本是 Not Acceptable 。

  • 我使用pyplot 接口(interface)将数组转换为图形,然后添加图例。但是,当我将其另存为文件时,出现了不必要的空格。我试过关闭轴,将填充设置为 0 等,但总是有一些空白边距我无法摆脱:

    import matplotlib.pyplot as plt
    plt.imshow(ARRAY, cmap=plt.cm.binary)
    plt.axis('off')
    plt.savefig(FILENAME, dpi=100, pad_inches=0.0, bbox_inches='tight')

有没有一种方法可以从二维数组生成图像、覆盖文本并快速另存为 .png 而没有空格?最好是使用 matplotlib/PIL 的解决方案,但如果有更好的解决方案,我可以研究一下。

最佳答案

我能够从一开始就使用面向对象的方法解决我的问题:

import matplotlib.pyplot as plt
fig = plt.figure(dpi=100, tight_layout=True, frameon=False, figsize=(resolution/100.,resolution/100.)) # dpi & figsize of my choosing
fig.figimage(ARRAY, cmap=plt.cm.binary)
fig.text(X,Y,TEXT, size='medium', backgroundcolor='white', alpha=0.5)
plt.savefig(FILENAME)
plt.close(fig)

可以找到 figure 类的其他文档 here .

注意:对于尺码数字,我发现这种关系很有用:
以英寸为单位的尺寸 = 以像素为单位的分辨率/DPI

关于python - matplotlib - 如何将数组保存为带有叠加文本的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38106701/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com