当前位置: 首页 > 面试题库 >

Matplotlib图以图像作为一个numpy数组

司空昊阳
2023-03-14
问题内容

我正在尝试从Matplotlib图中获取一个numpy数组图像,目前正在通过保存到文件中,然后再读回文件的方式来完成此操作,但是我觉得必须有一种更好的方法。这是我现在正在做的事情:

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.gca()

ax.text(0.0,0.0,"Test", fontsize=45)
ax.axis('off')

canvas.print_figure("output.png")
image = plt.imread("output.png")

我尝试了这个:

image = np.fromstring( canvas.tostring_rgb(), dtype='uint8' )

从我发现的示例中发现,但是它给我一个错误,指出“ FigureCanvasAgg”对象没有属性“ renderer”。


问题答案:

为了获得图形内容作为RGB像素值,matplotlib.backend_bases.Renderer需要首先绘制画布的内容。您可以通过手动调用canvas.draw()

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.gca()

ax.text(0.0,0.0,"Test", fontsize=45)
ax.axis('off')

canvas.draw()       # draw the canvas, cache the renderer

image = np.fromstring(canvas.tostring_rgb(), dtype='uint8')

有关matplotlib
API的更多信息,请参见此处。



 类似资料:
  • 主要内容:绘制线性函数图像,绘制正弦波图,subplot(),bar()柱状图,numpy.histogram(),plt()Matplotlib 是 Python 的绘图库,它经常与 NumPy 一起使用,从而提供一种能够代替 Matlab 的方案。不仅如此 Matplotlib 还可以与 PyQt 和 wxPython 等图形工具包一起使用。 Matplotlib 最初由 John D. Hunter 编写,目前,它的最新的版本是 3.3.1,最后一个支持 Python 2 的版本是 2.2

  • 问题内容: 我有一个Numpy数组类型的矩阵。如何将其作为映像写入磁盘?任何格式都可以使用(png,jpeg,bmp …)。一个重要的约束是不存在PIL。 问题答案: 你可以使用PyPNG。这是一个纯Python(无依赖性)开源PNG编码器/解码器,它支持将NumPy数组写为图像。

  • Matplotlib 软件包中的 模块提供了加载、缩放和显示图像的功能,该模块只能支持 PNG 格式的图片,如果格式不符,需要对图片的格式进行转换。 Matplotlib 支持的图片格式非常有限,所以通常情况下,建议采用 Python 图像处理库 Pillow 来处理图像,若感兴趣可以自行了解。 下面示例,imread() 函数用于读取图像数据并形成 ndarray 数组 ,其数据类型为 floa

  • 问题内容: 我开始使用本教程为初学者学习MatPlotLib 。这是第一个例子。 如果我将这三行代码写入我的python文件并在命令行中执行(通过键入),则什么都不会发生。没有错误信息,没有情节。 有人知道我为什么看不到情节吗? 添加 当然我需要用。但是,即使我添加以下3行: 它仍然不产生任何东西。 添加 这是我现在使用的行: 我仍然有相同的结果(什么都没有)。 问题答案: 后端可能有问题。输出是

  • 问题内容: 我有一个RGB图像。我想将其转换为numpy数组。我做了以下 它创建一个没有形状的数组。我假设它是一个iplimage对象。 问题答案: 您可以使用较新的OpenCV python接口(如果我没记错的话,自Ope​​nCV 2.2起就可以使用)。它本机使用numpy数组: 结果:

  • 问题内容: 我正在尝试读取图像文件(准确地说是.jpeg),并将其“回显”回页面输出,但是却显示了图像… 我的index.php具有这样的图像链接: 和我的PHP脚本基本上做到这一点: 1)读取1234.jpeg 2)echo文件内容… 3)我觉得我需要使用mime类型返回输出,但这是我迷路的地方 一旦弄清楚了,我将删除所有输入的文件名,并将其替换为图像ID。 如果我不清楚,或者您需要更多信息,请