itkHessianToObjectnessMeasureImageFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkHessianToObjectnessMeasureImageFilter_h
00018 #define __itkHessianToObjectnessMeasureImageFilter_h
00019
00020 #include "itkSymmetricSecondRankTensor.h"
00021 #include "itkSymmetricEigenAnalysisImageFilter.h"
00022
00023 namespace itk
00024 {
00057 template < typename TInputImage, typename TOutputImage >
00058 class ITK_EXPORT HessianToObjectnessMeasureImageFilter : public
00059 ImageToImageFilter< TInputImage,TOutputImage>
00060 {
00061 public:
00063 typedef HessianToObjectnessMeasureImageFilter Self;
00064
00065 typedef ImageToImageFilter< TInputImage, TOutputImage > Superclass;
00066
00067 typedef SmartPointer< Self > Pointer;
00068 typedef SmartPointer< const Self > ConstPointer;
00069
00070 typedef typename Superclass::InputImageType InputImageType;
00071 typedef typename Superclass::OutputImageType OutputImageType;
00072 typedef typename InputImageType::PixelType InputPixelType;
00073 typedef typename OutputImageType::PixelType OutputPixelType;
00074
00076 itkStaticConstMacro(ImageDimension, unsigned int, ::itk::GetImageDimension<InputImageType>::ImageDimension);
00077
00078 typedef double EigenValueType;
00079 typedef itk::FixedArray< EigenValueType, itkGetStaticConstMacro( ImageDimension ) > EigenValueArrayType;
00080 typedef itk::Image< EigenValueArrayType, itkGetStaticConstMacro( ImageDimension ) > EigenValueImageType;
00081
00082 typedef SymmetricEigenAnalysisImageFilter<
00083 InputImageType, EigenValueImageType > EigenAnalysisFilterType;
00084
00086 itkNewMacro(Self);
00087
00091 itkSetMacro(Alpha,double);
00092 itkGetConstMacro(Alpha,double);
00094
00098 itkSetMacro(Beta,double);
00099 itkGetConstMacro(Beta,double);
00101
00104 itkSetMacro(Gamma,double);
00105 itkGetConstMacro(Gamma,double);
00107
00109 itkSetMacro(ScaleObjectnessMeasure,bool);
00110 itkGetConstMacro(ScaleObjectnessMeasure,bool);
00111 itkBooleanMacro(ScaleObjectnessMeasure);
00113
00117 itkSetMacro(ObjectDimension,unsigned int);
00118 itkGetConstMacro(ObjectDimension,unsigned int);
00120
00122 itkSetMacro(BrightObject,bool);
00123 itkGetConstMacro(BrightObject,bool);
00125
00126 #ifdef ITK_USE_CONCEPT_CHECKING
00127
00128 itkConceptMacro(DoubleConvertibleToOutputCheck,(Concept::Convertible<double, OutputPixelType>));
00129
00131 #endif
00132
00133 protected:
00134 HessianToObjectnessMeasureImageFilter();
00135 ~HessianToObjectnessMeasureImageFilter() {};
00136 void PrintSelf(std::ostream& os, Indent indent) const;
00137
00139 void GenerateData(void);
00140
00141 private:
00142 HessianToObjectnessMeasureImageFilter(const Self&);
00143 void operator=(const Self&);
00144
00145 typename EigenAnalysisFilterType::Pointer m_SymmetricEigenValueFilter;
00146
00147 double m_Alpha;
00148 double m_Beta;
00149 double m_Gamma;
00150 unsigned int m_ObjectDimension;
00151 bool m_BrightObject;
00152 bool m_ScaleObjectnessMeasure;
00153 };
00154
00155 }
00156
00157 #ifndef ITK_MANUAL_INSTANTIATION
00158 #include "itkHessianToObjectnessMeasureImageFilter.txx"
00159 #endif
00160
00161 #endif
00162