Class BorderSampleGenerator

java.lang.Object
net.sourceforge.jiu.filters.BorderSampleGenerator

public abstract class BorderSampleGenerator extends 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.
Since:
0.10.0
Author:
Marco Schmidt
  • Field Details

    • areaWidth

      private int areaWidth
    • areaHeight

      private int areaHeight
    • 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.

      Parameters:
      x - leftmost column to be copied or generated
      y - top row to be copied or generated
      samples - 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[]).
      Returns:
      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[]).
      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
      See Also:
    • getImage

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

      public void setChannelIndex(int newChannelIndex)
      Sets the channel from which data is copied in fill(int, int, int[]).
      See Also: