|
1.
We use LabVIEW to compute the 2-dimensional Fast Fourier Transform of the
image to be analyzed. Since LabVIEW's internal representation of JPEG images
are two one dimensional arrays, we must first merge the two arrays to obtain
the desired array of data. We then normalize and phase shift the data to
obtain proper visualization for the plot of the magnitude of the Fourier
Transform. (Click on image to enlarge) |
|||||||
|
|
|||||||
|
|
|
||||||
|
2.
The next step is to plot the magnitude of the 2-dimensional Fast Fourier
Transform of the image. |
|
||||||
|
3.
We then take a diagonal 1-dimensional slice of pixels and scan for discontinuities.
By scanning a sector corresponding to 30 degrees on the magnitude plot
of the Fourier Transform, we sample a large enough among of
slices to properly detect if there are discontinuities caused by
embedded data in the image. (Click on image to enlarge) |
|
||||||
|
|
|||||||
|
|
|
||||||
|
4.
To scan a 1-dimensional slice of pixels for discontinuities, we compare the
median pixel value to the mean pixel value of the array of pixels. If the
difference between the median pixel value and the mean pixel value is above a
certain threshold value, we can conclude that a discontinuity exists in the
slice of pixels selected. Using the following condition, we check for
discontinuities in a single slice of the Fourier Transform: (Click on image
to enlarge) |
|
||||||
|
|
|
||||||
If |
then discontinuity exists.
|
|
||||||
|
|
|||||||
|
|
|
||||||
|
5.
If at least 10% of all of the 1-dimensional slices of pixels in the magnitude
plot of the Fourier Transform have detected discontinuities, then we can
conclude that the image contains embedded data and a green button lights up
on the graphical user interface. (Click on image to enlarge) |
|
6. If the criteria is not met, or less than
10% of the slices contain discontinuities, the green button does not light up
and we can conclude that the image does not contain embedded data. (Click on
image to enlarge) |
|
The
following screenshot shows the hierarchy of the VI’s and subVI’s used in
LabView. The actual files of Matlab
code can be found here. (Click on image to enlarge) |