You are expected to work with the starter code supplied (find the TODO sections). Feel free to create any private methods if needed. You may modify the code as you see

fit - as long as the source and the result images are shown in the same windows at the end. The application displays its output to the right of the original image window. Your methods should not assume any limits for image sizes. E.g., if you need to create a temporary array in your code, do not assume the images are no larger than NxM, where N and M are "huge" numbers. Instead, read the image dimensions from the image object (or equivalent) and create that temporary array of the exact size required.