📜  将 plt 图像转换为 numpy (1)

📅  最后修改于: 2023-12-03 15:25:14.645000             🧑  作者: Mango

将 plt 图像转换为 numpy

在做数据处理时,可能需要从 plt 绘制的图像中获取数据。可以通过将 plt 绘制的图像转换成 numpy 数组来实现。下面就是一些方法。

使用 plt.imread()

plt.imread() 可以读取图像文件,返回的是一个 numpy 数组。

import matplotlib.pyplot as plt
import numpy as np

# 读取图像
img = plt.imread('image.png')

# 将图像转换为 numpy 数组
img_arr = np.array(img)

使用 plt.plot()

plt.plot() 可以绘制曲线,并返回曲线的 x,y 值。我们可以通过调整参数来使得曲线更加平滑。

import matplotlib.pyplot as plt
import numpy as np

# 绘制曲线
x = np.linspace(-10,10,100)
y = np.sin(x)
plt.plot(x,y)

# 将曲线转换为 numpy 数组
line = plt.gca().get_lines()[0]
x,y = line.get_data()
line_arr = np.array([x,y]).T

使用 plt.imshow()

plt.imshow() 可以显示图像,并且返回一个 matplotlib.image.AxesImage 对象。我们可以使用 AxesImage 对象的 data 属性来获取图像的数据。

import matplotlib.pyplot as plt
import numpy as np

# 显示图像
img = plt.imread('image.png')
plt.imshow(img)

# 将图像转换为 numpy 数组
axes = plt.gca()
image = axes.get_images()[0]
img_arr = image.get_array()

通过以上方式,我们可以轻松将 plt 图像转换为 numpy 数组,从而更方便地进行数据处理。