SCRAMBLE_IMAGE
Name
SCRAMBLE_IMAGE
Purpose
This function returns a version of the provided image in which
the digital count value locations have been scrambled a specified
number of times (numberTransformations) using toral automorphism
(G. Voyatzis and I. Pitas, Applications of toral automorphism in
image watermarking, Proceedings of the IEEE Conference on Image
Processing, Volume 2, pp. 237-240, 1996).
Category
Image Processing.
Calling Sequence
Result = SCRAMBLE_IMAGE( image, $
key, $
numberTransformations,
[PERIOD=period], $
[/UNSCRAMBLE] )
Inputs
image
An NxN two-dimensional array containing the image to be
scrambled.
key
A secret key used to define the toral automorphism
transformation matrix.
numberTransformations
The number of toral automorphism transforms to be applied to
scramble the pixel positions (in the case where the image is
being unscrambled, this argument should still be defined as the
original number of transformations used to scramble the image,
the congugate number with respect to the period of the
specified toral automorphism due to the provide key will be
computed).
Keyword Parametrs
PERIOD
The period of the toral automorphism defined by the
supplied secret key.
UNSCRAMBLE
Set this keyword to unscramble the scambled image by applying
the conjugate number of transformations K to the number of
transfomations used to originally scramble the image N where;
the period of the toral automorphism T defined by the
supplied secret key follows the constraint that T = N + K.
Return Value
Result is a scrambled version of the provided image that has
undergone a specied number of transformations or a -1 upon
failure.
:ERROR CHECKING:
RETURN, -1
If the number of transformations requested by the calling routine
exceeds the period of the toral automorphism defined by the provide
secret key (key).
RETURN, -2
If the provide image is not square.
Side Effects
None
Requires
None
Modification History
Written by: Carl Salvaggio
November, 2007 Original code
Disclaimer
This source code is provided "as is" and without warranties as to performance
or merchantability. The author and/or distributors of this source code may
have made statements about this source code. Any such statements do not
constitute warranties and shall not be relied on by the user in deciding
whether to use this source code.
This source code is provided without any express or implied warranties
whatsoever. Because of the diversity of conditions and hardware under which
this source code may be used, no warranty of fitness for a particular purpose
is offered. The user is advised to test the source code thoroughly before
relying on it. The user must assume the entire risk of using the source code.