Build gaussian pyramids of vimt_image_2d_of<T>. More...
#include <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_pyramid * | new_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. |
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 20 of file vimt_gaussian_pyramid_builder_2d.h.
vimt_gaussian_pyramid_builder_2d< T >::vimt_gaussian_pyramid_builder_2d | ( | ) |
Dflt ctor.
Definition at line 26 of file vimt_gaussian_pyramid_builder_2d.txx.
vimt_gaussian_pyramid_builder_2d< T >::~vimt_gaussian_pyramid_builder_2d | ( | ) | [virtual] |
Destructor.
Definition at line 35 of file vimt_gaussian_pyramid_builder_2d.txx.
void vimt_gaussian_pyramid_builder_2d< T >::b_read | ( | vsl_b_istream & | bfs | ) | [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.
void vimt_gaussian_pyramid_builder_2d< T >::b_write | ( | vsl_b_ostream & | bfs | ) | const [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.
void vimt_gaussian_pyramid_builder_2d< T >::build | ( | vimt_image_pyramid & | image_pyr, |
const vimt_image & | im | ||
) | const [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.
void vimt_gaussian_pyramid_builder_2d< T >::check_pyr | ( | vimt_image_pyramid & | im_pyr, |
int | n_levels | ||
) | const [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.
vimt_image_pyramid_builder * vimt_gaussian_pyramid_builder_2d< T >::clone | ( | ) | const [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.
void vimt_gaussian_pyramid_builder_2d< T >::empty_pyr | ( | vimt_image_pyramid & | im_pyr | ) | const [protected] |
Deletes all data in im_pyr.
Definition at line 115 of file vimt_gaussian_pyramid_builder_2d.txx.
void vimt_gaussian_pyramid_builder_2d< T >::extend | ( | vimt_image_pyramid & | image_pyr | ) | const [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.
unsigned vimt_gaussian_pyramid_builder_2d< T >::filter_width | ( | ) | const [inline] |
Current filter width.
Definition at line 50 of file vimt_gaussian_pyramid_builder_2d.h.
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 |
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.
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 >.
bool vimt_gaussian_pyramid_builder_2d< T >::is_class | ( | vcl_string const & | s | ) | const [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.
int vimt_gaussian_pyramid_builder_2d< T >::max_levels | ( | ) | const [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.
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 92 of file vimt_gaussian_pyramid_builder_2d.h.
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 88 of file vimt_gaussian_pyramid_builder_2d.h.
vimt_image_pyramid * vimt_gaussian_pyramid_builder_2d< T >::new_image_pyramid | ( | ) | const [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.
void vimt_gaussian_pyramid_builder_2d< T >::print_summary | ( | vcl_ostream & | os | ) | const [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.
double vimt_gaussian_pyramid_builder_2d< T >::scale_step | ( | ) | const [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.
void vimt_gaussian_pyramid_builder_2d< T >::set_filter_width | ( | unsigned | w | ) |
Set current filter width (must be 3 or 5 at present).
Definition at line 80 of file vimt_gaussian_pyramid_builder_2d.txx.
void vimt_gaussian_pyramid_builder_2d< T >::set_max_levels | ( | int | max_l | ) | [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.
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 95 of file vimt_gaussian_pyramid_builder_2d.h.
short vimt_gaussian_pyramid_builder_2d< T >::version_no | ( | ) | const |
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.
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 27 of file vimt_gaussian_pyramid_builder_2d.h.
int vimt_gaussian_pyramid_builder_2d< T >::max_levels_ [private] |
Definition at line 22 of file vimt_gaussian_pyramid_builder_2d.h.
unsigned vimt_gaussian_pyramid_builder_2d< T >::minXSize_ [private] |
Minimum size in X direction of top layer of pyramid.
Definition at line 30 of file vimt_gaussian_pyramid_builder_2d.h.
unsigned vimt_gaussian_pyramid_builder_2d< T >::minYSize_ [private] |
Minimum size in Y direction of top layer of pyramid.
Definition at line 33 of file vimt_gaussian_pyramid_builder_2d.h.
vimt_image_2d_of<T> vimt_gaussian_pyramid_builder_2d< T >::work_im_ [mutable, private] |
Definition at line 24 of file vimt_gaussian_pyramid_builder_2d.h.