Flowchart for Dataset Generation Process
Fextract
This function extracts 23 features from the embedded image and stores into x matrix and t vector. The x
matrix and t vector work as input to the ANN during analysis of an image. The fextract function extracts
these 23 features by calculating the Red, Green and Blue components of the images, converts image into
grayscale image and calculates Mean, Min and Max of the grayscale, calculates the HSV and energy
components, Standard Deviation, Entropy, Histogram, ALE and Binary Similarity Measures.
The dataset generation process depends on the number of images and text files selected for training the
NN. This current dataset with which the experiment is done took around 180 minutes on an Intel core 5
64-bit, 2.30GHz and 4 GB RAM machine.
Feature Extraction Process
The extraction process is undertaken to extract 23 features from each image. If we use N number of
images in training session than number of features to be fed up in Neural Network will be 23 x N. These
23 features are grouped into 8 groups. All extracted features are stored in variable featureVector.
The MATLAB code works as described below using 8 group features as described in the table
GROUP MEANING OF THE FEATURE IMPLEMENTATION IN MATLAB
FEATURE AND ITS USE
Mean of each An RGB image to store hidden featureVector(1) = mean(rImage(:));
channel from message consists of 3 color featureVector(2) = mean(gImage(:));
featureVector(3) = mean(bImage(:));
RGB image channel - Red (R), Green (G),
and Blue (B). Average of each
channel is calculated and
assigned as 3 features
Mean, Max and Color image is converted to featureVector(4) = mean(grayImage(:));
Min values of grayscale and statistical values featureVector(5) = min(grayImage(:));
featureVector(6) = max(grayImage(:));
grayscale image Mean, Min and Max of
grayscale intensity are taken as
next 3 features
Mean of each HSV color space of an RGB featureVector(7) = mean(hImage(:));
channel from its image can represent the image featureVector(8) = mean(sImage(:));
featureVector(9) = mean(vImage(:));
representation in features and analyze color
HSV color space images. HSV channels can be
accessed and the mean values
are calculated for an RGB
image and saved as next 3
features
Energy values of Energy of image can be featureVector(10) = rEnergy;
R, G, and B calculated as mean of sum of featureVector(11) = gEnergy;
featureVector(12) = bEnergy;
channels of the squared color component of an
WHERE x represents R,G,B energy channels
RGB image image for each of the RGB
xEnergy = xImage.^2;
channel as scalar values and
xEnergy = mean(xEnergy(:));
saved as next 3 features
Standard Standard deviation is used in featureVector(13) = std2(rImage);
Deviation of each the experiment to quantify the featureVector(14) = std2(gImage);
featureVector(15) = std2(bImage);
channel of the amount of variation or
RGB image dispersion of image and saved
as next 3 features
Entropy of Entropy is a statistical measure featureVector(16) = entropy(grayImage);
grayscale image of randomness that can be used
to characterize the texture of the
input image. Entropy is
calculated on grayscale image.
Entropy is defined as
where contains the image
histogram counts.
Entropy is saved 16th feature
Histogram Histogram of image is h = (imhist(grayImage))';
characteristic calculated in grayscale format H = sum(((0:127)/256).* h(1:128))/
sum(h(1:128));
function that represents the distribution
featureVector(17) = H;
of tonal in image as one
dimension curve. This
experiment uses intensity from
0 – 127 and normalize the value
in the range of 0 – 1.It makes
the 17th feature
Amplitude of Amplitude of Local Extrema is ALE = 2*h(2:255) - h(1:254) - h(3:256);
Local Extrema calculated based on image featureVector(18) = sum(abs(ALE));
(ALE) histogram values calculated in
last step. The formula used is
is histogram value of current
bin. It is saved as the 18th
feature.
Binary similarity The binary similarity and featureVector(19) = M1 - m1;
Measures dissimilarity (distance) are used featureVector(20) = M2 - m2;
featureVector(21) = M3 - m3;
for final analysis and
featureVector(22) = M4 - m4;
classification of images as
featureVector(23) = M5 - m5;
stego or clear image. Features
are calculated by using m1 –
m5 and M1 – M5. Values of M
are subtracted by m and results
5 more features.