net.sourceforge.jiu.filters
Class BorderSampleGenerator
java.lang.Object
net.sourceforge.jiu.filters.BorderSampleGenerator
public abstract class BorderSampleGenerator
extends java.lang.Object
Abstract base class for classes that fill an
int
array with samples
from a rectangular region of an image's channel by
(1) copying
int
samples from an
IntegerImage
object
and by (2) generating samples that lie outside of the image.
To be used by
ConvolutionKernelFilter
and other operations
that require rectangular parts of an image that may not lie fully
inside of the image.
abstract void | fill(int x, int y, int[] samples) - Fills the argument array with samples from the current channel of the image
given to the constructor, generating samples that lie outside of the image.
|
int | getAreaHeight() - Returns the number of rows from which data is copied or generated
with every call to
fill(int,int,int[]) .
|
int | getAreaWidth() - Returns the number of columns from which data is copied or generated
with every call to
fill(int,int,int[]) .
|
int | getChannelIndex() - Returns the index of the channel of the image from which data is copied.
|
IntegerImage | getImage() - Returns the image from which data is copied.
|
void | setChannelIndex(int newChannelIndex) - Sets the channel from which data is copied in
fill(int,int,int[]) .
|
areaHeight
private int areaHeight
areaWidth
private int areaWidth
channelIndex
private int channelIndex
BorderSampleGenerator
public BorderSampleGenerator(IntegerImage integerImage,
int areaWidth,
int areaHeight)
Initialize width and height of the area to be covered in every call to
fill(int,int,int[])
, also provides the image to be used for data copying.
The current channel is set to 0.
integerImage
- the image from which samples will be copiedareaWidth
- number of columns of the area to be covered in fill(int,int,int[])
areaHeight
- number of rows of the area to be covered in fill(int,int,int[])
fill
public abstract void fill(int x,
int y,
int[] samples)
Fills the argument array with samples from the current channel of the image
given to the constructor, generating samples that lie outside of the image.
The samples are copied (or generated) from the row y to row y + areaHeight - 1,
and within each row from column x to x + areaWidth - 1.
The implementation of this method is left to the child classes.
There are different ways to generate new samples, and each child class
is supposed to implement another way.
Obviously, the child classes also must copy samples from the image.
x
- leftmost column to be copied or generatedy
- top row to be copied or generatedsamples
- array to which samples will be written; must have at least
getAreaWidth()
times getAreaHeight()
elements
getAreaHeight
public int getAreaHeight()
Returns the number of rows from which data is copied or generated
with every call to
fill(int,int,int[])
.
- number or rows of a fill area
getAreaWidth
public int getAreaWidth()
Returns the number of columns from which data is copied or generated
with every call to
fill(int,int,int[])
.
- number or columns of a fill area
getChannelIndex
public int getChannelIndex()
Returns the index of the channel of the image from which data is copied.
getImage
public IntegerImage getImage()
Returns the image from which data is copied.
setChannelIndex
public void setChannelIndex(int newChannelIndex)