👻 Hide information content into busy areas of images, optimally
C++ CMake
Switch branches/tags
Nothing to show
Clone or download
jaybosamiya Merge pull request #3 from enricobacis/master
Fix compilation on OS X and ubuntu
Latest commit 47ec897 Mar 21, 2017
Failed to load latest commit information.
pics Use smaller images :) Mar 16, 2017
.gitignore Initial commit Feb 15, 2017
CMakeLists.txt Initial commit Feb 15, 2017
README.md Add bitplane analysis Feb 16, 2017
busysteg.cpp Fix compilation on OS X and ubuntu Mar 20, 2017



Hide information content into busy areas of images, optimally

Basic Idea

Some parts of the image (for example, tree foliage) are busier than others (for example, the sky). It is possible to hide upto even 4 bits per 8 bit pixel in such areas, with no perceptible change to the image. Additionally, such modifications are virtually impossible to detect using common steganalysis techniques.

The original idea for this is taken from a paper titled "Keyless dynamic optimal multi-bit image steganography using energetic pixels" by Goutam Paul et. al..

The implemented technique is resistant against:

  1. Visual attacks
  2. Analysis though quality metrics
  3. Structural attacks
  4. Statistical attacks


Original Image

original image

Image with text hidden

Encoded image

In the above image, the text hidden is

Beauty lies in the eye of the beholder

Quite a fitting caption actually.

Bitplane analysis

A bitplane analysis on the image shows no visible artefacts.

Bitplane Analysis


The code requires OpenCV 2.x, and CMake installed.

Compile using:

mkdir bin
cd bin
cmake ..

Hide data into an image using:

./busysteg h <image path> <data path> <output image path>

Extract data from the image using:

./busysteg x <image path> <output data path>


MIT License