Package org.esa.snap.core.datamodel
Class Kernel
java.lang.Object
org.esa.snap.core.datamodel.Kernel
- All Implemented Interfaces:
Cloneable
The
Kernel
class defines a matrix that describes how a
specified pixel and its surrounding pixels affect the value
computed for the pixel's position in the output image of a filtering
operation. The X origin and Y origin indicate the filter matrix element
that corresponds to the pixel position for which an output value is
being computed.-
Constructor Summary
ConstructorsConstructorDescriptionKernel
(int width, int height, double[] data) Constructs aKernel
object from an array of floats.Kernel
(int width, int height, double factor, double[] data) Constructs aKernel
object from an array of floats.Kernel
(int width, int height, int xOrigin, int yOrigin, double factor, double[] data) Constructs aKernel
object from an array of floats. -
Method Summary
Modifier and TypeMethodDescriptionclone()
Clones this object.final double
Returns the factor of thisKernel
.final int
Returns the height of thisKernel
.final double[]
getKernelData
(double[] data) Returns the filter data in row major order.final int
getWidth()
Returns the width of thisKernel
.final int
Returns the X origin of thisKernel
.final int
Returns the Y origin of thisKernel
.
-
Constructor Details
-
Kernel
public Kernel(int width, int height, double[] data) Constructs aKernel
object from an array of floats. The firstwidth
*height
elements of thedata
array are copied. If the length of thedata
array is less than width*height, anIllegalArgumentException
is thrown. The X origin is (width-1)/2 and the Y origin is (height-1)/2.- Parameters:
width
- width of the filterheight
- height of the filterdata
- filter data in row major order- Throws:
IllegalArgumentException
- if the length ofdata
is less than the product ofwidth
andheight
-
Kernel
public Kernel(int width, int height, double factor, double[] data) Constructs aKernel
object from an array of floats. The firstwidth
*height
elements of thedata
array are copied. If the length of thedata
array is less than width*height, anIllegalArgumentException
is thrown. The X origin is (width-1)/2 and the Y origin is (height-1)/2.- Parameters:
width
- width of the filterheight
- height of the filterfactor
- factor to be applied to each element ofdata
data
- filter data in row major order- Throws:
IllegalArgumentException
- if the length ofdata
is less than the product ofwidth
andheight
-
Kernel
public Kernel(int width, int height, int xOrigin, int yOrigin, double factor, double[] data) Constructs aKernel
object from an array of floats. The firstwidth
*height
elements of thedata
array are copied. If the length of thedata
array is less than width*height, anIllegalArgumentException
is thrown. The X origin is (width-1)/2 and the Y origin is (height-1)/2.- Parameters:
width
- width of the filterheight
- height of the filterxOrigin
- X origin of the filteryOrigin
- Y origin of the filterfactor
- factor to be applied to each element ofdata
data
- filter data in row major order- Throws:
IllegalArgumentException
- if the length ofdata
is less than the product ofwidth
andheight
-
-
Method Details
-
getXOrigin
public final int getXOrigin()Returns the X origin of thisKernel
.- Returns:
- the X origin.
-
getYOrigin
public final int getYOrigin()Returns the Y origin of thisKernel
.- Returns:
- the Y origin.
-
getWidth
public final int getWidth()Returns the width of thisKernel
.- Returns:
- the width of this
Kernel
.
-
getHeight
public final int getHeight()Returns the height of thisKernel
.- Returns:
- the height of this
Kernel
.
-
getFactor
public final double getFactor()Returns the factor of thisKernel
.- Returns:
- the factor of this
Kernel
.
-
getKernelData
public final double[] getKernelData(double[] data) Returns the filter data in row major order. Thedata
array is returned. Ifdata
isnull
, a new array is allocated.- Parameters:
data
- if non-null, contains the returned filter data- Returns:
- the
data
array containing the filter data in row major order or, ifdata
isnull
, a newly allocated array containing the filter data in row major order - Throws:
IllegalArgumentException
- ifdata
is less than the size of thisKernel
-
clone
Clones this object.
-