如何生成给定数字的图像?

时间:2019-05-07 02:20:39

标签: python

我想将浮点数(例如-1.45)栅格化为numpy数组,可以将其可视化为灰度图像。您可以将结果图像视为黑色图像,黑白像素写出“ -1.45”。

令我惊讶的是,没有现成的工具可以做到这一点。这样做的最Python方式是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用matplotlib将数字绘制为文本,然后将其转换为numpy数组:

import numpy as np

from matplotlib import pyplot as plt
from matplotlib import image

def rasterise_n(n):
    fig, ax = plt.subplots(figsize=(1, 1))
    ax.text(0.5, 0.5, n, va='center', ha='center', fontsize=24)
    ax.tick_params(left=False, labelleft=False, bottom=False, labelbottom=False)
    for spine in ax.spines.values():
        spine.set_visible(False)

    fig.canvas.draw()
    return np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8).reshape(fig.canvas.get_width_height()[::-1] + (3,))

result = rasterise_n(1.45)