vimt_gaussian_pyramid_builder_2d< T > Class Template Reference

#include <vimt_gaussian_pyramid_builder_2d.h>

Inheritance diagram for vimt_gaussian_pyramid_builder_2d< T >:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class T>
class vimt_gaussian_pyramid_builder_2d< T >

Build gaussian pyramids of vimt_image_2d_of<T>.

Smooth with a gaussian filter (1-5-8-5-1 by default) and subsample so that image at level i-1 is half the size of that at level i

Definition at line 19 of file vimt_gaussian_pyramid_builder_2d.h.


Public Member Functions

 vimt_gaussian_pyramid_builder_2d ()
 Dflt ctor.
virtual ~vimt_gaussian_pyramid_builder_2d ()
 Destructor.
unsigned filter_width () const
 Current filter width.
void set_filter_width (unsigned)
 Set current filter width (must be 3 or 5 at present).
virtual vimt_image_pyramidnew_image_pyramid () const
 Create new (empty) pyramid on heap.
virtual void set_max_levels (int max_l)
 Define maximum number of levels to build.
virtual int max_levels () const
 Get the current maximum number levels allowed.
virtual void build (vimt_image_pyramid &, const vimt_image &) const
 Build pyramid.
virtual void extend (vimt_image_pyramid &) const
 Extend pyramid.
void gauss_reduce (const vimt_image_2d_of< T > &src_im, vimt_image_2d_of< T > &dest_im) const
 Smooth and subsample src_im to produce dest_im.
virtual double scale_step () const
 Scale step between levels.
unsigned min_y_size () const
 Get the minimum Y size of the top layer of the pyramid.
unsigned min_x_size () const
 Get the minimum X size of the top layer of the pyramid.
virtual void set_min_size (unsigned X, unsigned Y)
 Set the minimum size of the top layer of the pyramid.
short version_no () const
 Version number for I/O.
virtual vcl_string is_a () const
 Name of the class.
virtual bool is_class (vcl_string const &s) const
 Does the name of the class match the argument?.
virtual
vimt_image_pyramid_builder
clone () const
 Create a copy on the heap and return base class pointer.
virtual void print_summary (vcl_ostream &os) const
 Print class to os.
virtual void b_write (vsl_b_ostream &bfs) const
 Save class to binary file stream.
virtual void b_read (vsl_b_istream &bfs)
 Load class from binary file stream.

Protected Member Functions

void check_pyr (vimt_image_pyramid &im_pyr, int n_levels) const
 Checks pyramid has at least n levels of correct type.
void empty_pyr (vimt_image_pyramid &im_pyr) const
 Deletes all data in im_pyr.

Private Attributes

int max_levels_
vimt_image_2d_of< T > work_im_
unsigned filter_width_
 Filter width (usually 5 for a 15851 filter, or 3 for a 121 filter).
unsigned minXSize_
 Minimum size in X direction of top layer of pyramid.
unsigned minYSize_
 Minimum size in Y direction of top layer of pyramid.

Constructor & Destructor Documentation

template<class T>
vimt_gaussian_pyramid_builder_2d< T >::vimt_gaussian_pyramid_builder_2d (  )  [inline]

Dflt ctor.

Definition at line 26 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
vimt_gaussian_pyramid_builder_2d< T >::~vimt_gaussian_pyramid_builder_2d (  )  [inline, virtual]

Destructor.

Definition at line 35 of file vimt_gaussian_pyramid_builder_2d.txx.


Member Function Documentation

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::check_pyr ( vimt_image_pyramid im_pyr,
int  n_levels 
) const [inline, protected]

Checks pyramid has at least n levels of correct type.

Checks pyramid has at least n levels.

Definition at line 124 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::empty_pyr ( vimt_image_pyramid im_pyr  )  const [inline, protected]

Deletes all data in im_pyr.

Definition at line 115 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::filter_width (  )  const [inline]

Current filter width.

Definition at line 49 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::set_filter_width ( unsigned  w  )  [inline]

Set current filter width (must be 3 or 5 at present).

Definition at line 80 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
vimt_image_pyramid * vimt_gaussian_pyramid_builder_2d< T >::new_image_pyramid (  )  const [inline, virtual]

Create new (empty) pyramid on heap.

Caller responsible for its deletion

Implements vimt_image_pyramid_builder.

Definition at line 65 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::set_max_levels ( int  max_l  )  [inline, virtual]

Define maximum number of levels to build.

Limits levels built in subsequent calls to build() Useful efficiency measure. As build() only takes a shallow copy of the original image, using max_l=1 avoids any copying or smoothing.

Limits levels built in subsequent calls to build()

Implements vimt_image_pyramid_builder.

Definition at line 43 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
int vimt_gaussian_pyramid_builder_2d< T >::max_levels (  )  const [inline, virtual]

Get the current maximum number levels allowed.

Implements vimt_image_pyramid_builder.

Definition at line 56 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::build ( vimt_image_pyramid image_pyr,
const vimt_image im 
) const [inline, virtual]

Build pyramid.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 145 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::extend ( vimt_image_pyramid image_pyr  )  const [inline, virtual]

Extend pyramid.

The first layer of the pyramid must already be set. Scale steps must be equal.

The first layer of the pyramid must already be set.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 204 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::gauss_reduce ( const vimt_image_2d_of< T > &  src_im,
vimt_image_2d_of< T > &  dest_im 
) const [inline]

Smooth and subsample src_im to produce dest_im.

Applies filter in x and y, then samples every other pixel. Filter width defined by set_filter_width()

Applies filter in x and y, then samples every other pixel.

Definition at line 89 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
double vimt_gaussian_pyramid_builder_2d< T >::scale_step (  )  const [inline, virtual]

Scale step between levels.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 73 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::min_y_size (  )  const [inline]

Get the minimum Y size of the top layer of the pyramid.

Defaults to 5.

Definition at line 87 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::min_x_size (  )  const [inline]

Get the minimum X size of the top layer of the pyramid.

Defaults to 5.

Definition at line 91 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
virtual void vimt_gaussian_pyramid_builder_2d< T >::set_min_size ( unsigned  X,
unsigned  Y 
) [inline, virtual]

Set the minimum size of the top layer of the pyramid.

Definition at line 94 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
short vimt_gaussian_pyramid_builder_2d< T >::version_no (  )  const [inline]

Version number for I/O.

Reimplemented from vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 270 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
virtual vcl_string vimt_gaussian_pyramid_builder_2d< T >::is_a (  )  const [virtual]

Name of the class.

Reimplemented from vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

template<class T>
bool vimt_gaussian_pyramid_builder_2d< T >::is_class ( vcl_string const &  s  )  const [inline, virtual]

Does the name of the class match the argument?.

Reimplemented from vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 262 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
vimt_image_pyramid_builder * vimt_gaussian_pyramid_builder_2d< T >::clone (  )  const [inline, virtual]

Create a copy on the heap and return base class pointer.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 278 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::print_summary ( vcl_ostream &  os  )  const [inline, virtual]

Print class to os.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 286 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::b_write ( vsl_b_ostream bfs  )  const [inline, virtual]

Save class to binary file stream.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 293 of file vimt_gaussian_pyramid_builder_2d.txx.

template<class T>
void vimt_gaussian_pyramid_builder_2d< T >::b_read ( vsl_b_istream bfs  )  [inline, virtual]

Load class from binary file stream.

Implements vimt_image_pyramid_builder.

Reimplemented in vimt_gaussian_pyramid_builder_2d_general< T >.

Definition at line 303 of file vimt_gaussian_pyramid_builder_2d.txx.


Member Data Documentation

template<class T>
int vimt_gaussian_pyramid_builder_2d< T >::max_levels_ [private]

Definition at line 21 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
vimt_image_2d_of<T> vimt_gaussian_pyramid_builder_2d< T >::work_im_ [mutable, private]

Definition at line 23 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::filter_width_ [private]

Filter width (usually 5 for a 15851 filter, or 3 for a 121 filter).

Definition at line 26 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::minXSize_ [private]

Minimum size in X direction of top layer of pyramid.

Definition at line 29 of file vimt_gaussian_pyramid_builder_2d.h.

template<class T>
unsigned vimt_gaussian_pyramid_builder_2d< T >::minYSize_ [private]

Minimum size in Y direction of top layer of pyramid.

Definition at line 32 of file vimt_gaussian_pyramid_builder_2d.h.


The documentation for this class was generated from the following files:

Generated on Sun Nov 22 06:24:36 2009 for contrib/mul/vimt by  doxygen 1.5.5