Software

Image Processor

A C++ image processor built to explore filtering algorithms and object-oriented software design.

C++Object-oriented programmingImage processing
TypeIndependent project
LanguageC++
FocusFilters + file handling
Original full-colour photograph of a red apple
Dithered purple output produced from the apple image

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.

Previous project

Wearable Obstacle Detector

Next project

Angus - Self-Balancing Robot