net.sourceforge.jiu.filters

Class 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.
Author:
Marco Schmidt
Since:
0.10.0

Field Summary

private int
areaHeight
private int
areaWidth
private int
channelIndex
private IntegerImage
image

Constructor Summary

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.

Method Summary

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[]).

Field Details

areaHeight

private int areaHeight

areaWidth

private int areaWidth

channelIndex

private int channelIndex

image

private IntegerImage image

Constructor Details

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.
Parameters:
integerImage - the image from which samples will be copied
areaWidth - 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[])

Method Details

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.


getAreaHeight

public int getAreaHeight()
Returns:
number or rows of a fill area

getAreaWidth

public int getAreaWidth()
Returns:
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.
Returns:
number or rows

getImage

public IntegerImage getImage()
Returns the image from which data is copied.
Returns:
image object

setChannelIndex

public void setChannelIndex(int newChannelIndex)