Working with TIFFs (import, export) in Python using numpy - cpshooter/geoML GitHub Wiki
First, I downloaded a test TIFF image from this page called a_image.tif. Then I opened with PIL like this:
from PIL import Image im = Image.open('a_image.tif') im.show()
This showed the rainbow image. To convert to a numpy array, it's as simple as:
import numpy imarray = numpy.array(im) We can see that the size of the image and the shape of the array match up:
imarray.shape (44, 330) im.size (330, 44) And the array contains uint8 values:
imarray array([[ 0, 1, 2, ..., 244, 245, 246], [ 0, 1, 2, ..., 244, 245, 246], [ 0, 1, 2, ..., 244, 245, 246], ..., [ 0, 1, 2, ..., 244, 245, 246], [ 0, 1, 2, ..., 244, 245, 246], [ 0, 1, 2, ..., 244, 245, 246]], dtype=uint8) Once you're done modifying the array, you can turn it back into a PIL image like this:
Image.fromarray(imarray) <Image.Image image mode=L size=330x44 at 0x2786518>