OTB  7.2.0
Orfeo Toolbox
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

#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, InputImageTypeConcatenateImageFilterType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef CovarianceEstimatorType::Pointer CovarianceEstimatorPointer
 
typedef StreamingStatisticsVectorImageFilter< InputImageTypeCovarianceEstimatorType
 
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 VnlVectorType GetMean1 ()
 
virtual VnlVectorType GetMean2 ()
 
virtual const char * GetNameOfClass () const
 
virtual VnlVectorType GetRho ()
 
virtual VnlMatrixType GetV1 ()
 
virtual VnlMatrixType GetV2 ()
 
 itkGetObjectMacro (CovarianceEstimator, CovarianceEstimatorType)
 
void SetInput1 (const TInputImage *image1)
 
void SetInput2 (const TInputImage *image2)
 
const TInputImage * GetInput1 ()
 
const TInputImage * GetInput2 ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

Private Member Functions

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

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 different 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 retrieving the linear combinations used to generate the Mad change maps as a vnl_matrix of double, and the GetRho() method allows retrieving 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 81 of file otbMultivariateAlterationDetectorImageFilter.h.

Member Typedef Documentation

◆ ConcatenateImageFilterPointer

template<class TInputImage, class TOutputImage>
typedef ConcatenateImageFilterType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ConcatenateImageFilterPointer

◆ ConcatenateImageFilterType

◆ ConstPointer

template<class TInputImage, class TOutputImage>
typedef itk::SmartPointer<const Self> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::ConstPointer

◆ CovarianceEstimatorPointer

template<class TInputImage, class TOutputImage>
typedef CovarianceEstimatorType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CovarianceEstimatorPointer

◆ CovarianceEstimatorType

template<class TInputImage, class TOutputImage>
typedef StreamingStatisticsVectorImageFilter<InputImageType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CovarianceEstimatorType

Internal filters types

Definition at line 108 of file otbMultivariateAlterationDetectorImageFilter.h.

◆ InputImageConstPointer

template<class TInputImage, class TOutputImage>
typedef InputImageType::ConstPointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageConstPointer

◆ InputImagePixelType

template<class TInputImage, class TOutputImage>
typedef InputImageType::PixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImagePixelType

◆ InputImagePointer

template<class TInputImage, class TOutputImage>
typedef InputImageType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImagePointer

◆ InputImageRegionType

template<class TInputImage, class TOutputImage>
typedef InputImageType::RegionType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InputImageRegionType

◆ InputImageType

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

Some convenient typedefs.

Definition at line 94 of file otbMultivariateAlterationDetectorImageFilter.h.

◆ InternalMatrixType

template<class TInputImage, class TOutputImage>
typedef MatrixType::InternalMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::InternalMatrixType

◆ MatrixObjectType

template<class TInputImage, class TOutputImage>
typedef CovarianceEstimatorType::MatrixObjectType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MatrixObjectType

◆ MatrixType

template<class TInputImage, class TOutputImage>
typedef MatrixObjectType::ComponentType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MatrixType

◆ OutputImagePixelType

template<class TInputImage, class TOutputImage>
typedef OutputImageType::PixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImagePixelType

◆ OutputImagePointer

template<class TInputImage, class TOutputImage>
typedef OutputImageType::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImagePointer

◆ OutputImageRegionType

template<class TInputImage, class TOutputImage>
typedef OutputImageType::RegionType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::OutputImageRegionType

◆ OutputImageType

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

◆ Pointer

template<class TInputImage, class TOutputImage>
typedef itk::SmartPointer<Self> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::Pointer

◆ RealType

template<class TInputImage, class TOutputImage>
typedef VectorType::ValueType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::RealType

◆ Self

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

Standard class typedefs.

Definition at line 85 of file otbMultivariateAlterationDetectorImageFilter.h.

◆ Superclass

template<class TInputImage, class TOutputImage>
typedef itk::ImageToImageFilter<TInputImage, TOutputImage> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::Superclass

◆ VectorType

template<class TInputImage, class TOutputImage>
typedef CovarianceEstimatorType::RealPixelType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VectorType

◆ VnlMatrixType

template<class TInputImage, class TOutputImage>
typedef vnl_matrix<RealType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VnlMatrixType

◆ VnlVectorType

template<class TInputImage, class TOutputImage>
typedef vnl_vector<RealType> otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::VnlVectorType

Constructor & Destructor Documentation

◆ MultivariateAlterationDetectorImageFilter() [1/2]

template<class TInputImage , class TOutputImage >
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MultivariateAlterationDetectorImageFilter ( )
protected

◆ ~MultivariateAlterationDetectorImageFilter()

template<class TInputImage, class TOutputImage>
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::~MultivariateAlterationDetectorImageFilter ( )
inlineoverrideprotected

◆ MultivariateAlterationDetectorImageFilter() [2/2]

template<class TInputImage, class TOutputImage>
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::MultivariateAlterationDetectorImageFilter ( const Self )
privatedelete

Member Function Documentation

◆ CreateAnother()

template<class TInputImage, class TOutputImage>
virtual::itk::LightObject::Pointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::CreateAnother ( void  ) const

◆ GenerateOutputInformation()

template<class TInputImage , class TOutputImage >
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::GenerateOutputInformation ( void  )
overrideprotected

◆ GetInput1()

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

Get the inputs

Definition at line 51 of file otbMultivariateAlterationDetectorImageFilter.hxx.

◆ GetInput2()

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

Get the inputs

Definition at line 69 of file otbMultivariateAlterationDetectorImageFilter.hxx.

◆ GetMean1()

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

Get the mean of bands from image 1

◆ GetMean2()

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

Get the mean of bands from image 2

◆ GetNameOfClass()

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

Run-time type information (and related methods).

◆ GetRho()

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

Get the correlation coefficient associated with each mad.

◆ GetV1()

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.

◆ GetV2()

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.

◆ itkGetObjectMacro()

template<class TInputImage, class TOutputImage>
otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::itkGetObjectMacro ( CovarianceEstimator  ,
CovarianceEstimatorType   
)

Get the covariance estimator (for progress reporting purposes)

◆ New()

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

Method for creation through the object factory.

◆ operator=()

template<class TInputImage, class TOutputImage>
void otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::operator= ( const Self )
privatedelete

◆ SetInput1()

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 43 of file otbMultivariateAlterationDetectorImageFilter.hxx.

◆ SetInput2()

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 61 of file otbMultivariateAlterationDetectorImageFilter.hxx.

◆ ThreadedGenerateData()

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

Member Data Documentation

◆ m_CovarianceEstimator

template<class TInputImage, class TOutputImage>
CovarianceEstimatorPointer otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_CovarianceEstimator
private

◆ m_CovarianceMatrix

template<class TInputImage, class TOutputImage>
MatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_CovarianceMatrix
private

◆ m_Mean1

template<class TInputImage, class TOutputImage>
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Mean1
private

◆ m_Mean2

template<class TInputImage, class TOutputImage>
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Mean2
private

◆ m_MeanValues

template<class TInputImage, class TOutputImage>
VectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_MeanValues
private

◆ m_Rho

template<class TInputImage, class TOutputImage>
VnlVectorType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_Rho
private

◆ m_V1

template<class TInputImage, class TOutputImage>
VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_V1
private

◆ m_V2

template<class TInputImage, class TOutputImage>
VnlMatrixType otb::MultivariateAlterationDetectorImageFilter< TInputImage, TOutputImage >::m_V2
private

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