Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage > Class Template Reference
[Image Feature Extraction Filters]

Base class for ImagePCAShapeModelEstimator object. More...

#include <itkImagePCAShapeModelEstimator.h>

Inheritance diagram for itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ImagePCAShapeModelEstimator Self
typedef ImageShapeModelEstimatorBase<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TInputImage InputImageType
typedef TInputImage::Pointer InputImagePointer
typedef TInputImage::ConstPointer InputImageConstPointer
typedef TInputImage::PixelType InputImagePixelType
typedef ImageRegionIterator<
TInputImage > 
InputImageIterator
typedef ImageRegionConstIterator<
TInputImage > 
InputImageConstIterator
typedef TOutputImage OutputImageType
typedef TOutputImage::Pointer OutputImagePointer
typedef ImageRegionIterator<
TOutputImage > 
OutputImageIterator
typedef vnl_matrix< double > MatrixOfDoubleType
typedef vnl_matrix< int > MatrixOfIntegerType
typedef vnl_vector< double > VectorOfDoubleType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (InputImageDimension, unsigned int, TInputImage::ImageDimension)
virtual VectorOfDoubleType GetEigenValues ()
void SetNumberOfPrincipalComponentsRequired (unsigned int n)
virtual unsigned int GetNumberOfPrincipalComponentsRequired ()
virtual void SetNumberOfTrainingImages (unsigned int _arg)
virtual unsigned int GetNumberOfTrainingImages ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 ImagePCAShapeModelEstimator ()
 ~ImagePCAShapeModelEstimator ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
virtual void EnlargeOutputRequestedRegion (DataObject *)
virtual void GenerateInputRequestedRegion ()
void GenerateData ()

Detailed Description

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
class itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >

Base class for ImagePCAShapeModelEstimator object.

itkImagePCAShapeModelEstimator performs a principal component analysis (PCA) on a set of images. The user specifies the number of training images and also the number of desired largest principal components needed. The ITK pipeline mechanism sets up the storage for both input and output images. The number of output images are the user specified number of desired largest principal components plus 1 a(for the mean image).

The algorithm uses the VNL library to perform the eigen analysis. To speed the computation of the instead of performing the eigen analysis of the covariance vector A*A' where A is a matrix with p x t, p = number of pixels or voxels in each images and t = number of training images, we calculate the eigen vectors of the inner product matrix A'*A. The resulting eigen vectors (E) are then multiplied with the the matrix A to get the principal compoenets. The covariance matrix has a dimension of p x p. Since number of pixels in any image being typically very high the eigen decomposition becomes computationally expensive. The inner product on the other hand has the dimension of t x t, where t is typically much smaller that p. Hence the eigen decomposition (most compute intensive part) is an orders of magnitude faster.

The Update() function enables the calculation of the various models, creates the membership function objects and populates them.

Definition at line 72 of file itkImagePCAShapeModelEstimator.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef SmartPointer<const Self> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::ConstPointer
 

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 80 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef ImageRegionConstIterator<TInputImage> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImageConstIterator
 

Definition at line 101 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TInputImage::ConstPointer itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImageConstPointer
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 91 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef ImageRegionIterator<TInputImage> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImageIterator
 

Type definition for the input image iterator type. Definition at line 98 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TInputImage::PixelType itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImagePixelType
 

Type definition for the input image pixel type.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 94 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TInputImage::Pointer itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImagePointer
 

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 90 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TInputImage itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::InputImageType
 

Type definition for the input image.

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 89 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef vnl_matrix<double> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::MatrixOfDoubleType
 

Type definition for a double matrix. Definition at line 116 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef vnl_matrix<int> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::MatrixOfIntegerType
 

Type definition for an integer vector. Definition at line 119 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef ImageRegionIterator<TOutputImage> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::OutputImageIterator
 

Type definition for the input image iterator type. Definition at line 113 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TOutputImage::Pointer itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::OutputImagePointer
 

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 109 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef TOutputImage itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::OutputImageType
 

Type definition for the output image

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 108 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef SmartPointer<Self> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::Pointer
 

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 79 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef ImagePCAShapeModelEstimator itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::Self
 

Standard class typedefs.

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 77 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef ImageShapeModelEstimatorBase<TInputImage, TOutputImage> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::Superclass
 

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

Definition at line 78 of file itkImagePCAShapeModelEstimator.h.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
typedef vnl_vector<double> itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::VectorOfDoubleType
 

Type definition for a double vector. Definition at line 122 of file itkImagePCAShapeModelEstimator.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::ImagePCAShapeModelEstimator  )  [protected]
 

Execute the function (over-ride the base clase update function)

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::~ImagePCAShapeModelEstimator  )  [protected]
 


Member Function Documentation

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::EnlargeOutputRequestedRegion DataObject  )  [protected, virtual]
 

This filter must produce all of the outputs at once, as such it must override the EnlargeOutputRequestedRegion method to enlarge the output request region.

Reimplemented from itk::ProcessObject.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GenerateData  )  [protected, virtual]
 

Starts the image modelling process

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GenerateInputRequestedRegion  )  [protected, virtual]
 

This filter requires all the input image at once, as such it must override the GenerateInputRequestedRegion method. Additionally, this filter assumes that the input images are at least the size as the first input image.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual const char* itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GetClassName  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual VectorOfDoubleType itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GetEigenValues  )  [virtual]
 

Get the eigen values

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual unsigned int itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GetNumberOfPrincipalComponentsRequired  )  [virtual]
 

Set/Get the number of input training images. The filter produces the same number of output images. The Set method modifies this filter's NumberOfRequiredInputs and NumberOfRequiredOutputs and calls MakeOutput to create the extra outputs.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual unsigned int itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::GetNumberOfTrainingImages  )  [virtual]
 

Set/Get the number of training images in the input

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::itkStaticConstMacro InputImageDimension  ,
unsigned  int,
TInputImage::ImageDimension 
 

Input Image dimension

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
Pointer itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

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.

Reimplemented from itk::ImageShapeModelEstimatorBase< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::SetNumberOfPrincipalComponentsRequired unsigned int  n  ) 
 

Set/Get the number of input training images. The filter produces the same number of output images. The Set method modifies this filter's NumberOfRequiredInputs and NumberOfRequiredOutputs and calls MakeOutput to create the extra outputs.

template<class TInputImage, class TOutputImage = Image<double, ::itk::GetImageDimension<TInputImage>::ImageDimension>>
virtual void itk::ImagePCAShapeModelEstimator< TInputImage, TOutputImage >::SetNumberOfTrainingImages unsigned int  _arg  )  [virtual]
 

Set/Get the number of training images in the input


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 02:50:22 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000