gpt4 book ai didi

python - 如何将灰度 matplotlib 图保存到 numpy 数组

转载 作者:行者123 更新时间:2023-12-04 12:33:32 28 4
gpt4 key购买 nike

例如,我使用 matplotlib 绘制一个图形,如下所示:

plt.figure(figsize=(10,10))
plt.imshow(output_fig, zorder=0,cmap="gray")
plt.scatter(x,y,color='k')

如果我使用:
plt.savefig(figname,fotmat=figtype)

我将其保存为图形文件。但是,我想将其保存到矩阵或 numpy 数组中,以便每个元素保存图形每个像素的比例值。
我怎样才能做到这一点?
我找到了保存 RGB 值的解决方案。但我希望能保存一个灰度图。
谢谢大家帮助我!

最佳答案

一旦你有一个绘制的数据(自包含的例子波纹管):

import numpy as np
import matplotlib.pyplot as plt
from skimage import data, color

img = data.camera()

x = np.random.rand(100) * img.shape[1]
y = np.random.rand(100) * img.shape[0]

fig = plt.figure(figsize=(10,10))
plt.imshow(img,cmap="gray")
plt.scatter(x, y, color='k')
plt.ylim([img.shape[0], 0])
plt.xlim([0, img.shape[1]])

使用 fig.canvas 可以将底层数据恢复为数组(matplotlib 的 Canvas )。首先触发它的绘图:
fig.canvas.draw()

以数组形式获取数据:
width, height = fig.get_size_inches() * fig.get_dpi()
mplimage = np.fromstring(fig.canvas.tostring_rgb(), dtype='uint8').reshape(height, width, 3)

如果您希望阵列与原始图像的形状相同,则必须使用 figsizedpi plt.figure() 的属性.

最后,matplotlib 返回一个 RGB 图像,如果你想要它灰度:
gray_image = color.rgb2gray(mplimage)

关于python - 如何将灰度 matplotlib 图保存到 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363388/

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