Is plt.imshow showing the expected figure and is only savefig failing or do you also get a while output in imshow?
I would recommend to check the min and max values of your image array, as matplotlib could try to normalize the images thus potentially removing information.