Assignment 2: Image Processing And Steganography (46 Points)
Chris Tralie
Part 1: Drawing Ellipses (16 Points)
Part 2: Image Decoding (15 Points)
Part 3: Image Encoding (15 Points)
Overview / Logistics
The purpose of this buddy assignment is to put your knowledge of binary and 2D arrays together into a fun application where you will hide secret text messages "in plain sight" by changing the colors of pixels in an image ever so slightly to store a binary encoding of text. More specifically, you will be encoding the binary ASCII representation of a character string using the least significant bit of pixels in an RGB image. This is a specific instance of steganography, or hiding one type of data in another data stream.
You can download the code for this assignment by using git in the terminal
git clone --recursive https://github.com/ursinus-cs174-f2022/HW2_Steganography.git
You will be writing a number of different C++ programs in this assignment, so I'd recommend that you update the makefile that I gave you as you go to make it easier to manage
Fun fact: I proposed to my partner using a similar concept, and it worked 😻. Maybe you can use a similar concept to propose to your significant other, or at least to send a top secret message to your friends.
Learning Objectives
- Manage 2D arrays with loops
- Manage dynamic memory
- Read and write bits in character strings
- Use command line arguments
- Sharpen debugging skills
- Practice makefiles for automating builds with header files and object files
Timeline
What to submit
When you are finished each part, submit a zip file of all of your code and your makefile to canvas.