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 --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

  • Part 1 is due on Friday 9/23
  • Part 2 is due on Wednesday 9/28
  • Part 3 is due on Monday 10/3

What to submit

When you are finished each part, submit a zip file of all of your code and your makefile to canvas.