I have numpy file stored as "test.npy" which is a 2 dimensional Synthetic Aperture Radar(SAR) image data with VV and VH polarization bands. How do I plot this 2 dimensional image array using matplotlib?
import numpy as np
img_array = np.load('test.npy')
from matplotlib import pyplot as plt
plt.imshow(img_array[1], cmap='gray')
plt.show()
But the line:
plt.imshow(img_array[0], cmap='gray')
plots only the first band in the list. So, how is it possible for me to plot 2 dimensional image array?
The problem is that your array has the shape (2, 512, 512) but matplotlib can only show grayscale, rgb or rgba images. Also the array needs to have the form (H,W), (H,W,3) or (H,W,4) respectively as you can see in the documentation here. Therefore I suggest you swap the axes and extend the array to a (H,W,3) shape with an additionally empty channel: