Assignment 2: Image Processing And Steganography (46 Points)

Chris Tralie

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 https://github.com/ursinus-cs174-s2023/HW2_Steganography.git
cd HW2_Steganography
git submodule update --init

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.