Performs selected local sliding-window operations on an image
LOWCAL performs a selected sliding-window local operation on an input image. The following operations are supported with the use of the TAE subcommand feature:
-MEAN: Mean window -STDEV: Standard deviation window -VARIANCE: Variance window -QUANT: Quantized mode window -MINIMUM: Minimum window -MAXIMUM: Maximum window -MEDIAN: Median window -MABS: Median absolute-deviation window -SHARP: Sharp window -KNN: K nearest-neighbor average -SELECT: Selective average -MSUB: Mean subtraction window -CONV: Separable convolutionEach of the available operations may be iterated a number of times as specified by the user. The output image has the same dimensions as the input image.
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(R*4)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(R*4)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- NBINS(0)
- Number of bins. Number of bins in which to accumulate values. Pixel value quantization is used to reduce the number of histogram bins from one per pixel value to a user-specified number, NBINS. NBINS must be specified nonnegative and at most 256. If NBINS = 0 (the default) is specified, then NBINS is set equal to KERNDIM(1)*KERNDIM(2).
- MINVAL(0)
- Minimum bin occupancy required for mode values. The value of the center pixel is replaced by the mode of all pixels in the window, including the center pixel, provided that the mode is greater than or equal to MINVAL. MINVAL must be specified non-negative and at most KERNDIM(1)*KERNDIM(2). If MINVAL = 0 (the default) is specified, then MINVAL is set equal to the closest integer to the square root of KERNDIM(1)*KERNDIM(2).
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- NNN(0)
- Number of nearest neighbors that are closest in value to that of the center pixel. NNN must be specified non-negative and less than KERNDIM(1)*KERNDIM(2). If NNN = 0 (the default) is specified, then NNN is set equal to the nearest integer to the square root of KERNDIM(1)*KERNDIM(2). Note that for LOWCAL, "nearest neighbor" means nearest in pixel value, not nearest spatially.
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- NNTHR(0)
- Number of neighbor pixels which must differ in absolute value from the center pixel by an amount equal to or greater than THRVAL. NNTHR must be specified non-negative and less than KERNDIM(1)*KERNDIM(2). If NNTHR=0 (the default) is specified, then NNTHR is set equal to the nearest integer to the square root of KERNDIM(1)*KERNDIM(2).
- THRVAL(0)
- Threshold value for selective mean. THRVAL must be non-negative.
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(SAME)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- IN
- Input image. Input image on which selected sliding window operations will be performed. Permissible data types are: BYTE, INTEGER*2, INTEGER*4, and REAL*4.
- OUT
- Output image. The output image will be the same size as the input image. It will contain a border of unprocessed pixels (filled with zeros) because in order for a pixel to be processed, it must be far enough from the edge of the image to be the center of some local window.
- KERNDIM(3,3)
- Kernel dimensions. Size of the local window. Valid size range is 1 through 15 in each dimension. Both dimensions must be odd numbers. (1,1) is not allowed, because it would result in an output which is identical to the input.
- NITER(1)
- Number of iterations. Number of times that the local window operation will be applied to the input image. Multiple iterations are handled as follows: For each iteration, the entire image is processed (that is, the local window calculation takes place for all positions of the local window within the image). The subsequent iteration uses the output of the previous iteration as its input, and performs the local window calculation over again for all positions of the local window.
- ODTYPE(R*4)
- Output data type. Specifying an output data type having a smaller potential range of values than that of the input image may result in data truncation.
= SAME: Same as input = BYTE: BYTE = I*2: INTEGER*2 = I*4: INTEGER*4 = R*4: REAL*4
- LINECOEF
- Convolution coefficients to be used on rows. A one-dimensional row convolution is first performed using the LINECOEF values against every row in the window. The number of entries given for LINECOEF must match the value of KERNDIM(2).
- SAMPCOEF
- Convolution coefficients to be used on columns. The SAMPCOEF values are used to perform a one-dimensional column convolution on the single column resulting from the LINECOEF convolution. The number of SAMPCOEF entries must match the value of KERNDIM(1).
A sliding window of size 3 x 3 is applied to the indicated
portion of each of the indicated bands of the
input image. Only one iteration is performed. The
output consists of two bands and has the same data type
as the input. At each successive position of the 3 x 3
sliding window, the value of the center pixel of the
window is replaced by the mean of the values of all
nine pixels of the window.
A sliding window of size 5 x 5 is applied. At each successive
position of the window, the pixel value of the
center pixel is replaced by the statistical mode of all
pixels in the window, provided that the bin occupancy
for that bin occupied by the mode pixel value is at
least 7. Pixel values are quantized into 10 bins.
A sliding window of size 3 x 3 is applied. At each successive position of the window, the value of the center pixel of the window is replaced by the average of the pixel values of the four other pixels in the win dow whose pixel values are closest to that of the center pixel. This entire process is carried out three times in succession. The output data type is REAL*4.
A sliding window of size 3 x 3 is applied. At each successive position of the window, the value of the center pixel of the window is replaced by the average pixel value of the eight pixels excluding the center pixel, provided that at least four of these eight pixels have pixel values that differ (in absolute value) from that of the center pixel by at least five.
A sliding window of size 3 x 3 is applied. At each successive position of the window, the value of the center pixel of the window is replaced by the separable convolution of all entries in the window using the specified weights. For further details, see the Description/Algorithm section.
Mean Window-The pixel value of the center pixel in the window is replaced by the mean of all pixels within the window, including the center pixel,
N 1 M = - SUM X N i i=1where N = KERNDIM(1)*KERNDIM(2).
Standard Deviation Window-The pixel value of the center pixel in the window is replaced by the standard deviation of all pixels in the window including the center pixel.
N 2 sigma = SQRT [SUM (X - M) / N - 1] i i=1Variance Window-The pixel value of the center pixel in the window is replaced by the variance (sigma**2) of all pixels in the window, including the center pixel.
Quantized Mode Window-The pixel value of the center pixel in the window is replaced by the mode of all pixels in the window, including the center pixel, provided the bin occupancy for the mode pixel value is greater than or equal to a threshold. If the mode does not pass this threshold test, or if there is no unique single mode, then the pixel value of the center pixel is replaced by the center pixel value of its bin. pixel value quantization is used to assign each pixel value to a histogram bin (parameter NBINS). The width of each bin is based on the range of the entire input image or image window divided by NBINS. Each bin is inclusive of the lowest pixel value in its interval, but exclusive of the highest, except for the last bin, which includes values at both ends of its interval.
Minimum Window-The pixel value of the center pixel in the window is replaced by the minimum value of all pixels in the window, including the center pixel.
Maximum Window-The pixel value of the center pixel in the window is replaced by the maximum value of all pixels in the window, including the center pixel.
Median Window-The pixel value of the center pixel in the window is replaced by the median of all pixels in the window, including the center pixel.
Median Absolute Deviation Window-The pixel value of the center pixel in the window is replaced by the median absolute deviation (MAD) of all pixels in the window, including the center pixel. The median in the window is computed first. Then, the absolute difference between this median and each pixel in the window is found. The median of all these absolute differences is the MAD.
MAD = MEDIAN (|Xi-MEDIAN(X)|) for all i=1 to N
Sharp Window-The pixel value of the center pixel in the window is replaced by the pixel value of whichever of the two extreme values (minimum or maximum) is closest in pixel value to the center pixel. The extreme values are found from among all pixels in the window, including the center pixel. If the absolute difference between the center pixel value and the maximum pixel value in the window is equal to the absolute difference between the center pixel value and the minimum pixel value in the window, then the center pixel value will be replaced by the minimum pixel value.
K Nearest Neighbor Average-The pixel value of the center pixel in the window is replaced by the pixel value of the average of a user-specified number of neighbor pixels whose pixel values are closest to that of the center pixel. The center pixel is not considered in the average.
Selective Average-The pixel value of the center pixel in the window is replaced by the average pixel value of all neighbors, excluding the center pixel, provided that at least a user-specified number of neighbors have pixel values that differ (in absolute value) from the center pixel by an amount greater than or equal to a user-specified threshold value.
Mean Subtraction Window-The pixel value of the center pixel in the window is replaced by the difference between the center pixel and the mean pixel value of all pixels in the window (X-M), provided that this difference is nonnegative. If the difference is negative, the center pixel pixel value is set to zero.
Separable Convolution-The pixel value of the center pixel in the window is replaced by the separable convolution of all entries in the window. The convolution is accomplished in two stages. First, a one-dimensional row convolution is performed using the LINECOEF value against every row in the window. Then, a one-dimensional column convolution is performed using the SAMPCOEF value against the resulting column from the previous convolution.
The following description applies to all subcommands:
When more than one iteration is performed, intermediate results from one iteration are placed in a temporary file that then serves as input to the next iteration. Following the last iteration, any temporary files are deleted.
When the sliding window extends beyond the image, the center pixels are unchanged during intermediate iterations and are filled with zeros after the final iteration.
The temporary file cannot be created by the image i/o routines. Make sure that there is enough disk space before trying again.
Window size of 1 by 1 is not allowed because it would result in an output which is identical to the input. Retry with different KERNDIM values.
Threshold value must be at most KERNDIM(1)*KERNDIM(2). Retry with a smaller threshold value.
The nearest neighbor value must be at most KERNDIM(1)* KERNDIM(2). Retry with a smaller NNN value.
The number of neighbors must be at most KERNDIM(1)*KERNDIM(2). Retry with a smaller NNTHR value.
Retry with the appropriate number of convolution coefficients.
Retry with the appropriate number of convolution coefficients.
Specify larger input image window or smaller local window.
Specify larger input image window or smaller local window
Check spelling of the input image file name before retrying.
Check input image file names and types before retrying.
Overwriting an existing image is not allowed. Retry with a different output image file name.
o Iterative edge operator. Use a small window (typically 5 x 5) on the pixel value input image and perform several iterations (typically two), then threshold the resultant image into binary form. o Local edge thresholding operator. Use a large window (typically 9 x 9) on the gradient input image, perform one iteration, and threshold the result to binary form.