python - 如何从plt.imshow()获取数据?

eva*_*n54 7 python matplotlib

我有以下代码

import scipy.misc
import matplotlib.pyplot as plt

a = plt.imshow(scipy.misc.lena())
Run Code Online (Sandbox Code Playgroud)

而我希望通过访问a或它的孩子来获取lena的数据.

究其原因,我将访问图像plt.gcf()plt.gca()

jme*_*etz 9

a应该是一个matplotlib.image.AxesImage实例,在这种情况下你可以使用

a.get_array() 
Run Code Online (Sandbox Code Playgroud)

a.set_array(data)
Run Code Online (Sandbox Code Playgroud)

该数组存储为masked array.

http://matplotlib.org/examples/animation/dynamic_image.html上有一个官方示例.

直接访问

你也可以使用

a._A
Run Code Online (Sandbox Code Playgroud)

直接访问数组数据,虽然我认为getter和setter是首选方法.