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
>>> img = bob.io.base.load(path_to_image)

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.

You can also get information about images without loading them using bob.io.base.peek():

>>> bob.io.base.peek(path_to_image)
(dtype('uint8'), (3, 600, 512), (307200, 512, 1))

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

>>> img = bob.io.base.load(path_to_image)
>>> bob.io.image.imshow(img)  

(Source code, png, hires.png, pdf)

_images/guide-1.png

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

>>> 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

You can also get the original image back using bob.io.image.to_bob(). This function works with images, batches of images, videos, and higher dimensional arrays that contain images. Moreover, see bob.io.image.opencvbgr_to_bob and bob.io.image.bob_to_opencvbgr.