net.sourceforge.openstego.util.dwt
Class DWTUtil

java.lang.Object
  extended by net.sourceforge.openstego.util.dwt.DWTUtil

public class DWTUtil
extends java.lang.Object

Class to handle Wavelet filters and other DWT utilities. This class is conversion of C to Java for the file "wavelet.c" file provided by Peter Meerwald at: http://www.cosy.sbg.ac.at/~pmeerw/Watermarking/ Refer to his thesis on watermarking: Peter Meerwald, Digital Image Watermarking in the Wavelet Transfer Domain, Master's Thesis, Department of Scientific Computing, University of Salzburg, Austria, January 2001.


Method Summary
static void convoluteLines(Image outputImg, Image inputImg, Filter filter, int method)
          Method to convolute lines
static void convoluteRows(Image outputImg, Image inputImg, Filter filter, int method)
          Method to convolute rows
static void decomposition(Image inputImg, Image coarseImg, Image horizontalImg, Image verticalImg, Image diagonalImg, Filter filterG, Filter filterH, int method)
          Method to decompose the image
static void filterCutOff(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply cut-off filter
static void filterInvCutOff(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply inverse cut-off filter
static void filterInvMirror(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply inverse mirror filter
static void filterInvPeriodical(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply inverse periodical filter
static void filterMirror(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply mirror filter
static void filterPeriodical(Image inputImg, int inStart, int inLen, int inStep, Image outputImg, int outStart, int outLen, int outStep, Filter filter)
          Method to apply periodical filter
static int findDeepestLevel(int width, int height)
          Method to get the deepest level possible for given image width and height
static double getPixel(Image image, int x, int y)
          Get pixel value from the image
static void invDecomposition(Image sumImg, Image coarseImg, Image horizontalImg, Image verticalImg, Image diagonalImg, FilterGH filterGH, int method)
          Method to perform inverse decomposition
static Image inverseTransform(ImageTree tree, FilterGH[] filterGHList, int method)
          Method to perform inverse wavelet transform
static void setPixel(Image image, int x, int y, double val)
          Set pixel value in the image
static ImageTree waveletTransform(Image origImg, int level, FilterGH[] filterGHList, int method)
          Method to perform the wavelet transform
static ImageTree waveletTransformWp(Image origImg, int currLevel, int level, FilterGH[] filterGHList, int method)
          Method to perform the wavelet transform (WP)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

waveletTransform

public static ImageTree waveletTransform(Image origImg,
                                         int level,
                                         FilterGH[] filterGHList,
                                         int method)
Method to perform the wavelet transform

Parameters:
origImg - Original image
level - Decomposition level
filterGHList - List of filters
method - Wavelet filtering method
Returns:
Data after performing wavelet transform

waveletTransformWp

public static ImageTree waveletTransformWp(Image origImg,
                                           int currLevel,
                                           int level,
                                           FilterGH[] filterGHList,
                                           int method)
Method to perform the wavelet transform (WP)

Parameters:
origImg - Original image
currLevel - Current decomposition level
level - Decomposition level
filterGHList - List of filters
method - Wavelet filtering method
Returns:
Data after performing wavelet transform

decomposition

public static void decomposition(Image inputImg,
                                 Image coarseImg,
                                 Image horizontalImg,
                                 Image verticalImg,
                                 Image diagonalImg,
                                 Filter filterG,
                                 Filter filterH,
                                 int method)
Method to decompose the image

Parameters:
inputImg - Input image
coarseImg - Coarse image
horizontalImg - Horizontal image
verticalImg - Vertical image
diagonalImg - Diagonal image
filterG - G filter
filterH - H filter
method - Wavelet filtering method

convoluteLines

public static void convoluteLines(Image outputImg,
                                  Image inputImg,
                                  Filter filter,
                                  int method)
Method to convolute lines

Parameters:
outputImg - Output image
inputImg - Input image
filter - Filter to use
method - Wavelet filtering method

convoluteRows

public static void convoluteRows(Image outputImg,
                                 Image inputImg,
                                 Filter filter,
                                 int method)
Method to convolute rows

Parameters:
outputImg - Output image
inputImg - Input image
filter - Filter to use
method - Wavelet filtering method

filterCutOff

public static void filterCutOff(Image inputImg,
                                int inStart,
                                int inLen,
                                int inStep,
                                Image outputImg,
                                int outStart,
                                int outLen,
                                int outStep,
                                Filter filter)
Method to apply cut-off filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

filterInvCutOff

public static void filterInvCutOff(Image inputImg,
                                   int inStart,
                                   int inLen,
                                   int inStep,
                                   Image outputImg,
                                   int outStart,
                                   int outLen,
                                   int outStep,
                                   Filter filter)
Method to apply inverse cut-off filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

filterPeriodical

public static void filterPeriodical(Image inputImg,
                                    int inStart,
                                    int inLen,
                                    int inStep,
                                    Image outputImg,
                                    int outStart,
                                    int outLen,
                                    int outStep,
                                    Filter filter)
Method to apply periodical filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

filterInvPeriodical

public static void filterInvPeriodical(Image inputImg,
                                       int inStart,
                                       int inLen,
                                       int inStep,
                                       Image outputImg,
                                       int outStart,
                                       int outLen,
                                       int outStep,
                                       Filter filter)
Method to apply inverse periodical filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

filterMirror

public static void filterMirror(Image inputImg,
                                int inStart,
                                int inLen,
                                int inStep,
                                Image outputImg,
                                int outStart,
                                int outLen,
                                int outStep,
                                Filter filter)
Method to apply mirror filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

filterInvMirror

public static void filterInvMirror(Image inputImg,
                                   int inStart,
                                   int inLen,
                                   int inStep,
                                   Image outputImg,
                                   int outStart,
                                   int outLen,
                                   int outStep,
                                   Filter filter)
Method to apply inverse mirror filter

Parameters:
inputImg - Input image
inStart - Start point for input image
inLen - Length of data for input image
inStep - Step for loop for input image
outputImg - Output image
outStart - Start point for output image
outLen - Length of data for output image
outStep - Step for loop for output image
filter - Filter

inverseTransform

public static Image inverseTransform(ImageTree tree,
                                     FilterGH[] filterGHList,
                                     int method)
Method to perform inverse wavelet transform

Parameters:
tree - Forward transformed DWT data
filterGHList - List of filters
method - Wavelet filter method
Returns:
Inverse transformed image data

invDecomposition

public static void invDecomposition(Image sumImg,
                                    Image coarseImg,
                                    Image horizontalImg,
                                    Image verticalImg,
                                    Image diagonalImg,
                                    FilterGH filterGH,
                                    int method)
Method to perform inverse decomposition

Parameters:
sumImg - Sum image
coarseImg - Coarse image
horizontalImg - Horizontal image
verticalImg - Vertical image
diagonalImg - Diagonal image
filterGH - Filter
method - Wavelet filter method

findDeepestLevel

public static int findDeepestLevel(int width,
                                   int height)
Method to get the deepest level possible for given image width and height

Parameters:
width - Image width
height - Image height
Returns:
Deepest possible level

setPixel

public static void setPixel(Image image,
                            int x,
                            int y,
                            double val)
Set pixel value in the image

Parameters:
image - Image
x - X position of pixel
y - Y position of pixel
val - Pixel value

getPixel

public static double getPixel(Image image,
                              int x,
                              int y)
Get pixel value from the image

Parameters:
image - Image
x - X position of pixel
y - Y position of pixel
Returns:
Pixel value


Copyright © 2007-2009 Samir Vaidya. All Rights Reserved.