Team: JJR
Project#3: Steganography
Jacky
Zexi Zang
Chuntao Yang
Goal: The goal of this project is to change 10 secrets images into an inconspicuous image, in this case the dog image
Part 1: Flattening the Images
We create two functions. The first function called flattenImage flattens the image is. It takes in the hidden image and create a 400*400 matrix. If the hidden pixel is dark ( inputImage<=t ) we set a 1 to the corresponding position of the matrix
( flat(inputImage<=t) ) = 1 , otherwise we set zero.
The second function called expandImage takes in and expands the flattened image by creating a RGB image. inputImage == 1 finds all the position of black pixels and convert them to zero: red(inputImage == 1) = 0 , and finally we can get our expanded matrix by putting all three layers to be red.
Test our code by hidden1.png!
YES! We succeed!
Part 2: Create Embedding Techniques
We want to hide all black and white image into the dog image. Here we used a nested loop. If the hidden image pixel is black flat(i,j) == 1, and if red channel of pixel (i,j) and even mod(redDog(i,j),2)==0, we subtract 1 from that value redDog(i,j) = redDog(i,j)-1. If the hidden image pixel is white flat(i,j)==0, and the red channel of pixel (i,j) is odd, we subtract one from that value. Finally do the output of the dog image.
We succeed again!
Part 3: Create Recovery Technique
The Recovery is the reverse of embedding. We first assign the first layer of the image matrix I to matrix redDog. We use nested loop again and if the pixel is an odd number, set the recovered pixel to be 1, otherwise makes it 0.
Part4
Appendix A
Jacky did part1 part2 and part3.
Zexi Zang did part 4, debugging for the project, and writing report.
Chuntao Yang did part 5, and contributed the most for Youtube Video.
/docProps/thumbnail.jpeg