Class PyramidFloatGaussianScale<T extends ImageGray<T>>

java.lang.Object
boofcv.struct.pyramid.ImagePyramidBase<T>
boofcv.struct.pyramid.PyramidFloat<T>
boofcv.alg.transform.pyramid.PyramidFloatGaussianScale<T>
All Implemented Interfaces:
ImagePyramid<T>

public class PyramidFloatGaussianScale<T extends ImageGray<T>>
extends PyramidFloat<T>

PyramidFloat in which each layer is constructed by 1) applying Gaussian blur to the previous layer, and then 2) re-sampling the blurred previous layer. The scaling factor between each level are floating point number. Unlike PyramidDiscreteSampleBlur the scale factors can be arbitrary and are not limited to certain integer values. The specified sigmas are the sigmas which are applied to each layer.

NOTE: This can be considered the theoretically correct way to construct an image pyramid with no sacrifices to improve speed.

  • Field Details

    • interpolate

      protected InterpolatePixelS<T extends ImageGray<T>> interpolate
    • tempImage

      protected T extends ImageGray<T> tempImage
    • sigmaLayers

      protected float[] sigmaLayers
    • sigma

      protected double[] sigma
  • Constructor Details

    • PyramidFloatGaussianScale

      public PyramidFloatGaussianScale​(InterpolatePixelS<T> interpolate, double[] scales, double[] sigmaLayers, Class<T> imageType)
      Configures the pyramid
      Parameters:
      interpolate - Interpolation function used to sub-sample.
      scales - Scales of each layer in the pyramid relative to the input image
      sigmaLayers - Amount of blur applied to the previous layer while constructing the pyramid.
      imageType - Type of image it's processing
    • PyramidFloatGaussianScale

      protected PyramidFloatGaussianScale​(PyramidFloatGaussianScale<T> orig)
  • Method Details

    • process

      public void process​(T input)
      Description copied from interface: ImagePyramid
      Constructs the image pyramid given the input image.
    • getInterpolate

      public InterpolatePixelS<T> getInterpolate()
    • setInterpolate

      public void setInterpolate​(InterpolatePixelS<T> interpolate)
    • getSampleOffset

      public double getSampleOffset​(int layer)
      Description copied from interface: ImagePyramid
      Returns the sampling offset. Both x and y axises are assumed to have the same offset. See comment in constructor above.
      Parameters:
      layer - Layer in the pyramid
      Returns:
      Sampling offset in pixels.
    • getSigma

      public double getSigma​(int layer)
      Description copied from interface: ImagePyramid
      Returns the scale-space scale for the specified layer. This scale is equivalent amount of Gaussian blur applied to the input image. If Gaussian blur is not applied to each layer then an approximation should be returned.
      Parameters:
      layer - Layer in the pyramid
      Returns:
      Equivalent sigma for Gaussian blur.
    • copyStructure

      public ImagePyramid<T> copyStructure()
      Description copied from interface: ImagePyramid
      Creates a copy of the pyramids structure but not the pixel data
    • getSigmaLayers

      public float[] getSigmaLayers()