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 scale image would only have one channel.

For working with images, the SciPy module scipy.misc contains many useful basic image processing functions such as filtering, transforms, and measurements.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.82.154