python - Getting an RGBA array from a matplotlib image -
i using imshow plot array custom colormap , boundarynorm. however, going automated script , want save image produced imshow without axes. wasn't sure imshow best way since going running in background. there alternative can set colormap , boundarynorm , produce rgba array can give imsave? or left hacking image imshow produce , saving that?
you can use as_rgba_str image data image. here's example:
import numpy np import matplotlib.pyplot plt x = np.linspace(0, 2, 1000) x, y = np.meshgrid(x, x) data = np.sin((x-2)**3 + y**4) im = plt.imshow(data) x = im.make_image() h, w, d = x.as_rgba_str() n = np.fromstring(d, dtype=np.uint8).reshape(h, w, 4) plt.figure() plt.imshow(n[:,:,0], cmap="gray", origin='lower') plt.show() the original image: 
the r channel rgba data (note blue sections black since these have no red in them): 
Comments
Post a Comment