Reading and writing images
SciPy comes with some basic functions for handling images. The module function will read images to NumPy arrays. The function will save an array as an image. The following will read a JPEG image to an array, print the shape and type, then create a new array with a resized image, and write the new image to file:
import scipy.misc as sm # read image to array im = sm.imread("test.jpg") print(im.shape) # (128, 128, 3) print(im.dtype) # uint8 # resize image im_small = sm.imresize(im, (64,64)) print(im_small.shape) # (64, 64, 3) # write result to new image file sm.imsave("test_small.jpg", im_small)
Note the data type. Images are almost always stored with pixel values in the range 0...255 as 8-bit unsigned integers. The third shape value shows how many color channels the image has. In this case, 3 means it is a color image with values stored in this order: red im[0]
, green im[1]
, blue im[2]
. A gray...