51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python - 将matplotlib图像转换为numpy.array 或 PIL.Image

matplotlib是python图像处理中让人又爱又恨的库。最近遇到了需要获取plt图像数据的需求,本文记录了将matplotlib图像转换为numpy.array 或 PIL.Image的方法。 众所周知,这个库处理图像会出现内存泄漏的问题,原想着将plt的图转出来用opencv存就好了,然而并没有,牢骚完毕。

转换思路 {#转换思路}

总体分为两步完成目标:

  • 将plt或fig对象转为argb string的对象
  • 将argb string对象图像转为array 或 Image

步骤一 {#步骤一}

区分对象为plt和fig的情况,具体使用哪种根据对象类型确定

转换plt对象为argb string编码对象 {#转换plt对象为argb-string编码对象}

代码在plt对象中构建了图像内容,生成了plt图像,但还没有savefig 和 show:

例如:

转换fig对象为argb string编码对象 {#转换fig对象为argb-string编码对象}

以 matplotlab 的 fig 对象为目标,获取 argb string编码图像

步骤二 {#步骤二}

转换argb string编码对象为PIL.Image或numpy.array图像 {#转换argb-string编码对象为PIL-Image或numpy-array图像}

此时的argb string不是我们常见的uint8 w h rgb的图像,还需要进一步转化

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/python/convert-matplotlib-figure-to-array/convert-matplotlib-figure-to-array/

赞(0)
未经允许不得转载:工具盒子 » Python - 将matplotlib图像转换为numpy.array 或 PIL.Image