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

This filter implements the Multivariate Alteration Detector. More...

#include <otbMultivariateAlterationDetectorImageFilter.h>

+ Inheritance diagram for otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >:
+ Collaboration diagram for otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >:

Public Types

typedef
ConcatenateImageFilterType::Pointer 
ConcatenateImageFilterPointer
 
typedef
otb::ConcatenateVectorImageFilter
< InputImageType,
InputImageType, InputImageType
ConcatenateImageFilterType
 
typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef
CovarianceEstimatorType::Pointer 
CovarianceEstimatorPointer
 
typedef
StreamingStatisticsVectorImageFilter
< InputImageType
CovarianceEstimatorType
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef
MatrixType::InternalMatrixType 
InternalMatrixType
 
typedef
CovarianceEstimatorType::MatrixObjectType 
MatrixObjectType
 
typedef
MatrixObjectType::ComponentType 
MatrixType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TOutputImage OutputImageType
 
typedef itk::SmartPointer< SelfPointer
 
typedef VectorType::ValueType RealType
 
typedef
MultivariateAlterationDetectorImageFilter 
Self
 
typedef
itk::ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass
 
typedef
CovarianceEstimatorType::RealPixelType 
VectorType
 
typedef vnl_matrix< RealTypeVnlMatrixType
 
typedef vnl_vector< RealTypeVnlVectorType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual CovarianceEstimatorTypeGetCovarianceEstimator ()
 
const TInputImage * GetInput1 ()
 
const TInputImage * GetInput2 ()
 
virtual VnlVectorType GetMean1 ()
 
virtual VnlVectorType GetMean2 ()
 
virtual const char * GetNameOfClass () const
 
virtual VnlVectorType GetRho ()
 
virtual VnlMatrixType GetV1 ()
 
virtual VnlMatrixType GetV2 ()
 
void SetInput1 (const TInputImage *image1)
 
void SetInput2 (const TInputImage *image2)
 

Static Public Member Functions

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

Protected Member Functions

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

Private Member Functions

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

Private Attributes

CovarianceEstimatorPointer m_CovarianceEstimator
 
MatrixType m_CovarianceMatrix
 
VnlVectorType m_Mean1
 
VnlVectorType m_Mean2
 
VectorType m_MeanValues
 
VnlVectorType m_Rho
 
VnlMatrixType m_V1
 
VnlMatrixType m_V2
 

Detailed Description

template<class TInputImage, class TOutputImage>
class otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >

This filter implements the Multivariate Alteration Detector.

This filter implements the Multivariate Alteration Detector, based on the following work:

A. A. Nielsen and K. Conradsen, "Multivariate alteration detection (mad) in multispectral, bi-temporal image data: a new approach to change detection studies," Remote Sens. Environ., vol. 64, pp. 1-19, (1998)

Multivariate Alteration Detector takes two images as inputs and produce a set of N change maps as a VectorImage (where N is the maximum of number of bands in first and second image) with the following properties:

This is a statistical method which can handle different modalities and even differents bands and number of bands between images.

If numbers of bands in image 1 and 2 are equal, then change maps are sorted by increasing correlation. If number of bands is different, the change maps are sorted by decreasing correlation.

The GetV1() and GetV2() methods allow to retrieve the linear combinations used to generate the Mad change maps as a vnl_matrix of double, and the GetRho() method allows to retrieve the correlation associated to each Mad change maps as a vnl_vector.

This filter has been implemented from the Matlab code kindly made available by the authors here: http://www2.imm.dtu.dk/~aa/software.html

Both cases (same and different number of bands) have been validated by comparing the output image to the output produced by the Matlab code, and the reference images for testing have been generated from the Matlab code using Octave.

,

Definition at line 77 of file otbMultivariateAlterationDetectorImageFilter.h.

Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef ConcatenateImageFilterType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ConcatenateImageFilterPointer
template<class TInputImage , class TOutputImage >
typedef otb::ConcatenateVectorImageFilter<InputImageType, InputImageType, InputImageType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ConcatenateImageFilterType
template<class TInputImage , class TOutputImage >
typedef itk::SmartPointer<const Self> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef CovarianceEstimatorType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CovarianceEstimatorPointer
template<class TInputImage , class TOutputImage >
typedef StreamingStatisticsVectorImageFilter<InputImageType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CovarianceEstimatorType

Internal filters types

Definition at line 105 of file otbMultivariateAlterationDetectorImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::ConstPointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageConstPointer
template<class TInputImage , class TOutputImage >
typedef InputImageType::PixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImagePixelType
template<class TInputImage , class TOutputImage >
typedef InputImageType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImagePointer
template<class TInputImage , class TOutputImage >
typedef InputImageType::RegionType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageRegionType
template<class TInputImage , class TOutputImage >
typedef TInputImage otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageType

Some convenient typedefs.

Definition at line 91 of file otbMultivariateAlterationDetectorImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef MatrixType::InternalMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InternalMatrixType
template<class TInputImage , class TOutputImage >
typedef CovarianceEstimatorType::MatrixObjectType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MatrixObjectType
template<class TInputImage , class TOutputImage >
typedef MatrixObjectType::ComponentType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MatrixType
template<class TInputImage , class TOutputImage >
typedef OutputImageType::PixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImagePixelType
template<class TInputImage , class TOutputImage >
typedef OutputImageType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImagePointer
template<class TInputImage , class TOutputImage >
typedef OutputImageType::RegionType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImageRegionType
template<class TInputImage , class TOutputImage >
typedef TOutputImage otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImageType
template<class TInputImage , class TOutputImage >
typedef itk::SmartPointer<Self> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef VectorType::ValueType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::RealType
template<class TInputImage , class TOutputImage >
typedef MultivariateAlterationDetectorImageFilter otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

Definition at line 82 of file otbMultivariateAlterationDetectorImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef itk::ImageToImageFilter<TInputImage, TOutputImage> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::Superclass
template<class TInputImage , class TOutputImage >
typedef CovarianceEstimatorType::RealPixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VectorType
template<class TInputImage , class TOutputImage >
typedef vnl_matrix<RealType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VnlMatrixType
template<class TInputImage , class TOutputImage >
typedef vnl_vector<RealType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VnlVectorType

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MultivariateAlterationDetectorImageFilter ( )
protected
template<class TInputImage , class TOutputImage >
virtual otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::~MultivariateAlterationDetectorImageFilter ( )
inlineprotectedvirtual
template<class TInputImage , class TOutputImage >
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MultivariateAlterationDetectorImageFilter ( const Self )
private

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CreateAnother ( void  ) const
template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GenerateOutputInformation ( void  )
protectedvirtual
template<class TInputImage , class TOutputImage >
virtual CovarianceEstimatorType* otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetCovarianceEstimator ( )
virtual

Get the covariance estimator (for progress reporting purposes)

template<class TInputImage , class TOutputImage >
const MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageType * otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetInput1 ( void  )

Get the inputs

Definition at line 54 of file otbMultivariateAlterationDetectorImageFilter.txx.

template<class TInputImage , class TOutputImage >
const MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageType * otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetInput2 ( void  )
template<class TInputImage , class TOutputImage >
virtual VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetMean1 ( )
virtual

Get the mean of bands from image 1

template<class TInputImage , class TOutputImage >
virtual VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetMean2 ( )
virtual

Get the mean of bands from image 2

template<class TInputImage , class TOutputImage >
virtual const char* otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetRho ( )
virtual

Get the correlation coefficient associated with each mad.

template<class TInputImage , class TOutputImage >
virtual VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetV1 ( )
virtual

Get the linear combinations of bands of image 1 associated to multivariate alteration detector. This is a square matrix of size nbBand of image 1.

template<class TInputImage , class TOutputImage >
virtual VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GetV2 ( )
virtual

Get the linear combinations of bands of image 2 associated to multivariate alteration detector. This is a square matrix of size nbBand of image 2.

template<class TInputImage , class TOutputImage >
static Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::New ( )
static

Method for creation through the object factory.

template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::operator= ( const Self )
private
template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::SetInput1 ( const TInputImage *  image1)

Connect one of the operands for pixel-wise addition

Definition at line 44 of file otbMultivariateAlterationDetectorImageFilter.txx.

template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::SetInput2 ( const TInputImage *  image2)

Connect one of the operands for pixel-wise addition

Definition at line 66 of file otbMultivariateAlterationDetectorImageFilter.txx.

template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
protectedvirtual

Member Data Documentation

template<class TInputImage , class TOutputImage >
CovarianceEstimatorPointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_CovarianceEstimator
private
template<class TInputImage , class TOutputImage >
MatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_CovarianceMatrix
private
template<class TInputImage , class TOutputImage >
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Mean1
private
template<class TInputImage , class TOutputImage >
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Mean2
private
template<class TInputImage , class TOutputImage >
VectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_MeanValues
private
template<class TInputImage , class TOutputImage >
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Rho
private
template<class TInputImage , class TOutputImage >
VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_V1
private
template<class TInputImage , class TOutputImage >
VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_V2
private

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