The next function loads an image, with a little preprocessing. Image.open() is what's known as a lazy operation. The function finds the file and opens it for reading, but the image data isn't actually read from the file until you try to process it or load the data. The next group of three lines resizes the image, so that the maximum dimension in either direction is 512 (max_dimension) pixels. For example, if the image were 1,024 x 768, scale would be 0.5 (512/1,024), and this would be applied to both dimensions of the image, giving a resized image size of 512 x 384. The Image.ANTIALIAS argument preserves the best quality of the image. Next, the PIL image is converted into a NumPy array using the img_to_array() call (a method of tensorflow.keras.preprocessing).
Finally, to be compatible with later usage, the image needs a batch dimension along...