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
00089 itkTypeMacro( HessianToObjectnessMeasureImageFilter, ImageToImageFilter );
00090
00094 itkSetMacro(Alpha,double);
00095 itkGetConstMacro(Alpha,double);
00097
00101 itkSetMacro(Beta,double);
00102 itkGetConstMacro(Beta,double);
00104
00107 itkSetMacro(Gamma,double);
00108 itkGetConstMacro(Gamma,double);
00110
00112 itkSetMacro(ScaleObjectnessMeasure,bool);
00113 itkGetConstMacro(ScaleObjectnessMeasure,bool);
00114 itkBooleanMacro(ScaleObjectnessMeasure);
00116
00120 itkSetMacro(ObjectDimension,unsigned int);
00121 itkGetConstMacro(ObjectDimension,unsigned int);
00123
00125 itkSetMacro(BrightObject,bool);
00126 itkGetConstMacro(BrightObject,bool);
00128
00129 #ifdef ITK_USE_CONCEPT_CHECKING
00130
00131 itkConceptMacro(DoubleConvertibleToOutputCheck,(Concept::Convertible<double, OutputPixelType>));
00132
00134 #endif
00135
00136 protected:
00137 HessianToObjectnessMeasureImageFilter();
00138 ~HessianToObjectnessMeasureImageFilter() {};
00139 void PrintSelf(std::ostream& os, Indent indent) const;
00140
00142 void GenerateData(void);
00143
00144 private:
00145 HessianToObjectnessMeasureImageFilter(const Self&);
00146 void operator=(const Self&);
00147
00148 typename EigenAnalysisFilterType::Pointer m_SymmetricEigenValueFilter;
00149
00150 double m_Alpha;
00151 double m_Beta;
00152 double m_Gamma;
00153 unsigned int m_ObjectDimension;
00154 bool m_BrightObject;
00155 bool m_ScaleObjectnessMeasure;
00156 };
00157
00158 }
00159
00160 #ifndef ITK_MANUAL_INSTANTIATION
00161 #include "itkHessianToObjectnessMeasureImageFilter.txx"
00162 #endif
00163
00164 #endif
00165