ISIS 3 Application Documentation
kernfilter | Printer Friendly View | TOC | Home |
Filter a cube through a kernel
| Overview | Parameters | Example 1 | Example 2 | Example 3 |
Parameter GroupsFiles
|
Use this parameter to select the filename. All bands within the file will be filtered.
| Type | cube |
|---|---|
| File Mode | input |
| Filter | *.cub |
This file will contain the results of the filter
| Type | cube |
|---|---|
| File Mode | output |
| Pixel Type | real |
| Filter | *.cub |
Use this parameter to select the file to be used as the kernel. The input kernel is by default found in the "kernels" directory and includes several examples that can be used to filter images.
| Type | filename |
|---|---|
| File Mode | input |
| Default Path | $base/templates/kernels/ |
| Filter | *.txt |
Example 1Using the highpassCircle5x5.txt kernel Description
This example assumes that a kernel named "highpassCircle5x5.txt" (which
is provided with the program) exists in the "kernels" file that is
created by default. The program does not actually run a highpass
algorithm on the cube. Instead, it weighs the pixels with a common
algorithm that adds all of the weighted pixel values together and
outputs that sum as the center pixel of the boxcar. The weights, which
are provided by the user-specified parameter "kernel" define the
characteristics of that final sum. In this example, the kernel
"highpassCircle5x5.txt" (which is provided with the program) is
selected. The kernel weights are as follows:
0 -1 -1 -1 0
-1 -1 -1 -1 -1
-1 -1 24 -1 -1 x .04
-1 -1 -1 -1 -1
0 -1 -1 -1 0
Thus, the highpass filter is simulated. The center pixel will be
multiplied by 24. Then this value will be added to the values of its
surrounding pixels (all of these values will either have a sign change
since they were multiplied by -1 in this filter or they will be 0, since
0 and -1 are the only weight values that the filter holds, except for the
center pixel). Finally, after all of the addition has been done, the final
sum of all of the weights that were multiplied by either 24, or -1, or 0,
will be multiplied by .04, which equals 1/25. The reason all of the pixels
are multiplied by 1/25 is that there are 25 spots in the 5 by 5 kernel,
and thus the image will be normalized.
Command Line
kernfilter
from= peaks.cub to=highpass.cub kernel=highpassCircle5x5.txt
The kernfilter program has been loaded with a kernel that will
simulate a circular highpass filter with a 5 x 5 boxcar.
GUI Screenshot
Input Image
Output Image
|
Example 2Using the smoothPyramid5x5.txt kernel Description
This example assumes that a kernel named "smoothPyramid5x5.txt" (which
is provided with the program) exists in the "kernels" file that is created
by default. The program simulates a smoothing algorithm that takes an
average of the DNs in the boxcar. The kernel weights pixels that are
nearest to the center higher than those at the edges of the boxcar.
The kernel weights are as follows
1 2 3 2 1
2 4 6 4 2
3 6 9 6 3 x 1/81
2 4 6 4 2
1 2 3 2 1
The pixels in the boxcar are assigned weights that inversely reflect
their distance from the center of the boxcar. The pixel at the very
center will be multiplied by 9 and then added to all of the values that
were multiplied by the other weights in the boxcar. Note that all of the
weights add up to 81. This is why the final output is divided by 81; it
allows the center pixel to be an average of the weights. Thus, the blur
appears as though a smoothing algorithm applying weight in a pyramidal
fashion had been applied.
Command Line
kernfilter
from= peaks.cub to=smooth.cub
kernel=smoothPyramid5x5.txt
This example has loaded the smoothPyramid5x5.txt kernel, which will
smooth the input image using weights that are dispersed in a pyramidal
fashion. The boxcar is 5 x 5.
GUI Screenshot
Input Image
Output Image
|
Example 3Using the derivativeNWtoSE2x2.txt kernel Description
This example assumes that a kernel named "derivativeNWtoSE2x2.txt"
(which is provided with the program) exists in the "kernels" file that
is created by default. This program serves the purpose of bringing out
areas of high contrast. It does so by finding the difference of 2 pixels
on a diagonal from each other. The weights are as follows
1 0
0 -1 x 1.0
The top left pixel receives the value of itself minus the pixel down
right of itself. The other two pixesl do not matter. Anywhere where is
significant change from the top left to the bottom right then shows it
with brighter or darker pixels than the surrounding gray where there was
little difference and the DNs are at or close to zero.
Command Line
kernfilter
from=peaks.cub to=derivative.cub kernel=derivativeNWtoSE2x2.txt
The kernfilter program has been loaded with a kernel that will find
the difference between 2 diagonal pixels.
GUI Screenshot
Input Image
Output Image
|