The assignment is to create a C++ class for images that hides the details of the image data structure, allowing other code to use the class without changes when the underlying data structure is modified. The class should include constructors, copy constructor, destructor, operator=, accessor and mutator functions, output method, comparison operators, and methods for creating mirror images and photonegatives. A sample program demonstrates how to read an image, output its dimensions, create a mirror-image, modify the image, write it back to file, compare the original and modified images, and count differences if they are not equal.