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