#include <vimt_dog_pyramid_builder_2d.h>
Inheritance diagram for vimt_dog_pyramid_builder_2d< T >:

Computes each layer of a pyramid by smoothing then computing the difference from the original image. The smoothed is then subsampled using a reduction factor of 1.5 (ie each level is 2/3 the size of the level below) and used to produced the next level.
This is useful for finding locally interesting points and their associated scales - see "Object Recognition from Scale Invariant Features" D.Lowe, ICCV1999, pp.1150-1157.
Definition at line 25 of file vimt_dog_pyramid_builder_2d.h.
Public Member Functions | |
| vimt_dog_pyramid_builder_2d () | |
| Dflt ctor. | |
| virtual | ~vimt_dog_pyramid_builder_2d () |
| Destructor. | |
| 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. | |
| void | build_dog (vimt_image_pyramid &dog_pyr, vimt_image_pyramid &smooth_pyr, const vimt_image &im, bool abs_diff=true) const |
| Build difference of gaussian pyramid and a gaussian pyramid. | |
| virtual void | build (vimt_image_pyramid &dog_pyr, const vimt_image &) const |
| Build pyramid. | |
| virtual void | extend (vimt_image_pyramid &) const |
| Extend pyramid (not implemented). | |
| 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 Y 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 | min_x_size_ |
| Minimum size in X direction of top layer of pyramid. | |
| unsigned | min_y_size_ |
| Minimum size in Y direction of top layer of pyramid. | |
|
|||||||||
|
Dflt ctor.
Definition at line 24 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Destructor.
Definition at line 33 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
Load class from binary file stream.
Implements vimt_image_pyramid_builder. Definition at line 278 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
Save class to binary file stream.
Implements vimt_image_pyramid_builder. Definition at line 267 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||||||||
|
Build pyramid.
Implements vimt_image_pyramid_builder. Definition at line 112 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||||||||||||||||
|
Build difference of gaussian pyramid and a gaussian pyramid. If abs_diff, then use absolute difference of gaussians Definition at line 122 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||||||||
|
Checks pyramid has at least n levels of correct type.
Definition at line 88 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Create a copy on the heap and return base class pointer.
Implements vimt_image_pyramid_builder. Definition at line 252 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
Deletes all data in im_pyr.
Definition at line 79 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
Extend pyramid (not implemented).
Implements vimt_image_pyramid_builder. Definition at line 227 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||||||||
|
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() Definition at line 301 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Name of the class.
Reimplemented from vimt_image_pyramid_builder. |
|
||||||||||
|
Does the name of the class match the argument?.
Reimplemented from vimt_image_pyramid_builder. Definition at line 236 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Get the current maximum number levels allowed.
Implements vimt_image_pyramid_builder. Definition at line 53 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Get the minimum Y size of the top layer of the pyramid. Defaults to 5. Definition at line 92 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||||||
|
Get the minimum Y size of the top layer of the pyramid. Defaults to 5. Definition at line 88 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||||||
|
Create new (empty) pyramid on heap. Caller responsible for its deletion Implements vimt_image_pyramid_builder. Definition at line 62 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
Print class to os.
Implements vimt_image_pyramid_builder. Definition at line 260 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||||||
|
Scale step between levels.
Implements vimt_image_pyramid_builder. Definition at line 70 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||
|
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. Implements vimt_image_pyramid_builder. Definition at line 41 of file vimt_dog_pyramid_builder_2d.txx. |
|
||||||||||||||||
|
Set the minimum size of the top layer of the pyramid.
Definition at line 95 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||||||
|
Version number for I/O.
Reimplemented from vimt_image_pyramid_builder. Definition at line 244 of file vimt_dog_pyramid_builder_2d.txx. |
|
|||||
|
Definition at line 27 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||
|
Minimum size in X direction of top layer of pyramid.
Definition at line 32 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||
|
Minimum size in Y direction of top layer of pyramid.
Definition at line 35 of file vimt_dog_pyramid_builder_2d.h. |
|
|||||
|
Definition at line 29 of file vimt_dog_pyramid_builder_2d.h. |
1.4.4