Overview
This project is a C++ image processor created to explore image filtering algorithms and strengthen my object-oriented programming skills. It provides a foundation for loading an image, changing its pixel data, and saving the processed result.
How it works
The program reads image data into memory, applies a selected filter, and writes the modified image back to a file. Each filter performs a focused transformation, making it easier to test how individual algorithms affect the final image.
The apple example uses 4×4 Bayer ordered dithering. For each pixel, the program uses a repeating Bayer threshold matrix to choose between four available display colours. The resulting pattern creates the appearance of additional shades even though the processed image is limited to a four-colour palette.
Software design
Image storage and file handling are organized into reusable C++ classes. Keeping those responsibilities separate from the filtering logic makes the code easier to understand and allows new filters to be added without rewriting the rest of the program.
Next steps
Development is continuing with additional filters and further improvements to the class structure. More technical details and visuals can be added once the final project examples are ready.

