Orfeo Toolbox  3.16
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
otb::VirtualDimensionality< TPrecision > Class Template Reference

Estimates the number of endmembers in a hyperspectral image with the Virtual Dimensionality method. More...

#include <otbVirtualDimensionality.h>

+ Inheritance diagram for otb::VirtualDimensionality< TPrecision >:
+ Collaboration diagram for otb::VirtualDimensionality< TPrecision >:

Public Types

typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef vnl_matrix< PrecisionTypeMatrixType
 
typedef itk::SmartPointer< SelfPointer
 
typedef TPrecision PrecisionType
 
typedef VirtualDimensionality Self
 
typedef itk::LightObject Superclass
 
typedef vnl_vector< PrecisionTypeVectorType
 

Public Member Functions

void Compute ()
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual void Delete ()
 
double GetFAR ()
 
virtual const char * GetNameOfClass () const
 
unsigned int GetNumberOfEndmembers ()
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
void SetCorrelation (const MatrixType &m)
 
void SetCovariance (const MatrixType &m)
 
void SetFAR (double falseAlarmRate)
 
void SetNumberOfPixels (unsigned int n)
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const
 

Static Public Member Functions

static void BreakOnError ()
 
static Pointer New ()
 

Protected Types

typedef int InternalReferenceCountType
 

Protected Member Functions

 VirtualDimensionality ()
 
virtual ~VirtualDimensionality ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, itk::Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 

Protected Attributes

InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Private Member Functions

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

Private Attributes

MatrixType m_Correlation
 
MatrixType m_Covariance
 
double m_FAR
 
unsigned int m_NumberOfEndmembers
 
unsigned int m_NumberOfPixels
 

Detailed Description

template<class TPrecision>
class otb::VirtualDimensionality< TPrecision >

Estimates the number of endmembers in a hyperspectral image with the Virtual Dimensionality method.

This filter applies the VD (Virtual Dimensionality) algorithm to an hyperspectral image and outputs the number of endmembers. It takes as input the covariance and correlation matrices of the input data, the number of observed pixel for thoses matrices estimations, and outputs the number of endmembers, and the log-likelihood.

References : C.-I. Chang and Q. Du, "Estimation of number of spectrally distinct signal sources in hyperspectral imagery", IEEE Transactions on Geoscience and Remote Sensing, vol. 43, no. 3, mar 2004.

J. Wang and C.-I. Chang, "Applications of independent component analysis in endmember extraction and abundance quantification for hyperspectral imagery", IEEE Transactions on Geoscience and Remote Sensing, vol. 44, no. 9, pp. 2601-1616, sep 2006.

Definition at line 57 of file otbVirtualDimensionality.h.

Member Typedef Documentation

template<class TPrecision >
typedef itk::SmartPointer<const Self> otb::VirtualDimensionality< TPrecision >::ConstPointer

Definition at line 65 of file otbVirtualDimensionality.h.

typedef int itk::LightObject::InternalReferenceCountType
protectedinherited

Define the type of the reference count according to the target. This allows the use of atomic operations

Definition at line 137 of file itkLightObject.h.

template<class TPrecision >
typedef vnl_matrix<PrecisionType> otb::VirtualDimensionality< TPrecision >::MatrixType

Definition at line 77 of file otbVirtualDimensionality.h.

template<class TPrecision >
typedef itk::SmartPointer<Self> otb::VirtualDimensionality< TPrecision >::Pointer

Definition at line 64 of file otbVirtualDimensionality.h.

template<class TPrecision >
typedef TPrecision otb::VirtualDimensionality< TPrecision >::PrecisionType

Types to use for computations.

Definition at line 71 of file otbVirtualDimensionality.h.

template<class TPrecision >
typedef VirtualDimensionality otb::VirtualDimensionality< TPrecision >::Self

Standard Self typedef

Definition at line 62 of file otbVirtualDimensionality.h.

template<class TPrecision >
typedef itk::LightObject otb::VirtualDimensionality< TPrecision >::Superclass

Definition at line 63 of file otbVirtualDimensionality.h.

template<class TPrecision >
typedef vnl_vector<PrecisionType> otb::VirtualDimensionality< TPrecision >::VectorType

Definition at line 76 of file otbVirtualDimensionality.h.

Constructor & Destructor Documentation

template<class TPrecision >
otb::VirtualDimensionality< TPrecision >::VirtualDimensionality ( )
protected

Definition at line 34 of file otbVirtualDimensionality.txx.

template<class TPrecision >
virtual otb::VirtualDimensionality< TPrecision >::~VirtualDimensionality ( )
inlineprotectedvirtual

Definition at line 119 of file otbVirtualDimensionality.h.

template<class TPrecision >
otb::VirtualDimensionality< TPrecision >::VirtualDimensionality ( const Self )
private

Member Function Documentation

void itk::LightObject::BreakOnError ( )
staticinherited

This method is called when itkExceptionMacro executes. It allows the debugger to break on error.

Definition at line 149 of file itkLightObject.cxx.

template<class TInputImage >
void otb::VirtualDimensionality< TInputImage >::Compute ( void  )

Definition at line 44 of file otbVirtualDimensionality.txx.

template<class TPrecision >
virtual::itk::LightObject::Pointer otb::VirtualDimensionality< TPrecision >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::LightObject.

void itk::LightObject::Delete ( )
virtualinherited

Delete an itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C delete method will not work with reference counting.

Delete a itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C++ delete method will not work with reference counting.

Definition at line 88 of file itkLightObject.cxx.

template<class TPrecision >
double otb::VirtualDimensionality< TPrecision >::GetFAR ( )
inline

Definition at line 105 of file otbVirtualDimensionality.h.

template<class TPrecision >
virtual const char* otb::VirtualDimensionality< TPrecision >::GetNameOfClass ( ) const
virtual

Runtime information support.

Reimplemented from itk::LightObject.

template<class TPrecision >
unsigned int otb::VirtualDimensionality< TPrecision >::GetNumberOfEndmembers ( )
inline

Definition at line 112 of file otbVirtualDimensionality.h.

virtual int itk::LightObject::GetReferenceCount ( ) const
inlinevirtualinherited

Gets the reference count on this object.

Definition at line 105 of file itkLightObject.h.

template<class TPrecision >
static Pointer otb::VirtualDimensionality< TPrecision >::New ( )
static

Method for creation through the object factory.

template<class TPrecision >
void otb::VirtualDimensionality< TPrecision >::operator= ( const Self )
private
void itk::LightObject::Print ( std::ostream &  os,
Indent  indent = 0 
) const
inherited

Cause the object to print itself out.

Avoid DLL boundary problems. This function will be common to all itk objects. It just calls the header/self/trailer virtual print methods, which can be overriden by subclasses (any itk object).

Definition at line 135 of file itkLightObject.cxx.

References itk::Indent::GetNextIndent().

Referenced by itk::operator<<().

void itk::LightObject::PrintHeader ( std::ostream &  os,
Indent  indent 
) const
protectedvirtualinherited

Define a default print header for all objects.

Definition at line 320 of file itkLightObject.cxx.

template<class TImage >
void otb::VirtualDimensionality< TImage >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Chaining method to print an object's instance variables, as well as its superclasses.

Reimplemented from itk::LightObject.

Definition at line 76 of file otbVirtualDimensionality.txx.

void itk::LightObject::PrintTrailer ( std::ostream &  os,
Indent  indent 
) const
protectedvirtualinherited

Define a default print trailer for all objects.

Definition at line 331 of file itkLightObject.cxx.

void itk::LightObject::Register ( ) const
virtualinherited

Increase the reference count (mark as used by another object).

Reimplemented in itk::ExceptionObject::ReferenceCountedExceptionData, and itk::Object.

Definition at line 160 of file itkLightObject.cxx.

Referenced by itk::ExceptionObject::ReferenceCountedExceptionData::Register().

template<class TPrecision >
void otb::VirtualDimensionality< TPrecision >::SetCorrelation ( const MatrixType m)
inline

Definition at line 84 of file otbVirtualDimensionality.h.

template<class TPrecision >
void otb::VirtualDimensionality< TPrecision >::SetCovariance ( const MatrixType m)
inline

Definition at line 79 of file otbVirtualDimensionality.h.

template<class TPrecision >
void otb::VirtualDimensionality< TPrecision >::SetFAR ( double  falseAlarmRate)
inline

Definition at line 94 of file otbVirtualDimensionality.h.

template<class TPrecision >
void otb::VirtualDimensionality< TPrecision >::SetNumberOfPixels ( unsigned int  n)
inline

Definition at line 89 of file otbVirtualDimensionality.h.

void itk::LightObject::SetReferenceCount ( int  ref)
virtualinherited

Sets the reference count on this object. This is a dangerous method, use it with care.

Sets the reference count (use with care)

Reimplemented in itk::Object.

Definition at line 244 of file itkLightObject.cxx.

void itk::LightObject::UnRegister ( ) const
virtualinherited

Decrease the reference count (release by another object).

Reimplemented in itk::ExceptionObject::ReferenceCountedExceptionData, and itk::Object.

Definition at line 192 of file itkLightObject.cxx.

Referenced by itk::LightObject::New(), and itk::ExceptionObject::ReferenceCountedExceptionData::UnRegister().

Member Data Documentation

template<class TPrecision >
MatrixType otb::VirtualDimensionality< TPrecision >::m_Correlation
private

Definition at line 127 of file otbVirtualDimensionality.h.

template<class TPrecision >
MatrixType otb::VirtualDimensionality< TPrecision >::m_Covariance
private

Definition at line 126 of file otbVirtualDimensionality.h.

template<class TPrecision >
double otb::VirtualDimensionality< TPrecision >::m_FAR
private

Definition at line 131 of file otbVirtualDimensionality.h.

template<class TPrecision >
unsigned int otb::VirtualDimensionality< TPrecision >::m_NumberOfEndmembers
private

Definition at line 130 of file otbVirtualDimensionality.h.

template<class TPrecision >
unsigned int otb::VirtualDimensionality< TPrecision >::m_NumberOfPixels
private

Definition at line 129 of file otbVirtualDimensionality.h.

InternalReferenceCountType itk::LightObject::m_ReferenceCount
mutableprotectedinherited

Number of uses of this object by other objects.

Definition at line 141 of file itkLightObject.h.

SimpleFastMutexLock itk::LightObject::m_ReferenceCountLock
mutableprotectedinherited

Mutex lock to protect modification to the reference count

Definition at line 144 of file itkLightObject.h.


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

Generated at Sun May 19 2013 04:25:44 for Orfeo Toolbox with doxygen 1.8.3.1