FISHERR – Gaussian Pox
(The images above were generated with different dimensions, RGB color channels, and variances.)
For the Gaussian Pox homework, my thought process was as follows:
- Designing C++ Classes: I had to carefully identify the necessary variables,methods, and logic, that would make the Image, Bump, and GaussianPox classes coordinate together.
- Research: how to write to a PPM file, understanding the 2D Gaussian energy function, and how the pixels will be used in memory and accessing them. Taking notes…
- Analysis: In this step, I observed different outcomes from generating Gaussian Pox. I needed to be able to break down the logic and see how each pixel will be affected through the pipeline of functions and methods it goes through.
- Debugging/Testing: In this phase, I tested tweaking various user inputs and variables for generating Gaussian Pox (I have also provided a more I/O feature to the program for certain variables)
- Documentation: Providing user-friendly comments to make sure each class and method steps were clearly organized and easy to understand.
- Being Creative!
Challenges:
- Gaussian Energy Function: This was a hurdle since it was difficult to understand how the energies will be combined with the RGB channels. Testing and making observations on the data made this relationship clearer.
- Writing to the PPM file: For several attempts, the Gaussian Pox on the image was clearly separated and the pixels did not have the expected intensities. I overcame this obstacle by understanding more deeply about how the file is written and how the channels are affected by the bumps’ energies.