I tried the following, expecting to see the grayscale version of source image:
from PIL import Image
import numpy as np
img = Image.open("img.png").convert('L')
arr = np.array(img.getdata())
field = np.resize(arr, (img.size[1], img.size[0]))
out = field
img = Image.fromarray(out, mode='L')
img.show()
But for some reason, the whole image is pretty much a lot of dots with black in between. Why does it happen?