Orfeo ToolBox  4.2
Orfeo ToolBox is not a black box
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction > Class Template Reference

Implements neighborhood-wise generic operation of two images beeing vector images. More...

#include <otbBinaryFunctorNeighborhoodVectorImageFilter.h>

+ Inheritance diagram for otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >:
+ Collaboration diagram for otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >:

Public Types

typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef TFunction FunctorType
 
typedef Input1ImageType::PixelType Input1ImagePixelType
 
typedef
Input1ImageType::ConstPointer 
Input1ImagePointer
 
typedef Input1ImageType::RegionType Input1ImageRegionType
 
typedef TInputImage1 Input1ImageType
 
typedef Input2ImageType::PixelType Input2ImagePixelType
 
typedef
Input2ImageType::ConstPointer 
Input2ImagePointer
 
typedef Input2ImageType::RegionType Input2ImageRegionType
 
typedef TInputImage2 Input2ImageType
 
typedef
itk::ConstNeighborhoodIterator
< TInputImage1 > 
NeighborhoodIteratorType1
 
typedef
itk::ConstNeighborhoodIterator
< TInputImage2 > 
NeighborhoodIteratorType2
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TOutputImage OutputImageType
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::ProcessObject ProcessObjectType
 
typedef unsigned char RadiusSizeType
 
typedef
NeighborhoodIteratorType1::RadiusType 
RadiusType1
 
typedef
NeighborhoodIteratorType2::RadiusType 
RadiusType2
 
typedef
BinaryFunctorNeighborhoodVectorImageFilter 
Self
 
typedef
itk::InPlaceImageFilter
< TInputImage1, TOutputImage > 
Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
FunctorTypeGetFunctor ()
 
virtual const char * GetNameOfClass () const
 
void SetFunctor (const FunctorType &functor)
 
void SetInput1 (const TInputImage1 *image1)
 
void SetInput2 (const TInputImage2 *image2)
 
void SetRadius (const unsigned char &min, const unsigned char &max)
 
virtual void SetRadius (RadiusSizeType _arg)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ImageSource< TOutputImage >
static const
ImageRegionSplitterBase
GetGlobalDefaultSplitter (void)
 

Protected Member Functions

 BinaryFunctorNeighborhoodVectorImageFilter ()
 
virtual ~BinaryFunctorNeighborhoodVectorImageFilter ()
 
virtual void GenerateOutputInformation (void)
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId)
 

Protected Attributes

RadiusSizeType m_Radius
 

Private Member Functions

 BinaryFunctorNeighborhoodVectorImageFilter (const Self &)
 
void operator= (const Self &)
 

Private Attributes

FunctorType m_Functor
 

Detailed Description

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
class otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >

Implements neighborhood-wise generic operation of two images beeing vector images.

This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.

Definition at line 38 of file otbBinaryFunctorNeighborhoodVectorImageFilter.h.

Member Typedef Documentation

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::SmartPointer<const Self> otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::ConstPointer
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef TFunction otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::FunctorType

Some convenient typedefs.

Definition at line 52 of file otbBinaryFunctorNeighborhoodVectorImageFilter.h.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input1ImageType::PixelType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input1ImagePixelType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input1ImageType::ConstPointer otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input1ImagePointer
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input1ImageType::RegionType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input1ImageRegionType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef TInputImage1 otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input1ImageType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input2ImageType::PixelType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input2ImagePixelType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input2ImageType::ConstPointer otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input2ImagePointer
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef Input2ImageType::RegionType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input2ImageRegionType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef TInputImage2 otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Input2ImageType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::ConstNeighborhoodIterator<TInputImage1> otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::NeighborhoodIteratorType1
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::ConstNeighborhoodIterator<TInputImage2> otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::NeighborhoodIteratorType2
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef OutputImageType::PixelType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::OutputImagePixelType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef OutputImageType::Pointer otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::OutputImagePointer
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef OutputImageType::RegionType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::OutputImageRegionType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef TOutputImage otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::OutputImageType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::SmartPointer<Self> otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Pointer
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::ProcessObject otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::ProcessObjectType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef unsigned char otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::RadiusSizeType
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef NeighborhoodIteratorType1::RadiusType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::RadiusType1
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef NeighborhoodIteratorType2::RadiusType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::RadiusType2
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef BinaryFunctorNeighborhoodVectorImageFilter otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Self

Standard class typedefs.

Definition at line 43 of file otbBinaryFunctorNeighborhoodVectorImageFilter.h.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
typedef itk::InPlaceImageFilter<TInputImage1, TOutputImage> otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::Superclass

Constructor & Destructor Documentation

template<class TInputImage1 , class TInputImage2 , class TOutputImage , class TFunction >
otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::BinaryFunctorNeighborhoodVectorImageFilter ( )
protected

Constructor

Definition at line 36 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
virtual otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::~BinaryFunctorNeighborhoodVectorImageFilter ( )
inlineprotectedvirtual
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::BinaryFunctorNeighborhoodVectorImageFilter ( const Self )
private

Member Function Documentation

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
virtual::itk::LightObject::Pointer otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::CreateAnother ( void  ) const
template<class TInputImage1 , class TInputImage2 , class TOutputImage , class TFunction >
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::GenerateOutputInformation ( void  )
protectedvirtual

Since the number of components per pixel depends on the radius range, one must reimplement this method to set the proper number of component on the filter output.

Generate the output information

Definition at line 88 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
FunctorType& otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::GetFunctor ( )
inline

Get the functor object. The functor is returned by reference. (Functors do not have to derive from itk::LightObject, so they do not necessarily have a reference count. So we cannot return a SmartPointer.)

Definition at line 86 of file otbBinaryFunctorNeighborhoodVectorImageFilter.h.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
virtual const char* otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::InPlaceImageFilter< TInputImage1, TOutputImage >.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
static Pointer otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::New ( )
static

Method for creation through the object factory.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::operator= ( const Self )
private
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::SetFunctor ( const FunctorType functor)
inline

Set the functor object. This replaces the current Functor with a copy of the specified Functor. This allows the user to specify a functor that has ivars set differently than the default functor. This method requires an operator!=() be defined on the functor (or the compiler's default implementation of operator!=() being appropriate).

Definition at line 97 of file otbBinaryFunctorNeighborhoodVectorImageFilter.h.

template<class TInputImage1, class TInputImage2 , class TOutputImage , class TFunction >
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::SetInput1 ( const TInputImage1 *  image1)

Connect one of the operands for pixel-wise addition

Connect one of the operands for neighborhood-wise operation

Definition at line 50 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

template<class TInputImage1 , class TInputImage2, class TOutputImage , class TFunction >
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::SetInput2 ( const TInputImage2 *  image2)

Connect one of the operands for pixel-wise addition

Connect one of the operands for neighborhood-wise operation

Definition at line 63 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

template<class TInputImage1 , class TInputImage2 , class TOutputImage , class TFunction >
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::SetRadius ( const unsigned char &  min,
const unsigned char &  max 
)

Connect the set of radius. In fact, Self keeps the larger size only to define neighborhood parameters, and gives the min and max radius to the functor.

Connect the interval of radius

Definition at line 76 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
virtual void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::SetRadius ( RadiusSizeType  _arg)
virtual
template<class TInputImage1 , class TInputImage2 , class TOutputImage , class TFunction >
void otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
protectedvirtual

BinaryFunctorNeighborhoodVectorImageFilter can be implemented as a multithreaded filter. Therefore, this implementation provides a ThreadedGenerateData() routine which is called for each processing thread. The output image data is allocated automatically by the superclass prior to calling ThreadedGenerateData(). ThreadedGenerateData can only write to the portion of the output image specified by the parameter "outputRegionForThread"

See Also
ImageToImageFilter::ThreadedGenerateData(), ImageToImageFilter::GenerateData()

ThreadedGenerateData Performs the neighborhood-wise operation

Definition at line 104 of file otbBinaryFunctorNeighborhoodVectorImageFilter.txx.

References itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >::GoToBegin(), itk::ImageRegionConstIterator< TImage >::GoToBegin(), itk::ImageConstIterator< TImage >::IsAtEnd(), itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >::OverrideBoundaryCondition(), and itk::ImageRegionIterator< TImage >::Set().

Member Data Documentation

template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
FunctorType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::m_Functor
private
template<class TInputImage1, class TInputImage2, class TOutputImage, class TFunction>
RadiusSizeType otb::BinaryFunctorNeighborhoodVectorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >::m_Radius
protected

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