org.openimaj.image.processing.pyramid.gaussian
Class GaussianPyramidOptions<IMAGE extends Image<?,IMAGE> & SinglebandImageProcessor.Processable<Float,FImage,IMAGE>>

java.lang.Object
  extended by org.openimaj.image.processing.pyramid.PyramidOptions<GaussianOctave<IMAGE>,IMAGE>
      extended by org.openimaj.image.processing.pyramid.gaussian.GaussianPyramidOptions<IMAGE>
Type Parameters:
IMAGE - type of underlying image.
Direct Known Subclasses:
DoGSIFTEngineOptions, FImagePyramidEngineOptions

public class GaussianPyramidOptions<IMAGE extends Image<?,IMAGE> & SinglebandImageProcessor.Processable<Float,FImage,IMAGE>>
extends PyramidOptions<GaussianOctave<IMAGE>,IMAGE>

Options for constructing a Gaussian pyramid in the style of Lowe's SIFT paper.

Author:
Jonathon Hare

Field Summary
protected  int borderPixels
          Number of pixels of border for processors to ignore.
protected  boolean doubleInitialImage
          Should the starting image of the pyramid be stretched to twice its size?
protected  int extraScaleSteps
          The number of extra scale steps taken beyond scales.
protected  float initialSigma
          Assumed initial scale of the first image in each octave.
protected  int scales
          The number of scales in this octave minus extraScaleSteps.
 
Fields inherited from class org.openimaj.image.processing.pyramid.PyramidOptions
keepOctaves, octaveProcessor, pyramidProcessor
 
Constructor Summary
GaussianPyramidOptions()
           
 
Method Summary
 int getBorderPixels()
          Get the number of pixels used for a border that processors shouldn't touch.
 int getExtraScaleSteps()
          Get the number of extra scale steps taken beyond scales.
 float getInitialSigma()
          Get the assumed initial scale of the first image in each octave.
 int getScales()
          Get the number of scales in this octave minus extraScaleSteps.
 boolean isDoubleInitialImage()
          Should the starting image of the pyramid be stretched to twice its size?
 void setBorderPixels(int borderPixels)
          Set the number of pixels used for a border that processors shouldn't touch.
 void setDoubleInitialImage(boolean doubleInitialImage)
          Set whether starting image of the pyramid be stretched to twice its size?
 void setExtraScaleSteps(int extraScaleSteps)
          Set the number of extra scale steps taken beyond scales.
 void setInitialSigma(float initialSigma)
          Set the assumed initial scale of the first image in each octave.
 void setScales(int scales)
          Set the number of scales in this octave minus extraScaleSteps.
 
Methods inherited from class org.openimaj.image.processing.pyramid.PyramidOptions
getOctaveProcessor, getPyramidProcessor, isKeepOctaves, setKeepOctaves, setOctaveProcessor, setPyramidProcessor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

borderPixels

protected int borderPixels
Number of pixels of border for processors to ignore. Also used in calculating the minimum image size for the last octave.


doubleInitialImage

protected boolean doubleInitialImage
Should the starting image of the pyramid be stretched to twice its size?


extraScaleSteps

protected int extraScaleSteps
The number of extra scale steps taken beyond scales.


initialSigma

protected float initialSigma
Assumed initial scale of the first image in each octave. For SIFT, Lowe suggested 1.6 (for optimal repeatability; see Lowe's IJCV paper, P.10).


scales

protected int scales
The number of scales in this octave minus extraScaleSteps. Levels are constructed so that level[scales] has twice the sigma of level[0].

Constructor Detail

GaussianPyramidOptions

public GaussianPyramidOptions()
Method Detail

getBorderPixels

public int getBorderPixels()
Get the number of pixels used for a border that processors shouldn't touch.

Returns:
number of border pixels.

getExtraScaleSteps

public int getExtraScaleSteps()
Get the number of extra scale steps taken beyond scales.

Returns:
the extraScaleSteps
See Also:
getScales()

getInitialSigma

public float getInitialSigma()
Get the assumed initial scale of the first image in each octave.

Returns:
the initialSigma

getScales

public int getScales()
Get the number of scales in this octave minus extraScaleSteps. Levels of each octave are constructed so that level[scales] has twice the sigma of level[0].

Returns:
the scales

isDoubleInitialImage

public boolean isDoubleInitialImage()
Should the starting image of the pyramid be stretched to twice its size?

Returns:
the doubleInitialImage

setBorderPixels

public void setBorderPixels(int borderPixels)
Set the number of pixels used for a border that processors shouldn't touch. Also affects the minimum image size for the last octave, which must be at least 2 + 2*borderPixels.

Parameters:
borderPixels - number of pixels to leave as border

setDoubleInitialImage

public void setDoubleInitialImage(boolean doubleInitialImage)
Set whether starting image of the pyramid be stretched to twice its size?

Parameters:
doubleInitialImage - the doubleInitialImage to set

setExtraScaleSteps

public void setExtraScaleSteps(int extraScaleSteps)
Set the number of extra scale steps taken beyond scales.

Parameters:
extraScaleSteps - the extraScaleSteps to set
See Also:
setScales(int)

setInitialSigma

public void setInitialSigma(float initialSigma)
Set the assumed initial scale of the first image in each octave. For SIFT, Lowe suggested 1.6 (for optimal repeatability; see Lowe's IJCV paper, P.10).

Parameters:
initialSigma - the initialSigma to set

setScales

public void setScales(int scales)
Set the number of scales in this octave minus extraScaleSteps. Levels of each octave are constructed so that level[scales] has twice the sigma of level[0].

Parameters:
scales - the scales to set


Copyright © 2011 The University of Southampton. All Rights Reserved.