User Guide

By importing this package, you can use Bob native array reading and writing routines to load and save files using various image formats, using the simple plug-in technology for bob.io.base, i.e., bob.io.base.load() and bob.io.base.save().

>> import bob.io.base
>> import bob.io.image #under the hood: loads Bob plugin for image files
>> x = bob.io.base.load('myfile.jpg')

In the following example, an image generated randomly using the method NumPy numpy.random.random_integers(), is saved in lossless PNG format. The image must be of type uint8 or uint16:

>>> my_image = numpy.random.random_integers(0,255,(3,256,256))
>>> bob.io.base.save(my_image.astype('uint8'), 'testimage.png') # saving the image in png format
>>> my_image_copy = bob.io.base.load('testimage.png')
>>> assert (my_image_copy == my_image).all()

The loaded image files can be 3D arrays (for RGB format) or 2D arrays (for greyscale) of type uint8 or uint16.

In order to visualize the loaded image you can use bob.io.image.imshow():

>>> from bob.io.base import test_utils
>>> path = test_utils.datafile('grace_hopper.png', 'bob.io.image')
>>> img = bob.io.base.load(path)
>>> bob.io.image.imshow(img)  

(Source code)

Or you can just get a view (not copy) of your image that is matplotlib.pyplot compatible:

>>> img_view_for_matplotlib = bob.io.image.to_matplotlib(img)
>>> assert img_view_for_matplotlib.shape[-1] == 3
>>> assert img_view_for_matplotlib.base is img