#include <vimt3d_gaussian_pyramid_builder_3d.h>
Inheritance diagram for vimt3d_gaussian_pyramid_builder_3d< 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
Note that if set_uniform_reduction(false) and width of z pixels much more than that in x and y, then only smooth and sub-sample in x and y. This is useful for images with non-isotropic sampling (eg MR images) Similarly, if either x or y has significantly larger sample spacing, the others will be smoothed first. Note, currently only works for one dimension being significantly larger than the other two.
Definition at line 26 of file vimt3d_gaussian_pyramid_builder_3d.h.
Public Member Functions | |
| vimt3d_gaussian_pyramid_builder_3d () | |
| Dflt ctor. | |
| virtual | ~vimt3d_gaussian_pyramid_builder_3d () |
| Destructor. | |
| unsigned | filter_width () const |
| Current filter width. | |
| void | set_filter_width (unsigned) |
| Set current filter width (must be 5 at present). | |
| bool | uniform_reduction () const |
| When true, subsample in x,y,z every time. | |
| void | set_uniform_reduction (bool b) |
| When true, subsample in x,y,z every time. | |
| 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 (vimt3d_image_3d_of< T > &dest_im, const vimt3d_image_3d_of< T > &src_im) const |
| Smooth and subsample src_im to produce dest_im. | |
| virtual double | scale_step () const |
| Scale step between levels. | |
| unsigned | min_x_size () const |
| Get the minimum X size of the top layer of the pyramid. | |
| unsigned | min_y_size () const |
| Get the minimum Y size of the top layer of the pyramid. | |
| unsigned | min_z_size () const |
| Get the minimum Z size of the top layer of the pyramid. | |
| virtual void | set_min_size (unsigned X, unsigned Y, unsigned Z) |
| 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 | checkPyr (vimt_image_pyramid &im_pyr, int n_levels) const |
| Checks pyramid has at least n levels of correct type. | |
| void | emptyPyr (vimt_image_pyramid &im_pyr) const |
| Deletes all data in im_pyr. | |
| int | n_levels (const vimt3d_image_3d_of< T > &base_image) const |
| Select number of levels to use. | |
| void | get_pixel_size (double &dx, double &dy, double &dz, const vimt3d_image_3d_of< T > &image) const |
| Compute real world size of pixel in image. | |
Private Attributes | |
| int | max_levels_ |
| bool | uniform_reduction_ |
| When true, subsample in x,y,z every time. | |
| vil3d_image_view< T > | work_im1_ |
| vil3d_image_view< T > | work_im2_ |
| unsigned | filter_width_ |
| Filter width (usually 5 for a 15851 filter, or 3 for a 121 filter). | |
| 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. | |
| unsigned | min_z_size_ |
| Minimum size in Z direction of top layer of pyramid. | |
|
|||||||||
|
Dflt ctor.
Definition at line 23 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Destructor.
Definition at line 32 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Load class from binary file stream.
Implements vimt_image_pyramid_builder. Definition at line 386 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Save class to binary file stream.
Implements vimt_image_pyramid_builder. Definition at line 375 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||||||||
|
Build pyramid.
Implements vimt_image_pyramid_builder. Definition at line 233 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||||||||
|
Checks pyramid has at least n levels of correct type.
Definition at line 207 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Create a copy on the heap and return base class pointer.
Implements vimt_image_pyramid_builder. Definition at line 360 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Deletes all data in im_pyr.
Definition at line 198 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Extend pyramid. The first layer of the pyramid must already be set. Implements vimt_image_pyramid_builder. Definition at line 304 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Current filter width.
Definition at line 71 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
||||||||||||||||
|
Smooth and subsample src_im to produce dest_im. Applies filter in x,y and z, then samples every other pixel. Filter width defined by set_filter_width() Definition at line 142 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||||||||||||||||
|
Compute real world size of pixel in image.
Definition at line 287 of file vimt3d_gaussian_pyramid_builder_3d.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 344 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Get the current maximum number levels allowed.
Implements vimt_image_pyramid_builder. Definition at line 53 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Get the minimum X size of the top layer of the pyramid. Defaults to 5. Definition at line 118 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||||||
|
Get the minimum Y size of the top layer of the pyramid. Defaults to 5. Definition at line 122 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||||||
|
Get the minimum Z size of the top layer of the pyramid. Defaults to 5. Definition at line 126 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
||||||||||
|
Select number of levels to use.
Definition at line 60 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Create new (empty) pyramid on heap. Caller responsible for its deletion Implements vimt_image_pyramid_builder. Definition at line 115 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Print class to os.
Implements vimt_image_pyramid_builder. Definition at line 368 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||||||
|
Scale step between levels.
Implements vimt_image_pyramid_builder. Definition at line 124 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
Set current filter width (must be 5 at present).
Definition at line 131 of file vimt3d_gaussian_pyramid_builder_3d.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 40 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||||||||||||
|
Set the minimum size of the top layer of the pyramid.
Definition at line 227 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
||||||||||
|
When true, subsample in x,y,z every time. When not true and width of z pixels much more than that in x and y, then only smooth and sub-sample in x and y Definition at line 84 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||||||
|
When true, subsample in x,y,z every time. When not true and width of z pixels much more than that in x and y, then only smooth and sub-sample in x and y Definition at line 79 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||||||
|
Version number for I/O.
Reimplemented from vimt_image_pyramid_builder. Definition at line 352 of file vimt3d_gaussian_pyramid_builder_3d.txx. |
|
|||||
|
Filter width (usually 5 for a 15851 filter, or 3 for a 121 filter).
Definition at line 38 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Definition at line 28 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Minimum size in X direction of top layer of pyramid.
Definition at line 41 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Minimum size in Y direction of top layer of pyramid.
Definition at line 44 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Minimum size in Z direction of top layer of pyramid.
Definition at line 47 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
When true, subsample in x,y,z every time. When not true and width of z pixels much more than that in x and y, then only smooth and sub-sample in x and y Definition at line 33 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Definition at line 35 of file vimt3d_gaussian_pyramid_builder_3d.h. |
|
|||||
|
Definition at line 35 of file vimt3d_gaussian_pyramid_builder_3d.h. |
1.4.4