User's Guide

EXPYRAMID

Upsamples an element of a Gaussian Pyramid to the next higher level.

Function:

Upsamples (with interpolation) an element of a Gaussian Pyramid to the next higher level. This function is used in the creation of a Laplacian Pyramid. A Laplacian Pyramid image is an error image of the data loss between two successive Gaussian Pyramid members, which is obtained by the subtraction of these two same-scale images. The result of this process is an output image with twice the number of lines and samples as the input image.

Parameters:

IN
Input image. This is an element of a Gaussian Pyramid (i.e., an image that has been processed with GPYRAMID).

OUT
Output image. The output image has twice the number of lines and samples as the input image.

WEIGHT(0.4)
Weight scale. The value which determines the shape of the weight functions used in the interpolation process. Refer to the algorithm section for a definition of how WEIGHT affects the weight functions.

Examples:

  1. LAS> expyramid in=image.dat out=image.out

    IMAGE.OUT is created with twice the lines and samples that IMAGE.DAT has. The image is upsampled and interpolated with a Gaussian-like weighting function.

Description/Algorithm:

A 5 x 5 interpolation filter is set up. The user controls the shape of the weight function with the WEIGHT parameter. A value of 0.4 is normally used to create a Gaussian-like weight function. A value of 0.3 is broader than Gaussian, a value of 0.5 is triangular, and a value of 0.6 is trimodal. The convolution weights are separable, normalized, symmetric, and have equal contribution (all nodes at a given level contribute the same total weight to the nodes at the next higher level).

Following are the convolution weights for values of WEIGHT:


         w(-2) = 0.25 - WEIGHT/2
         w(-1) = 0.25
         w(0) =  WEIGHT 
         w(1) =  0.25
         w(2) =  0.25 - WEIGHT/2

The image is upsampled by a factor of two and the interpolation weights are applied in the sample direction, then in the line direction. See the references in User Note 2 for an in-depth explanation of this process.

Nonfatal Error Messages:

  1. [expyramid-warn] Nonfatal error encountered

    A nonfatal error was encountered during processing. The message displayed immediately preceding this message is the specific error encountered. Processing continues.

Fatal Error Messages:

  1. [expyramid-alloc] Error allocating memory

    An error was encountered while dynamically allocating memory. Re-run the function when more system resources are available.

  2. [expyramid-fatal] Fatal error encountered

    A fatal error was encountered during processing. The error message displayed immediately preceding this message is the specific error encountered. Processing is terminated.

User Notes:

  1. This function can be used in conjunction with GPYRAMID to create an element of a Laplacian Pyramid. To create a given pyramid level, Ln, create level Ln-1 using GPYRAMID and then expand it using EXPYRAMID. Subtract the output image of EXPYRAMID from the input image to GPYRAMID to get the resulting error image -- the Laplacian Pyramid element.

  2. For further information on this process, refer to "The Laplacian Pyramid as a Compact Image Code" by P. Burt and E. Adelson in the IEEE Transactions on Communications Volume COM-31, Number 4, April 1983.