00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkEigenAnalysis2DImageFilter_h
00018 #define __itkEigenAnalysis2DImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021
00022
00039 namespace itk {
00040
00041 template <class TInputImage, class TEigenValueImage, class TEigenVectorImage >
00042 class ITK_EXPORT EigenAnalysis2DImageFilter:
00043 public ImageToImageFilter<TInputImage,TEigenValueImage>
00044 {
00045 public:
00047 typedef EigenAnalysis2DImageFilter Self;
00048 typedef ImageToImageFilter<TInputImage,TEigenValueImage> Superclass;
00049 typedef SmartPointer<Self> Pointer;
00050 typedef SmartPointer<const Self> ConstPointer;
00051
00053 itkNewMacro(Self);
00054
00056 typedef typename TEigenVectorImage::PixelType EigenVectorType;
00057 typedef typename EigenVectorType::ValueType VectorComponentType;
00058
00060 typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
00061
00063 typedef TEigenValueImage EigenValueImageType;
00064 typedef typename EigenValueImageType::Pointer EigenValueImagePointer;
00065 typedef typename EigenValueImageType::RegionType EigenValueImageRegionType;
00066 typedef typename EigenValueImageType::PixelType EigenValueImagePixelType;
00067 typedef TEigenVectorImage EigenVectorImageType;
00068 typedef typename EigenVectorImageType::Pointer EigenVectorImagePointer;
00069 typedef typename EigenVectorImageType::RegionType EigenVectorImageRegionType;
00070 typedef typename EigenVectorImageType::PixelType EigenVectorImagePixelType;
00071
00073 itkStaticConstMacro(ImageDimension, unsigned int,
00074 TInputImage::ImageDimension);
00075
00078 void SetInput1( TInputImage * image1);
00079
00084 void SetInput2( TInputImage * image2);
00085
00088 void SetInput3( TInputImage * image3);
00089
00091 EigenValueImageType * GetMaxEigenValue( void );
00092
00094 EigenValueImageType * GetMinEigenValue( void );
00095
00098 EigenVectorImageType * GetMaxEigenVector( void );
00099
00101 DataObject::Pointer MakeOutput(unsigned int idx);
00102
00103 protected:
00104 EigenAnalysis2DImageFilter();
00105 virtual ~EigenAnalysis2DImageFilter() {};
00106
00107 void GenerateData( void );
00108
00109 private:
00110 EigenAnalysis2DImageFilter(const Self&);
00111 void operator=(const Self&);
00112
00113 };
00114
00115 }
00116
00117 #ifndef ITK_MANUAL_INSTANTIATION
00118 #include "itkEigenAnalysis2DImageFilter.txx"
00119 #endif
00120
00121 #endif
00122
00123
00124
00125