Skip to content
This repository has been archived by the owner on Nov 9, 2018. It is now read-only.

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jaybosamiya committed Feb 15, 2017
0 parents commit 1395e71
Show file tree
Hide file tree
Showing 4 changed files with 166 additions and 0 deletions.
99 changes: 99 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
bin/

# Created by https://www.gitignore.io/api/linux,emacs,vim,cmake,opencv

### CMake ###
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake

### Emacs ###
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

# Org-mode
.org-id-locations
*_archive

# flymake-mode
*_flymake.*

# eshell files
/eshell/history
/eshell/lastdir

# elpa packages
/elpa/

# reftex files
*.rel

# AUCTeX auto folder
/auto/

# cask packages
.cask/
dist/

# Flycheck
flycheck_*.el

# server auth directory
/server/

# projectiles files
.projectile

# directory configuration
.dir-locals.el

### Linux ###

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### OpenCV ###
#OpenCV for Mac and Linux
#build and release folders
*/CMakeFiles
*/CMakeCache.txt
*/Makefile
*/cmake_install.cmake
.DS_Store

### Vim ###
# swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
# session
Session.vim
# temporary
.netrwhist
# auto-generated tag files
tags

# End of https://www.gitignore.io/api/linux,emacs,vim,cmake,opencv
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
cmake_minimum_required(VERSION 2.8)
project( busysteg )
find_package( OpenCV REQUIRED )
add_executable( busysteg busysteg )
target_link_libraries( busysteg ${OpenCV_LIBS} )
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# BusySteg

> 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.](https://link.springer.com/article/10.1007/s11042-016-3319-0).

The implemented technique is resistant against:

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

## Usage

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

Compile using:

```
mkdir bin
cd bin
cmake ..
make
```

Hide data into an image using:

```
./busysteg <image path> <data file path>
```

Extract data from the image using:

```
./busysteg <image path>
```

## License

[MIT License](https://jay.mit-license.org/2017)
11 changes: 11 additions & 0 deletions busysteg.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv ) {
}

0 comments on commit 1395e71

Please sign in to comment.