Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Private Member Functions | Private Attributes
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr > Class Template Reference

#include <vipl_filter.h>

Inheritance diagram for vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef PixelItr::Titerator Titerator
typedef PixelItr::Yiterator Yiterator
typedef PixelItr::Xiterator Xiterator
typedef PixelItr::Ziterator Ziterator
typedef vipl_filter_abs parent
typedef ImgIn const * inimagept
typedef ImgOut * outimagept
typedef vipl_filter thisclass
typedef vipl_section_container
< DataIn > * 
in_section_type
typedef
vipl_section_descriptor
< DataIn > * 
in_descriptor_type
typedef vipl_section_container
< DataOut > * 
out_section_type
typedef
vipl_section_descriptor
< DataOut > * 
out_descriptor_type
typedef
vipl_section_descriptor
< DataIn > * 
in_ROA_descriptor_type
typedef
vipl_section_descriptor
< DataOut > * 
out_ROA_descriptor_type

Public Member Functions

int image_border_size () const
int & ref_image_border_size ()
DataOut def_fill_value () const
DataOut & ref_def_fill_value ()
VIPL_FILTER_STATE input_state () const
VIPL_FILTER_STATEref_input_state ()
VIPL_FILTER_STATE filter_state () const
VIPL_FILTER_STATEref_filter_state ()
VIPL_FILTER_STATE output_state () const
VIPL_FILTER_STATEref_output_state ()
void put_output_state (VIPL_FILTER_STATE const t)
int numinputs () const
int & ref_numinputs ()
int numoutputs () const
int & ref_numoutputs ()
vcl_vector< inimageptinf () const
vcl_vector< inimagept > & ref_inf ()
outimagept outf () const
outimageptref_outf ()
void put_outf (outimagept const &t)
in_section_type src_section () const
in_section_typeref_src_section ()
in_descriptor_type insecp () const
in_descriptor_typeref_insecp ()
void put_insecp (in_descriptor_type const t)
out_section_type dst_section () const
out_section_typeref_dst_section ()
out_descriptor_type secp () const
out_descriptor_typeref_secp ()
void put_secp (out_descriptor_type t)
in_ROA_descriptor_type inROA () const
in_ROA_descriptor_typeref_inROA ()
out_descriptor_type ROA () const
out_descriptor_typeref_ROA ()
bool is_input_driven () const
bool & ref_is_input_driven ()
void put_is_input_driven (bool b=true)
 vipl_filter (ImgIn const *src_img, ImgOut *dst_img=0, int ninputs=1, int img_border=0, DataOut fill_val=0)
 A workhorse constructor for this abstract class.
 vipl_filter (ImgIn const **src_img, ImgOut *dst_img=0, int ninputs=1, int img_border=0, DataOut fill_val=0)
 A second workhorse constructor for this abstract class.
virtual ~vipl_filter ()
 vipl_filter ()
 vipl_filter (vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr > const &)
virtual bool filter ()
 The main operation of the class, filters input images to produce output image.
bool process (ImgIn const &inimg, ImgOut &outimg)
 For those filters that only need one input and output set (after construction), the following function allows one to treat the filter object more like a function calling obj.process(inimg, outimg) will set the input and output then call filter() It does not require pointers but takes the address of its inputs, set the fields in the filter does the filter and un-sets the in/out fields in the filter.
bool process (ImgIn const *inimg, ImgOut *outimg)
 second process form passing imgs by ptr.
int start (int axis) const
 The ``start'' coordinate for the current apply section.
int start (int axis, int other_axis_value) const
int stop (int axis) const
 The ``stopping'' coordinate for the current apply section.
int stop (int axis, int other_axis_value) const
int start_src (int axis) const
 The ``start'' coordinate for the current source apply section.
int stop_src (int axis) const
 The ``stopping'' coordinate for the current source apply section.
int start_dst (int axis) const
 The ``start'' coordinate for the current destination apply section.
int stop_dst (int axis) const
 The ``stopping'' coordinate for the current destination apply section.
bool put_in_data_ptr (ImgIn const *fpointer, int index=0)
 Put the given pointer into an input "image" at the provided index.
inimagept in_data_ptr (int index=0)
 Return a smart pointer to the input ``image'' at the provided index.
const ImgIn & in_data (int index=0) const
 Return a ref to the input ``data object'' at the provided index (dereferences the internal pointer).
bool put_out_data_ptr (ImgOut *fpointer, int=0)
 Put the given pointer into output data at the given index location Decrements old putput refcount, Inc's newobjects refcount.
virtual outimagept out_data_ptr (int index=0)
 Get ptr to specified output data item given index location.
virtual ImgOut & out_data (int index=0) const
 Get ref to specified output data item given index location.
virtual bool is_ready () const
 returns if the filter is "ready" to run, i.e.
int is_section_within_ROA (int axis) const
 Is the current apply section intersected with the ROA an empty region, if so we should not load it.

Static Public Member Functions

static int X_Axis ()
 Constant for accessing X_axis when appropriate for the filter. Currently==0, but please use the function...
static int Y_Axis ()
 Constant for accessing Y_axis when appropriate for the filter. Currently==1, but please use the function...
static int Z_Axis ()
 Constant for accessing Z_axis when appropriate for the filter. Currently==2, but please use the function...
static int T_Axis ()
 Constant for accessing T_axis when appropriate for the filter. Currently==3, but please use the function...

Protected Member Functions

virtual bool preop ()
 This is the function that gets called for every iteration of the filtering operation, before the actual filtering routine.
virtual bool postop ()
 This is the function that gets called after every iteration of the actual filtering routine.
virtual bool applyop ()=0
 This is the method that implements the basic form for the filtering operation.
virtual bool section_preop ()
 For each section, this method runs before section_applyop.
virtual bool section_postop ()
 For each section, this method runs after section_applyop.
virtual bool section_applyop ()=0
 This is the method that implements the filtering inside each section.
virtual bool ptr_based_section_applyop ()
 If a section is pointer safe, then this function is called to filter it.
virtual bool check_params_1 (bool &proceed_on_warn) const
 Called by filter().

Static Private Member Functions

static const VIPL_FILTER_STATE
Not_Ready 
VCL_STATIC_CONST_INIT_INT_DECL (0)
static const VIPL_FILTER_STATE
Ready 
VCL_STATIC_CONST_INIT_INT_DECL (1)
static const VIPL_FILTER_STATE
Unchanged 
VCL_STATIC_CONST_INIT_INT_DECL (2)
static const VIPL_FILTER_STATE
Filter_Owned 
VCL_STATIC_CONST_INIT_INT_DECL (4)

Private Attributes

int hsimage_border_size
DataOut hsdef_fill_value
VIPL_FILTER_STATE hsinput_state
VIPL_FILTER_STATE hsfilter_state
VIPL_FILTER_STATE hsoutput_state
int hsnuminputs
int hsnumoutputs
vcl_vector< inimagepthsinf
outimagept hsoutf
in_section_type hssrc_section
in_descriptor_type hsinsecp
out_section_type hsdst_section
out_descriptor_type hssecp
in_ROA_descriptor_type hsinROA
out_ROA_descriptor_type hsROA
bool hsis_input_driven

Detailed Description

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
class vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >

Definition at line 92 of file vipl_filter.h.


Member Typedef Documentation

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_descriptor< DataIn >* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::in_descriptor_type

Definition at line 158 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_descriptor< DataIn >* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::in_ROA_descriptor_type

Definition at line 175 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_container< DataIn >* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::in_section_type

Definition at line 153 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef ImgIn const* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::inimagept

Definition at line 106 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_descriptor< DataOut>* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::out_descriptor_type

Definition at line 169 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_descriptor< DataOut >* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::out_ROA_descriptor_type

Definition at line 180 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_section_container< DataOut >* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::out_section_type

Definition at line 164 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef ImgOut* vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::outimagept

Definition at line 107 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_filter_abs vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::parent

Definition at line 105 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef vipl_filter vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::thisclass

Definition at line 108 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef PixelItr::Titerator vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::Titerator

Definition at line 101 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef PixelItr::Xiterator vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::Xiterator

Definition at line 103 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef PixelItr::Yiterator vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::Yiterator

Definition at line 102 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
typedef PixelItr::Ziterator vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::Ziterator

Definition at line 104 of file vipl_filter.h.


Constructor & Destructor Documentation

template<class ImgIn, class ImgOut, class DataIn , class DataOut, int Arity, class PixelItr >
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::vipl_filter ( ImgIn const *  src_img,
ImgOut *  dst_img = 0,
int  ninputs = 1,
int  img_border = 0,
DataOut  fill_val = 0 
)

A workhorse constructor for this abstract class.

If dst_image (by default) the output will be generated automatically when filtering is about to proceed. (Either way, the filter increments refcount when set and decrements the refcount of the output when it is destroyed.) Some filters support multiple inputs, if ninputs is >1 then this constructor expects src_img to be the first element pointer to the input (i.e. src_img+1 is the location of input image2). Note that the filter keeps pointers to the input (properly refcounted).

Definition at line 37 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn , class DataOut, int Arity, class PixelItr >
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::vipl_filter ( ImgIn const **  src_img,
ImgOut *  dst_img = 0,
int  ninputs = 1,
int  img_border = 0,
DataOut  fill_val = 0 
)

A second workhorse constructor for this abstract class.

If dst_img is null (by default), the output will be generated automatically when filtering is about to proceed. The filter decrements the refcount of the output when it is destroyed. Some filters support multiple inputs, if ninputs is >1 then this constructor uses non_consecutive input images (with their address in a c_vector, i.e. *(src_img+1) is the location of input image2). Note that the filter keeps pointers to the input (properly refcounted).

Definition at line 96 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::~vipl_filter ( ) [virtual]

Definition at line 149 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn , class DataOut, int Arity, class PixelItr >
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::vipl_filter ( )

Definition at line 190 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::vipl_filter ( vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr > const &  t)

Definition at line 214 of file vipl_filter.txx.


Member Function Documentation

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
virtual bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::applyop ( ) [protected, pure virtual]

This is the method that implements the basic form for the filtering operation.

Implemented in vipl_filter_2d< ImgIn, ImgOut, DataIn, DataOut, PixelItr >.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::check_params_1 ( bool &  proceed_on_warn) const [protected, virtual]

Called by filter().

Called by method filter() and checks additional parameters required before the filtering operation can proceed.

checks for input/output being set. User can make it check for additional parameters required before the filtering operation can proceed. Allows filter to "proceed" on warnings so not public

Default is empty_func returning true, but subclasses can define as then need. check_parms_1

Definition at line 702 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
DataOut vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::def_fill_value ( ) const [inline]

Definition at line 119 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_section_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::dst_section ( ) const [inline]

Definition at line 166 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::filter ( ) [virtual]

The main operation of the class, filters input images to produce output image.

Before this function can run to completion, all arguments must be set via the respective ``put_*'' functions (or be supplied at construction time).

Before this function can run to completion, all arguments must be set via the respective ``put_*'' functions (or be supplied at construction time). Particularly important is the filter input. The programmer should take a look at the concrete child classes of filter to see what additional parameters they need before the actual filter operation can proceed.

Particularly important is the filter input. The programmer should take a look at the concrete child classes of filter to see what additional parameters they need before the actual filter operation can proceed.

Definition at line 624 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::filter_state ( ) const [inline]

Definition at line 127 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::image_border_size ( ) const [inline]

Definition at line 113 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
const ImgIn & vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::in_data ( int  index = 0) const

Return a ref to the input ``data object'' at the provided index (dereferences the internal pointer).

Return a ref to the input ``data object'' at the provided index.

(dereferences the internal pointer)

Definition at line 505 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
ImgIn const * vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::in_data_ptr ( int  index = 0)

Return a smart pointer to the input ``image'' at the provided index.

Increments refcount before returning

Definition at line 492 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
vcl_vector<inimagept> vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::inf ( ) const [inline]

Definition at line 143 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::input_state ( ) const [inline]

Definition at line 124 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_ROA_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::inROA ( ) const [inline]

Definition at line 177 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::insecp ( ) const [inline]

Definition at line 160 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::is_input_driven ( ) const [inline]

Definition at line 187 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::is_ready ( ) const [virtual]

returns if the filter is "ready" to run, i.e.

all needed parameters are "set". Default just calls check_parms_1()

Definition at line 656 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::is_section_within_ROA ( int  axis) const

Is the current apply section intersected with the ROA an empty region, if so we should not load it.

If it's empty there is no guarantee that the section_start and section_end will not overlap.

Definition at line 265 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::numinputs ( ) const [inline]

Definition at line 135 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::numoutputs ( ) const [inline]

Definition at line 139 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
ImgOut & vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::out_data ( int  index = 0) const [virtual]

Get ref to specified output data item given index location.

Definition at line 557 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
ImgOut * vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::out_data_ptr ( int  index = 0) [virtual]

Get ptr to specified output data item given index location.

Inc's refcount before returning ptr

Inc's refcount before returning ptr.

Definition at line 542 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
outimagept vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::outf ( ) const [inline]

Definition at line 148 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::output_state ( ) const [inline]

Definition at line 130 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::postop ( ) [protected, virtual]

This is the function that gets called after every iteration of the actual filtering routine.

This function gets called after every iteration of the actual filtering routine.

Can be used for post_processing normalization or cleaning up the edges. Default op is noop

Can be used for post_processing normalization or cleaning up the edges. Default op is noop.

Reimplemented in vipl_gaussian_convolution< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, vipl_dilate_disk< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, vipl_erode_disk< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, and vipl_median< ImgIn, ImgOut, DataIn, DataOut, PixelItr >.

Definition at line 580 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::preop ( ) [protected, virtual]

This is the function that gets called for every iteration of the filtering operation, before the actual filtering routine.

This function gets called for every iteration of the filtering operation, before the actual filtering routine.

Can be used for normalization or such. Default op is noop

Can be used for input normalization or such. Default op is noop.

Reimplemented in vipl_gaussian_convolution< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, vipl_dilate_disk< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, vipl_erode_disk< ImgIn, ImgOut, DataIn, DataOut, PixelItr >, and vipl_median< ImgIn, ImgOut, DataIn, DataOut, PixelItr >.

Definition at line 571 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::process ( ImgIn const &  inimg,
ImgOut &  outimg 
)

For those filters that only need one input and output set (after construction), the following function allows one to treat the filter object more like a function calling obj.process(inimg, outimg) will set the input and output then call filter() It does not require pointers but takes the address of its inputs, set the fields in the filter does the filter and un-sets the in/out fields in the filter.

Definition at line 673 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::process ( ImgIn const *  inimg,
ImgOut *  outimg 
)

second process form passing imgs by ptr.

Definition at line 686 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ptr_based_section_applyop ( ) [protected, virtual]

If a section is pointer safe, then this function is called to filter it.

This is the method that implements the filtering inside each section.

default is just to call section_applyop

You must supply this function. If a section is pointer safe, then this function is called to filter it. Default is just to call the non-pointer section_applyop

Definition at line 610 of file vipl_filter.txx.

template<class ImgIn, class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_in_data_ptr ( ImgIn const *  fpointer,
int  index = 0 
)

Put the given pointer into an input "image" at the provided index.

Decrements old objects refcount, increments newobjects refcount

Definition at line 466 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
void vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_insecp ( in_descriptor_type const  t) [inline]

Definition at line 162 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
void vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_is_input_driven ( bool  b = true) [inline]

Definition at line 189 of file vipl_filter.h.

template<class ImgIn , class ImgOut, class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_out_data_ptr ( ImgOut *  fpointer,
int  = 0 
)

Put the given pointer into output data at the given index location Decrements old putput refcount, Inc's newobjects refcount.

Put the given pointer into output data at the given index location.

Decrements old putput refcount, increments newobjects refcount.

Definition at line 523 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
void vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_outf ( outimagept const &  t) [inline]

Definition at line 150 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
void vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_output_state ( VIPL_FILTER_STATE const  t) [inline]

Definition at line 132 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
void vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::put_secp ( out_descriptor_type  t) [inline]

Definition at line 173 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
DataOut& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_def_fill_value ( ) [inline]

Definition at line 120 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_section_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_dst_section ( ) [inline]

Definition at line 167 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_filter_state ( ) [inline]

Definition at line 128 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_image_border_size ( ) [inline]

Definition at line 114 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
vcl_vector<inimagept>& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_inf ( ) [inline]

Definition at line 144 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_input_state ( ) [inline]

Definition at line 125 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_ROA_descriptor_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_inROA ( ) [inline]

Definition at line 178 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_descriptor_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_insecp ( ) [inline]

Definition at line 161 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
bool& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_is_input_driven ( ) [inline]

Definition at line 188 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_numinputs ( ) [inline]

Definition at line 136 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_numoutputs ( ) [inline]

Definition at line 140 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
outimagept& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_outf ( ) [inline]

Definition at line 149 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_output_state ( ) [inline]

Definition at line 131 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_descriptor_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_ROA ( ) [inline]

Definition at line 183 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_descriptor_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_secp ( ) [inline]

Definition at line 172 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_section_type& vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ref_src_section ( ) [inline]

Definition at line 156 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::ROA ( ) const [inline]

Definition at line 182 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::secp ( ) const [inline]

Definition at line 171 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
virtual bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::section_applyop ( ) [protected, pure virtual]
template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::section_postop ( ) [protected, virtual]

For each section, this method runs after section_applyop.

Default is no_op

Default is noop

Definition at line 599 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::section_preop ( ) [protected, virtual]

For each section, this method runs before section_applyop.

This is the method that implements the basic form for the filtering operation.

Default at this level is no_op. (lower level class redefines it to ``fill'' the image borders).

For each section, this method runs before section_applyop. Default at this level is noop. (lower level class redefine it to ``fill'' the image borders).

Reimplemented in vipl_histogram< ImgIn, ImgOut, DataIn, DataOut, PixelItr >.

Definition at line 590 of file vipl_filter.txx.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_section_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::src_section ( ) const [inline]

Definition at line 155 of file vipl_filter.h.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::start ( int  axis) const

The ``start'' coordinate for the current apply section.

What is the ``start coordinate'' for the current apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section start + image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 309 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::start ( int  axis,
int  other_axis_value 
) const

Definition at line 381 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::start_dst ( int  axis) const

The ``start'' coordinate for the current destination apply section.

What is the ``start'' coordinate for the current destination apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section start + image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 354 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::start_src ( int  axis) const

The ``start'' coordinate for the current source apply section.

What is the ``start'' coordinate for the current source apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section start + image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 322 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::stop ( int  axis) const

The ``stopping'' coordinate for the current apply section.

What is the ``stopping'' coordinate for the current apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section end - image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 391 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::stop ( int  axis,
int  other_axis_value 
) const

Definition at line 458 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::stop_dst ( int  axis) const

The ``stopping'' coordinate for the current destination apply section.

What is the ``stopping'' coordinate for the current apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section end - image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 434 of file vipl_filter.txx.

template<class ImgIn , class ImgOut , class DataIn , class DataOut , int Arity, class PixelItr >
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::stop_src ( int  axis) const

The ``stopping'' coordinate for the current source apply section.

What is the ``stopping'' coordinate for the current apply section.

This always leaves a border around the section. (E.g. if there is no ROA this is actual section end - image_boarder_size; remember section iteration overlaps). If the current section is outside the ROA, the section_start and section_end may be equal.

Definition at line 405 of file vipl_filter.txx.

static int vipl_filter_abs::T_Axis ( ) [inline, static, inherited]

Constant for accessing T_axis when appropriate for the filter. Currently==3, but please use the function...

Definition at line 49 of file vipl_filter_abs.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
static const VIPL_FILTER_STATE Not_Ready vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::VCL_STATIC_CONST_INIT_INT_DECL ( ) [static, private]
template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
static const VIPL_FILTER_STATE Ready vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::VCL_STATIC_CONST_INIT_INT_DECL ( ) [static, private]
template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
static const VIPL_FILTER_STATE Unchanged vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::VCL_STATIC_CONST_INIT_INT_DECL ( ) [static, private]
template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
static const VIPL_FILTER_STATE Filter_Owned vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::VCL_STATIC_CONST_INIT_INT_DECL ( ) [static, private]
static int vipl_filter_abs::X_Axis ( ) [inline, static, inherited]

Constant for accessing X_axis when appropriate for the filter. Currently==0, but please use the function...

Definition at line 43 of file vipl_filter_abs.h.

static int vipl_filter_abs::Y_Axis ( ) [inline, static, inherited]

Constant for accessing Y_axis when appropriate for the filter. Currently==1, but please use the function...

Definition at line 45 of file vipl_filter_abs.h.

static int vipl_filter_abs::Z_Axis ( ) [inline, static, inherited]

Constant for accessing Z_axis when appropriate for the filter. Currently==2, but please use the function...

Definition at line 47 of file vipl_filter_abs.h.


Member Data Documentation

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
DataOut vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsdef_fill_value [private]

Definition at line 118 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_section_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsdst_section [private]

Definition at line 165 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsfilter_state [private]

Definition at line 126 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsimage_border_size [private]

Definition at line 112 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
vcl_vector<inimagept> vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsinf [private]

Definition at line 142 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsinput_state [private]

Definition at line 123 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_ROA_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsinROA [private]

Definition at line 176 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsinsecp [private]

Definition at line 159 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
bool vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsis_input_driven [private]

Definition at line 186 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsnuminputs [private]

Definition at line 134 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
int vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsnumoutputs [private]

Definition at line 138 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
outimagept vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsoutf [private]

Definition at line 147 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
VIPL_FILTER_STATE vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsoutput_state [private]

Definition at line 129 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_ROA_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hsROA [private]

Definition at line 181 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
out_descriptor_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hssecp [private]

Definition at line 170 of file vipl_filter.h.

template<class ImgIn, class ImgOut, class DataIn, class DataOut, int Arity, class PixelItr>
in_section_type vipl_filter< ImgIn, ImgOut, DataIn, DataOut, Arity, PixelItr >::hssrc_section [private]

Definition at line 154 of file vipl_filter.h.


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