Académique Documents
Professionnel Documents
Culture Documents
STEGANOGRAPHY
CHAPTER I
INTRODUCTION
1.1 GENERAL
The term digital image refers to processing of a two dimensional picture by a digital
computer. In a broader context, it implies digital processing of any two dimensional data. A
digital image is an array of real or complex numbers represented by a finite number of bits.
An image given in the form of a transparency, slide, photograph or an X-ray is first digitized
and stored as a matrix of binary digits in computer memory. This digitized image can then
be processed and/or displayed on a high-resolution television monitor. For display, the
image is stored in a rapid-access buffer memory, which refreshes the monitor at a rate of 25
frames per second to produce a visually continuous display.
Hard Copy
Device
Display
IMAGE PROCESSOR
DIGITAL COMPUTER
MASS STORAGE
The secondary storage devices normally used are floppy disks, CD ROMs etc.
The hard copy device is used to produce a permanent copy of the image and for
the storage of the software involved.
Image Enhancement
Image Restoration
IP
Image Analysis
Image Compression
Image Synthesis
IMAGE RESTORATION
Image restoration like enhancement improves the qualities of image but all
the operations are mainly based on known, measured, or degradations of the original
image. Image restorations are used to restore images with problems such as geometric
distortion, improper focus, repetitive noise, and camera motion. It is used to correct
images for known degradations.
IMAGE ANALYSIS
Image analysis operations produce numerical or graphical information based
on characteristics of the original image. They break into objects and then classify
them. They depend on the image statistics. Common operations are extraction and
description of scene and image features, automated measurements, and object
classification. Image analyze are mainly used in machine vision applications.
IMAGE COMPRESSION
Image compression and decompression reduce the data content necessary to
describe the image. Most of the images contain lot of redundant information,
compression removes all the redundancies. Because of the compression the size is
reduced, so efficiently stored or transported. The compressed image is decompressed
when displayed. Lossless compression preserves the exact data in the original image,
but Lossy compression does not represent the original image but provide excellent
compression.
MEDICAL APPLICATIONS
In medical applications, one is concerned with processing of chest X-rays,
cineangiograms, projection images of transaxial tomography and other medical
images that occur in radiology, nuclear magnetic resonance (NMR) and ultrasonic
scanning. These images may be used for patient screening and monitoring or for
detection of tumors‟ or other disease in patients.
SATELLITE IMAGING
Images acquired by satellites are useful in tracking of earth resources;
geographical mapping; prediction of agricultural crops, urban growth and weather;
flood and fire control; and many other environmental applications. Space image
applications include recognition and analysis of objects contained in image obtained
from deep space-probe missions.
COMMUNICATION
Image transmission and storage applications occur in broadcast television,
teleconferencing, and transmission of facsimile images for office automation,
communication of computer networks, closed-circuit television based security
monitoring systems and in military communications.
DOCUMENT PROCESSING
It is used in scanning, and transmission for converting paper documents to a
digital image form, compressing the image, and storing it on magnetic tape. It is also
used in document reading for automatically detecting and recognizing printed
characteristics.
DEFENSE/INTELLIGENCE
It is used in reconnaissance photo-interpretation for automatic interpretation
of earth satellite imagery to look for sensitive targets or military threats and target
acquisition and guidance for recognizing and tracking targets in real-time smart-bomb
and missile-guidance systems.
1.2 OBJECTIVE
The main discussions and comparisons focus on spatial domain methods, frequency domain
methods and also adaptive methods. It will be shown that all of the Steganographic algorithms
discussed have been detected by Steganalysis and thus a robust algorithm with high embedding
capacity needs to be investigated. Simple edge embedding is robust to many attacks and it will
be shown that this adaptive method is also an excellent means of hiding data while maintaining a
good quality carrier. We intend to use human skin tone detection in a proposed edge embedding
Adaptive Steganographic method.
The existing systems hold the steganographed data in the known region of the image. The
usual steganography methods are prone to attacks and noise which may lead to perceptual
retrieval of the secret image or even the loss of data.
1. Johnson, N. F. and Jajodia, S.: Exploring Steganography: Seeing the Unseen. IEEE
Computer, 31 (2): 26-34, Feb 1998.
2. Jakubowski, J., Kwiatos, K., Chwaleba, A. and Osowski, S.: Higher Order Statistics and
Neural Network for Tremor Recognition. IEEE Transactions on Biomedical Engineering,
49 (2): February 2002.
5. Marvel, L. M. and Retter, C. T.: A Methodology for Data Hiding Using Images.
Proceedings of IEEE Military Communications Conference (MILCOM98) Proceedings,
Boston, MA, USA, 18-21 Oct 1998,1044-1047.
In the proposed system the steganography is done in the wavelet domain and hence the
low frequency domain is used for secure transmission.
1.4.1 ADVANTAGES:
The embedding is done in low frequency region and hence embedding is highly
secured
Scaling, Rotation, and RBA‟s are less prone to the low frequency region and hence
there will not be any loss of data.
CHAPTER2
PROJECT DESCRIPTION
2.1 INTRODUCTION
.
2.2 BLOCK DIAGRAM
Computer graphics and video signal transmission standards have givenbirth too many
color spaces with different properties. A wide variety of them have been applied to the problem
of skin color modeling. We will briefly review the most popular color spaces and their
properties.
2.2.2 RGB
RGB is a color space originated from CRT (or similar) display applications, when it was
convenient to describe color as a combination of three colored rays (red, green and blue). It is
one of the most widely used color spaces for processing and storing of digital image data.
However, high correlation between channels, significant perceptual non-uniformity mixing of
chrominance and luminance data make RGB not a very favorable choice for color analysis and
color based recognition algorithms.
Normalized RGB is a representation that is easily obtained from the RGB values by a
simple normalization procedure:
(3.1)
Hue-saturation based color spaces were introduced when there was a need for the user to
specify color properties numerically. They describe color with intuitive values, based on the
artist‟s idea of tint, saturation and tone. Hue defines the dominant color (such as red, green,
purple and yellow) of an area; saturation measures the colorfulness of an area in proportion to its
brightness. The”intensity”,”lightness” or”value” is related to the color luminance. The
intuitiveness of the color space components and explicit discrimination between luminance and
chrominance properties made these color spaces popular in the works on skin color
segmentation. Several interesting properties of Hue were noted: it is invariant to highlights at
white light sources, and also, for matte surfaces, to ambient light and surface orientation relative
to the light source.
(3.2)
2.2.5 YCBCR
Y
(3.3)
The final goal of skin color detection is to build a decision rule that will discriminate
between skin and non-skin pixels. This is usually accomplished by introducing a metric, which
measures distance (in general sense) of the pixel color to skin tone. The type of this metric is
defined by the skin color modeling method.
The main discussions and comparisons focus on spatial domain methods, frequency
domain methods and also adaptive methods. It will be shown that all of the Steganographic
algorithms discussed have been detected by Steganalysis and thus a robust algorithm with high
embedding capacity needs to be investigated. Simple edge embedding is robust to many attacks
and it will be shown that this adaptive method is also an excellent means of hiding data while
maintaining a good quality carrier. We intend to use human skin tone detection in a proposed
edge embedding adaptive Steganographic method.
2.4 METHODOLOGIES
3. Performance measurement.
Performance measurement.
As a performance measurement for image distortion, the well-known Peak-
Signal-to-Noise Ratio (PSNR) which is classified under the difference distortion metrics
is applied on the stego images.
Advantages:
A strong algorithm.
Improved quality.
CHAPTER 3
SOFTWARE SPECIFICATION
3.1 GENERAL
In 2004, MATLAB had around one million users across industry and
academia. MATLAB users come from various backgrounds of engineering, science,
and economics. MATLAB is widely used in academic and research institutions as well as
industrial enterprises.
MATLAB is used in vast area, including signal and image processing, communications,
control design, test and measurement, financial modeling and analysis, and computational. Add-on
toolboxes (collections of special-purpose MATLAB functions) extend the MATLAB
environment to solve particular classes of problems in these application areas.
MATLAB can be used on personal computers and powerful server systems, including
the Cheaha compute cluster. With the addition of the Parallel Computing Toolbox, the language
can be extended with parallel implementations for common computational functions, including
for-loop unrolling. Additionally this toolbox supports offloading computationally intensive
workloads to Cheaha the campus compute cluster. MATLAB is one of a few languages in which
each variable is a matrix (broadly construed) and "knows" how big it is. Moreover, the
fundamental operators (e.g. addition, multiplication) are programmed to deal with matrices when
required. And the MATLAB environment handles much of the bothersome housekeeping that
makes all this possible. Since so many of the procedures required for Macro-Investment Analysis
involves matrices, MATLAB proves to be an extremely efficient language for both
communication and implementation.
Libraries written in Java, ActiveX or .NET can be directly called from MATLAB and
many MATLAB libraries (for example XML or SQL support) are implemented as wrappers
around Java or ActiveX libraries. Calling MATLAB from Java is more complicated, but can be
done with MATLAB extension, which is sold separately by Math Works, or using an
undocumented mechanism called JMI (Java-to-Mat lab Interface), which should not be confused
with the unrelated Java that is also called JMI.
As alternatives to the MuPAD based Symbolic Math Toolbox available from Math Works,
MATLAB can be connected to Maple or Mathematica.
Development Environment
MATLAB provides a high-level language and development tools that let you quickly
develop and analyze your algorithms and applications.
The MATLAB language supports the vector and matrix operations that are fundamental to
engineering and scientific problems. It enables fast development and execution. With the
MATLAB language, you can program and develop algorithms faster than with traditional
languages because you do not need to perform low-level administrative tasks, such as declaring
variables, specifying data types, and allocating memory. In many cases, MATLAB eliminates the
need for „for‟ loops. As a result, one line of MATLAB code can often replace several lines of C
or C++ code.
At the same time, MATLAB provides all the features of a traditional programming language,
including arithmetic operators, flow control, data structures, data types, object-oriented
programming (OOP), and debugging features.
MATLAB lets you execute commands or groups of commands one at a time, without compiling
and linking, enabling you to quickly iterate to the optimal solution. For fast execution of heavy
matrix and vector computations, MATLAB uses processor-optimized libraries. For general-
purpose scalar computations, MATLAB generates machine-code instructions using its JIT (Just-
In-Time) compilation technology.
This technology, which is available on most platforms, provides execution speeds that rival those
of traditional programming languages.
Development Tools
MATLAB includes development tools that help you implement your algorithm
efficiently. These include the following:
MATLAB Editor
Provides standard editing and debugging features, such as setting breakpoints and single
stepping
Checks your code for problems and recommends modifications to maximize performance
and maintainability
MATLAB Profiler
Directory Reports
Scan all the files in a directory and report on code efficiency, file differences, file
dependencies, and code coverage
MATLAB supports the entire data analysis process, from acquiring data from external
devices and databases, through preprocessing, visualization, and numerical analysis, to
producing presentation-quality output.
Data Analysis
MATLAB provides interactive tools and command-line functions for data analysis
operations, including:
Data Access
MATLAB is an efficient platform for accessing data from files, other applications,
databases, and external devices. You can read data from popular file formats, such as Microsoft
Excel; ASCII text or binary files; image, sound, and video files; and scientific files, such as HDF
and HDF5. Low-level binary file I/O functions let you work with data files in any format.
Additional functions let you read data from Web pages and XML.
Visualizing Data
All the graphics features that are required to visualize engineering and scientific data are
available in MATLAB. These include 2-D and 3-D plotting functions, 3-D volume visualization
functions, tools for interactively creating plots, and the ability to export results to all popular
graphics formats. You can customize plots by adding multiple axes; changing line colors and
markers; adding annotation, Latex equations, and legends; and drawing shapes.
2-D Plotting
MATLAB provides functions for visualizing 2-D matrices, 3-D scalar, and 3-D
vector data. You can use these functions to visualize and understand large, often complex,
multidimensional data. Specifying plot characteristics, such as camera viewing angle,
perspective, lighting effect, light source locations, and transparency.
CHAPTER 4
STEGANOGRAPHY METHODS
The aim of quantization is to loosen up the tightened precision produced by DCT while
retaining the valuable information descriptors. Most of the redundant data and noise are lost at
this stage hence the name lossy compression.
The quantization step is specified by:
where x and y are the image coordinates, f �(� x ,� y ) denotes the result function, f (W x ,W y )
is an 8x8 non overlapping intensity image block and is a floor rounding operator. T (Wx,Wy)
represents a quantization step which, in relationship to JPEG quality, is given by:
FIGURE 1.7 Data Flow Diagram showing a general process of embedding in the frequency domain.
Most of the techniques here use a JPEG image as a vehicle to embed their data. JPEG
compression uses DCT to transform successive sub-image blocks (8x8 pixels) into 64 DCT
coefficients. Data is inserted into these coefficients‟ insignificant bits. However, altering any
single coefficient would affect the entire 64 block pixels. Since the change is operating on the
frequency domain instead of the spatial domain there will be no visible changes in the cover
image.
According to Raja et al., Fast Fourier Transform (FFT) introduces round off errors, thus it
is not suitable for hidden communication. Johnson and Jajodia included it among the used
transformations in Steganography. Choosing which values in the 8x8 DCT coefficients block to
alter is very important as changing one value will affect the whole 8x8 block in the image. The
JSteg algorithm was among the first algorithms to use JPEG images. Although the algorithm
stood strongly against visual attacks, it was found that examining the statistical distribution of
the DCT coefficients yields a proof for existence of hidden data. JSteg is easily detected using
the X2-test, which is a non-parametric (a rough estimate of confidence) statistical algorithm used
in order to detect whether the intensity levels scatter in a uniform distribution throughout the
image surface or not. If one intensity level has been detected as such, then the pixels associated
with this intensity level are considered as corrupted pixels or in our case have a higher
probability of having embedded data. Moreover, since the DCT coefficients need to be treated
with sensitive care and intelligence, the JSteg algorithm leaves a serious statistical signature.
Wayner stated that the coefficients in JPEG compression normally fall along a bell curve and the
hidden information embedded by JSteg distorts this.
Manikopoulos et al., discussed an algorithm that utilizes the Probability Density Function
(PDF) used to generate discriminator features fed into a neural network system to detect hidden
data in this domain. OutGuess, developed by Provos and Honeyman, was a better alternative as it
uses a pseudo-random-number generator to select DCT coefficients. The X2-test does not detect
data that is randomly distributed. Strangely enough the developer of OutGuess himself suggests a
counter attack against his algorithm. Provos and Honeyman, suggest applying an extended
version of X2-test to select Pseudo-randomly embedded messages in JPEG images. Andreas
Westfeld based his “F5” algorithm on subtraction and matrix encoding. Neither X2-test nor its
extended versions could break this solid algorithm. Unfortunately, F5 did not survive attacks for
where MSE denotes the Mean Square Error which is given as:
x and y are the image coordinates, M and N are the dimensions of the image, Sxy is the
generated stego image and Cxyis the cover image.
Many authors in the literature consider Cmax =255 as a default value for 8-bit images. It
can be the case, for instance, that the examined image has only up to 253 or fewer
representations of gray colours. Knowing that Cmax is raised to the power of 2 results in a severe
change to the PSNR value. Thus we define Cmax as the actual maximum value rather than the
largest possible value. PSNR is often expressed on logarithmic scale in decibels (dB). PSNR
values falling below 30dB indicate a fairly low quality (i.e., distortion caused by embedding can
be obvious); however, a high quality stego should strive for 40dB or higher.
CHAPTER 5
EDGE DETECTION
5.1 INTRODUCTION
Sobel
Canny
Perewitt
Laplacian
SOBEL
Based on this one-dimensional analysis, the theory can be carried over to two-dimensions
as long as there is an accurate approximation to calculate the derivative of a two-dimensional
image. The Sobel operator performs a 2-D spatial gradient measurement on an image. Typically
CANNY
INTRODUCTION
The Canny edge detection algorithm is known to many as the optimal edge detector.
Canny's intentions were to enhance the many edge detectors already out at the time he started his
work. He was very successful in achieving his goal and his ideas and methods can be found in
his paper, "A Computational Approach to Edge Detection". In his paper, he followed a list of
criteria to improve current methods of edge detection. The first and most obvious is low error
rate. It is important that edges occurring in images should not be missed and that there be NO
responses to non-edges. The second criterion is that the edge points be well localized. In other
words, the distance between the edge pixels as found by the detector and the actual edge is to be
at a minimum. A third criterion is to have only one response to a single edge. This was
implemented because the first 2 were not substantial enough to completely eliminate the
possibility of multiple responses to an edge.
Based on these criteria, the canny edge detector first smoothes the image to eliminate and
noise. It then finds the image gradient to highlight regions with high spatial derivatives. The
STEP 1
In order to implement the canny edge detector algorithm, a series of steps must be
followed. The first step is to filter out any noise in the original image before trying to locate and
detect any edges. And because the Gaussian filter can be computed using a simple mask, it is
used exclusively in the Canny algorithm. Once a suitable mask has been calculated, the Gaussian
smoothing can be performed using standard convolution methods. A convolution mask is usually
much smaller than the actual image. As a result, the mask is slid over the image, manipulating a
square of pixels at a time. The larger the width of the Gaussian mask, the lower is the detector's
sensitivity to noise. The localization error in the detected edges also increases slightly as the
Gaussian width is increased. The Gaussian mask used in my implementation is shown below.
STEP 2
After smoothing the image and eliminating the noise, the next step is to find the edge
strength by taking the gradient of the image. The Sobel operator performs a 2-D spatial gradient
measurement on an image. Then, the approximate absolute gradient magnitude (edge strength) at
each point can be found. The Sobel operator uses a pair of 3x3 convolution masks, one
estimating the gradient in the x-direction (columns) and the other estimating the gradient in the
y-direction (rows). They are shown below:
The magnitude, or EDGE STRENGTH, of the gradient is then approximated using the
formula:
|G| = |Gx| + |Gy|
STEP 3
Finding the edge direction is trivial once the gradient in the x and y directions are known.
However, you will generate an error whenever sumX is equal to zero. So in the code there has to
be a restriction set whenever this takes place. Whenever the gradient in the x direction is equal to
zero, the edge direction has to be equal to 90 degrees or 0 degrees, depending on what the value
of the gradient in the y-direction is equal to. If GY has a value of zero, the edge direction will
equal 0 degrees. Otherwise the edge direction will equal 90 degrees. The formula for finding the
edge direction is just:
STEP 4
Once the edge direction is known, the next step is to relate the edge direction to a
direction that can be traced in an image. So if the pixels of a 5x5 image are aligned as follows:
x x x x x
x x x x x
x x a x x
x x x x x
x x x x x
Then, it can be seen by looking at pixel "a", there are only four possible directions when
describing the surrounding pixels - 0 degrees (in the horizontal direction), 45 degrees (along the
positive diagonal), 90 degrees (in the vertical direction), or 135 degrees (along the negative
diagonal). So now the edge orientation has to be resolved into one of these four directions
depending on which direction it is closest to (e.g. if the orientation angle is found to be 3
degrees, make it zero degrees). Think of this as taking a semicircle and dividing it into 5 regions.
Therefore, any edge direction falling within the yellow range (0 to 22.5 & 157.5 to 180 degrees)
is set to 0 degrees. Any edge direction falling in the green range (22.5 to 67.5 degrees) is set to
45 degrees. Any edge direction falling in the blue range (67.5 to 112.5 degrees) is set to 90
degrees. And finally, any edge direction falling within the red range (112.5 to 157.5 degrees) is
set to 135 degrees.
STEP 5
After the edge directions are known, non maximum suppression now has to be applied.
Non maximum suppression is used to trace along the edge in the edge direction and suppress any
pixel value (sets it equal to 0) that is not considered to be an edge. This will give a thin line in the
output image.
STEP 6
CHAPTER 6
6.1 GENERAL
For adaptive image content retrieval in sequences of images (e.g., GIF, Video) we can
use color space transformations to detect and track any presence of human skin tone. The latter
emerged from the field of Biometrics, where the threefold RGB matrix of a given image is
converted into different colour spaces to yield distinguishable regions of skin or near skin tone.
Colour transformations are of paramount importance in computer vision. There exist several
colour spaces and here we list some of them3: RGB, CMY, XYZ, xyY, UVW, LSLM, L*a*b*,
L*u*v*, LHC, LHS, HSV, HSI, YUV, YIQ, YCbCr. Mainly two kinds of spaces are exploited in
the literature of biometrics which is the HSV and YCbCr spaces. It is experimentally found and
theoretically proven that the distribution of human skin colour constantly resides in a certain
range within those two spaces as different people differ in their skin colour (e. g., African,
European, Middle Eastern, Asian, etc). A colour transformation map called HSV (Hue,
Saturation and Value) can be obtained from the RGB bases. Sobottka and Pitas defined a face
localization based on HSV. They found that human flesh can be an approximation from a sector
out of a hexagon with the constraints: S min =0.23, S Max =0.68, H min =0 and H max =50.
The other utilized colour mapping, YCbCr (Yellow, Chromatic blue and Chromatic red),
is another transformation that belongs to the family of television transmission color spaces. Hsu
et al., introduced a skin detection algorithm which starts with lighting compensation, they detect
faces based on the cluster in the (Cb/Y)-(Cr/Y) subspace. Lee et al., showed that the skin-tone has
a center point at (Cb, Cr) = (-24, 30) and demonstrated more precise model.
Based on the literature, highlighted earlier in sections 2.1, 2.2, 2.3 and 2.5, we can
conclude and point to the following facts:
Algorithms F5 and Outguess are the most reliable methods although they violate the
second order statistics as mentioned previously. Both utilize DCT embedding.
Embedding in the DWT domain shows promising results and outperforms the DCT
domain especially in surviving compression. A Steganographer should be cautious when
embedding in the transformation domains in general. However, DWT tends to be more
tolerant to embedding than DCT. Unlike JPEG the newly introduced image coding
system JPEG20004 allows for wavelets to be employed for compression in lieu of the
DCT. This makes DWT based Steganography the future central method.
Without loss of generality, edge embedding maintains an excellent distortion free output
whether it is applied in the spatial, DCT or DWT domain. However, the limited payload
is its downfall.
Most Steganographic methods do not use the actual elements of the image when hiding a
message. These elements (e.g., faces in a crowd) can be adjusted in perfectly
undetectable ways.
6.3 STEGANOFLAGE
As of now the investigation and evaluation of the ideas of the earlier techniques are going
on. We aim to embed within the edge directions in the 2D wavelet decomposition. In this way
we are guaranteed a high quality stego image. To tackle the problem of edge limited payload we
choose video files. Spreading the hidden data along the frames of the video will compensate for
the drawback of the edge embedding technique.
We anticipate that Computer Vision can play a role here. Successful face localization
algorithms for colour images exploit the fact that human skin tone can be localized within a
certain range in the transform colour domain (i.e., RGB to YCbCr, HSV or Log-opponent).
Steganography can benefit from this in such a way that permits us to track and embed into the
edge of sequential appearances of human skin in the frames (e.g., faces in crowd, an athlete
Video files indexing and content based retrieval applications have attracted a lot of
attention during the last few years and they still are areas of active research. The core of our
proposal is to find salient spatial features in image frames. We perform skin tone detection to
embed secret data in videos for the following reasons:
1) When the embedding is spread on the entire image (or frame), scaling, rotation or cropping
will result in the destruction of the embedded data because any reference point that can
reconstruct the image will be lost. However, skin tone detection in the transformed colour space
ensures immunity to geometric transforms.
2) Our suggested scheme modifies only the regions of the skin tone in the colour transformed
channel, this is done for imperceptibility reasons.
3) The skin-tone has a centre point at Cb, Cr components, it can be modelled and its range is
known statistically, therefore, we can embed safely while preserving these facts. Moreover, no
statistical breach occurs whether it is of first order or second order type.
4) If the image (or frame) is tampered with by a cropping process, it is more likely that our
selected region will be in the safe zone, because the human faces generally demonstrate the core
elements in any given image and thus protected areas (e.g., portraits).
5) Our Steganographic proposal is consistent with the object based coding approach followed in
MPEG4 and MPEG7 standards (the concept of Video Objects (VOs) and their temporal
instances, Video Object Planes (VOPs) is central to MPEG video).
7) Videos are one of the main multimedia files available to public on the net thanks to the giant
free web-hosting companies (e.g., YouTube, Google Videos, etc). Every day a mass of these files
is uploaded online and human factors are usually present.
Figure 4 shows how the proposed method preserves the quality of the original image.
Table 2 shows the in comparison of our approach to F5 and S-Tools which are known as strong
algorithms. The table was generated using the images shown in Figure 5. F5 and S-Tools are
available online6. S-Tools performance was discussed in our work.
CHAPTER 7
IMPLEMENTATION
7.1 GENERAL
Matlab is a program that was originally designed to simplify the implementation of
numerical linear algebra routines. It has since grown into something much bigger, and it is used
to implement numerical algorithms for a wide range of applications. The basic language used is
very similar to standard linear algebra notation, but there are a few extensions that will likely
cause you some problems at first.
warning off;
% clear all;
% close all;
clc;
inputimage=imread('01.jpg');
hideimage=imread('Template.bmp');
sizeofhideimage=size(hideimage)
sizeinputimage = size(inputimage);
template = image_template(hideimage);
break
end
embededimage02 =
stegno_graphy(inputimage,skinedges,notemplatepixels,template);
MSE1 = 0;
inputimage00 = im2double(inputimage);
embededimage03 = im2double(embededimage02);
for i = 1:size(inputimage00,1)
for j = 1:size(inputimage00,2)
end
end
inputimage_max = max(max(inputimage00));
inputimage_max = (inputimage_max(1))^2;
disp(ceil(PSNR));
% pause(5);
EDGE DETECTION
function [inputimage03 count] = edge_detection(inputimage02)
inputimage03 = edge(inputimage02,'canny');
subplot(222),imshow(inputimage03),title('\color{blue}SKIN EDGES')
count = 0;
if inputimage03(i) == 1
count = count + 1;
end
end
OUTPUT
SKINTONE DETECTION
function [inputimage02 count] = skintone_detection(inputimage00)
subplot(221),imshow(inputimage00),title('\color{blue}INPUT IMAGE')
inputimage01 = rgb2ycbcr(inputimage00);
inputimage_y = inputimage01(:,:,1);
inputimage_cb = inputimage01(:,:,2);
inputimage_cr = inputimage01(:,:,3);
subplot(222),imshow(inputimage_y),title('\color{blue}LUMINANCE "Y"')
subplot(223),imshow(inputimage_cb),title('\color{blue}CROMINANCE "Cb"')
subplot(224),imshow(inputimage_cr),title('\color{blue}CROMINANCE "Cr"')
count = 0;
for i =1:size(inputimage_cr,1)
for j = 1:size(inputimage_cr,2)
inputimage02(i,j) = 255;
count = count + 1;
else
inputimage02(i,j) = 0;
end
end
end
subplot(221),imshow(inputimage02),title('\color{blue}SKIN PIXELS')
OUTPUT
EMBEDDING PROCESS
function embededimage02 =
stegno_graphy(inputimage,edge1,notemplatepixels,template)
[inputimage05,property] = rgb2ind(inputimage,255);
embededimage = [];
k = 1;
for i = 1:size(edge1,1)
for j = 1:size(edge1,2)
k = k + 1;
else
embededimage(i,j) = inputimage05(i,j);
end
end
end
embededimage01 = uint8(embededimage);
embededimage02=ind2rgb(embededimage01,property);
figure('name','3. STEGNOGRAPHY','numbertitle','off')
imshow(embededimage02),title('\color{blue}STEGO IMAGE')
OUTPUT
CHAPTER 8
APPLICATIONS
Applications:
Digital Imaging.
Adaptive steganography.
Digital steganography.
CHAPTER 9
9.1 CONCLUSION
Digital Steganography is a fascinating scientific area which falls under the umbrella of
security systems. We have presented in this work some background discussions on algorithms of
Steganography deployed in digital imaging. The emerging techniques such as DCT, DWT and
Adaptive Steganography are not an easy target for attacks, especially when the hidden message
is small. That is because they alter bits in the transform domain, thus image distortion is kept to a
minimum. Generally these methods tend to have a lower payload compared to spatial domain
algorithms. In short there has always been a trade off between robustness and payload. Our
proposed framework, Steganoflage, is based on edge embedding in the DWT domain using skin
tone detection in RGB sequential image files. We chose to use the latter to compensate for the
limited capacity that edge embedding techniques demonstrate. We use the actual elements of the
image when hiding a message. This leads to many exciting and challenging future research
problems.
9.2 REFERENCES
1. Johnson, N. F. and Jajodia, S.: Exploring Steganography: Seeing the Unseen. IEEE Computer,
31 (2): 26-34, Feb 1998.
2. Judge, J.C.: Steganography: Past, Present, Future. SANS Institute publication, December 1,
2001.Retrieved from: http://www.sans.org/reading_room/whitepapers
/stenganography/552.php
3. Provos, N. and Honeyman, P.: Hide and Seek: An Introduction to Steganography. IEEE
Security and Privacy, 01 (3): 32-44, May-June 2003.
5. Sadkhan, S. B.: Cryptography: Current Status and Future Trends. IEEE International
Conference on Information & Communication Technologies: From Theory to Applications.
Damascus. Syria: April 19 - 23, 2004.
6. Simmons, G. J.: The Prisoners‟ Problem and the Subliminal Channel. Proceedings of
CRYPTO83- Advances in Cryptology, August 22-24. 1984. pp. 51.67.
7. Kurak, C. and McHugh, J.: A cautionary note on image downgrading. Proceedings of the
Eighth Annual Computer Security Applications Conference. 30 Nov-4 Dec 1992 pp. 153-159.
8. Thomas, T. L.: Al Qaeda and the Internet: The Danger of “Cyberplanning”. Parameters, US
Army War College Quarterly - Spring 2003. Retrieved from:
http://www.carlisle.army.mil/usawc/Parameters /03spring/thomas.pdf on 22-Nov-2006.
10. Bender, W., Butera, W., Gruhl, D., Hwang, R., Paiz, F.J. and Pogreb, S.: Applications for
Data Hiding. IBM Systems Journal, 39 (3&4): 547-568. 2000
12. Jakubowski, J., Kwiatos, K., Chwaleba, A. and Osowski, S.: Higher Order Statistics and
Neural Network for Tremor Recognition. IEEE Transactions on Biomedical Engineering, 49 (2):
February 2002.
14. Kruus, P., Scace, C., Heyman, M. and Mundy, M.: A survey of Steganographic Techniques
for Image Files. Advanced Security Research Journal. V(I): 41- 51, Winter 2003.
15. Alvarez, P.: Using Extended File Information (EXIF) File Headers in Digital Evidence
Analysis. International Journal of Digital Evidence, 2 (3). Winter 2004.
16. Lin, E. T. and Delp, E. J.: A Review of Data Hiding in Digital Images. Retrieved on
1.Dec.2006 from Computer Forensics, Cyber crime and Steganography Resources, Digital
Watermarking Links and Whitepapers, Apr 1999.
17. Kermani, Z. Z. and Jamzad, M.: A Robust Steganography Algorithm Based on Texture
Similarity using Gabor Filter. Proceedings of IEEE 5th International Symposium on Signal
Processing and Information Technology, 18-21 Dec. 2005, 578- 582.
18. Potdar, V. M., Han, S. and Chang, E.: Fingerprinted Secret Sharing Steganography for
Robustness against Image Cropping Attacks. Proceedings of IEEE's 3 rd International Conference
on Industrial Informatics (INDIN), Perth, Australia, 10-12 August 2005.
20. Marvel, L. M. and Retter, C. T.: A Methodology for Data Hiding Using Images. Proceedings
of IEEE Military Communications Conference (MILCOM98) Proceedings, Boston, MA, USA,
18-21 Oct 1998, 1044-1047.