Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Matplotlib打印输出为灰度数组_Python_Python 3.x_Matplotlib - Fatal编程技术网

Python 将Matplotlib打印输出为灰度数组

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

我需要将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 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)