Many machine learning algorithms are related to computer vision problems. Such tasks are object detection in images, segmentation, image classification, and others. To be able to deal with such tasks, we need instruments for working with images. We usually need routines to load images to computer memory, as well as routines for image processing. For example, the standard operation is image scaling, because many machine learning algorithms are trained only on images of a specific size. This limitation follows from the algorithm structure or is a hardware requirement. For example, we cannot load large images to the graphics processing unit (GPU) memory because of its limited size.
Also, hardware requirements can lead to a limited range of numeric types our hardware supports, so we will need to change initial image representation...