Kaushik Shankar


Recent Activity

Steganography using PNG Files to Embed Any File

After much researching, I was able to collect enough information and knowledge about steganography (the art of hiding words in images) to begin working on my own project for it. I decided to use basic Java code to make a steganographer that not only hides words in an image, but any file at all. I also wrote code to encrypt the data before it is written to the image. This way, even a standard decryptor cannot decrypt the file (it relies on knowing the prime number key I use to encrypt the file). All you need is an image of the file type PNG and also some test file to embed into the image. You can create a new image that looks almost exactly the same as the old image, but it contains within it, the information necessary to represent the file of your choice. Can you tell the difference between the image on the left and the image on the right?
Reddit Alien Original Reddit Alien Encrypted

The one on the right has 2 paragraphs of text stored within it.

Want to know more about how I did it? Read more about this project or Try it out yourself!

My Improvements to Retinex Theory

Through the support of the iCAMP Research Program I was able to provide contributions to the field of Retinex Theory. This field falls under the category of Signal and Image Processing and can be a very useful tool for numerous applications including object recognition, and photo image correction. This project essentially attempts to improve the current methods for simulating the perception of color by the human visual system. An example is given below.
Adelson Checkershadow Illusion
Square A and B are the exact same color.

My goal is to change the image to make color values to be how we perceive the colors to be. In this case, the color values should change such that Square A should have darker colors than Square B, since that is how we perceive it.

Current Method for Retinex Theory My Method for Retinex Theory
Adelson Checkershadow Illusion Adelson Checkershadow Illusion
The original method changes the colors on the checkerboard squares A and B so that A is darker than B, but causes major color changes in the rest of the image and causes detail loss as well. My method significantly reduces the shadow's effects to make squares have colors that are similar to how we perceive them, without any loss of color anywhere else in the image.

My Professional Website

After much web-traversing, I was able to collect enough information and knowledge on how to make a good website. Pooling from so many different sources, I decided to use basic HTML5 and CSS3 to make this professional website. Much of the layout is not my own idea, but collected from the ideas of so many others online. Although the design was borrowed from many others, I believe this reflects my design preferences because it is not entirely similar to any single other person.

Sudoku Puzzle Solver

I made a Sudoku puzzle solver for my "Intro to Artificial Intelligence" class and added some neat features once the project was due. The original project simply had to solve the puzzle and show the time spent, and the node generation count (since we were required to solve this using an algorithm that performed a state-space search). We were also required to implement different heuristics to solve the puzzle. After the due date, I added options to see the backtracking as it happened, and also added different output options. Code is available on GitHub.

Hyperbolic Trigonometric Functions [UPDATE]

A redone version of the article discussing the origins of the hyperbolic trigonometric functions has been finally made. The fixes include renumbering (and removal of numbering) of equations, and greater emphasis on the overarching steps while still working out the necessary integral calculus.

Project Euler Problems 1 - 25

The problems described and posed by Project Euler sparked my interest in solving them. I started solving these puzzles about 3 weeks ago, while also learning to use the Git version control system. So far I have solved 25, and I will continue working on them, and posting them to my GitHub repository for my Project Euler solutions, as I have the time. Below is the badge I received for completing the first 25 problems.