This project involves implementing a C++ program for representing and processing RGB color images with 8-bits per RGB channel. It includes functionalities such as color representation, image manipulation, script execution, and advanced features like median filtering and XPM2 file loading/saving.
-
Color Representation:
- Implemented a class (
Color
) for representing RGB colors. - Support for accessing individual color channels (red, green, blue).
- Implemented a class (
-
Image Representation:
- Developed a class (
Image
) for representing images with specified dimensions. - Included functionalities for pixel manipulation within images.
- Developed a class (
-
Script Processing:
- Implemented a script interpreter to execute image processing commands from script files.
-
Basic Image Manipulations:
- Supported commands for basic image manipulations:
- Inversion
- Grayscale conversion
- Color replacement
- Filling
- Horizontal and vertical mirroring
- Supported commands for basic image manipulations:
-
Dimension-Changing Operations:
- Provided commands for manipulating image dimensions:
- Cropping
- Rotating left and right
- Provided commands for manipulating image dimensions:
-
Advanced Functionality:
- Median Filter:
- Applied a median filter to images for noise reduction.
- XPM2 File Support:
- Implemented loading and saving images in the XPM2 file format.
- Median Filter:
- Clone the repository:
$ git clone git@github.com:YZ1GO/L.EIC009_P_PRJ01.git
-
Open project folder in preferred IDE (C++ extensions supported)
-
Build using makefile:
$ make
- Run the tests:
$ ./test
- If you wish to recompile everything, clean after testing:
$ make clean all
You can find the files for the project and the project assignment here
Download Zip File
Open the html file in the browser and follow the assignment to do the project