Python 将Matplotlib打印输出为灰度数组
我需要将Matplotlib生成的绘图输出为带有一个通道的灰度np数组。有多个类似的答案生成输出为RGB,但我找不到类似于调用画布并将其作为灰度单通道数组的方法。您可以使用获取底层缓冲区,然后使用您喜欢的公式将其转换为灰度,例如:Python 将Matplotlib打印输出为灰度数组,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我需要将Matplotlib生成的绘图输出为带有一个通道的灰度np数组。有多个类似的答案生成输出为RGB,但我找不到类似于调用画布并将其作为灰度单通道数组的方法。您可以使用获取底层缓冲区,然后使用您喜欢的公式将其转换为灰度,例如: mpl.use('qt5agg'),plt.imshow的结果(img,'gray',vmin=0,vmax=255): import matplotlib as mpl import matplotlib.pyplot as plt import numpy as
mpl.use('qt5agg')
,plt.imshow的结果(img,'gray',vmin=0,vmax=255)
:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.use('agg')
plt.bar([0,1,2], [1,2,3], color=list('cmy'))
canvas = plt.gcf().canvas
canvas.draw()
img = np.array(canvas.buffer_rgba())
img = np.rint(img[...,:3] @ [0.2126, 0.7152, 0.0722]).astype(np.uint8)