将图分配给变量

问题描述 投票:1回答:1

如何将matplotlib.pyplot保存为特定大小((1280,720,3)或(1280,720,1)的变量/图像/numpy.array)

import matplotlib.pyplot as plt
import random

data = [random.randint(1, 100) for _ in range(100)]
fig = plt.figure()
plt.hist(data)
plt.show()

# Pseudo code below
img = fig.save_as_image(1280, 720, 3)
python numpy variables histogram figure
1个回答
0
投票

您可以尝试以下技巧(使用PIL /枕头库):

import matplotlib.pyplot as plt
import random
import io
from scipy import misc
from PIL import Image
import numpy as np

data = [random.randint(1, 100) for _ in range(100)]
fig = plt.figure(figsize=(16, 9))       # Add figsize= to be matched with the dpi
plt.hist(data)

# Trick to write PNG into memory buffer and read it using PIL
with io.BytesIO() as out:
    fig.savefig(out, format="png", dpi=80)  # Add dpi= to match your figsize
    pic = Image.open(out)
    pix = np.array(pic.getdata(), dtype=np.uint8).reshape(pic.size[1], pic.size[0], -1)

pix
© www.soinside.com 2019 - 2024. All rights reserved.