ITK  4.6.0
Insight Segmentation and Registration Toolkit
itkDescoteauxSheetnessFeatureGenerator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkDescoteauxSheetnessFeatureGenerator.h
5  Language: C++
6  Date: $Date$
7  Version: $Revision$
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkDescoteauxSheetnessFeatureGenerator_h
18 #define __itkDescoteauxSheetnessFeatureGenerator_h
19 
20 #include "itkFeatureGenerator.h"
21 #include "itkImage.h"
22 #include "itkImageSpatialObject.h"
28 
29 namespace itk
30 {
31 
43 template <unsigned int NDimension>
44 class ITK_EXPORT DescoteauxSheetnessFeatureGenerator : public FeatureGenerator<NDimension>
45 {
46 public:
52 
54  itkNewMacro(Self);
55 
58 
60  itkStaticConstMacro(Dimension, unsigned int, NDimension);
61 
64  typedef signed short InputPixelType;
68  typedef typename Superclass::SpatialObjectType SpatialObjectType;
69 
72  void SetInput( const SpatialObjectType * input );
73  const SpatialObjectType * GetInput() const;
75 
78  const SpatialObjectType * GetFeature() const;
79 
82  itkSetMacro( Sigma, double );
83  itkGetMacro( Sigma, double );
85 
87  itkSetMacro( SheetnessNormalization, double );
88  itkGetMacro( SheetnessNormalization, double );
90 
92  itkSetMacro( BloobinessNormalization, double );
93  itkGetMacro( BloobinessNormalization, double );
95 
97  itkSetMacro( NoiseNormalization, double );
98  itkGetMacro( NoiseNormalization, double );
100 
103  itkSetMacro( DetectBrightSheets, bool );
104  itkGetMacro( DetectBrightSheets, bool );
105  itkBooleanMacro( DetectBrightSheets );
107 
108 protected:
111  void PrintSelf(std::ostream& os, Indent indent) const;
112 
115  void GenerateData ();
116 
117 private:
118  DescoteauxSheetnessFeatureGenerator(const Self&); //purposely not implemented
119  void operator=(const Self&); //purposely not implemented
120 
121  typedef float InternalPixelType;
123 
126 
128 
131  typedef typename HessianImageType::PixelType HessianPixelType;
132 
135 
137 
139 
141 
146 
147  double m_Sigma;
152 };
153 
154 } // end namespace itk
155 
156 #ifndef ITK_MANUAL_INSTANTIATION
157 # include "itkDescoteauxSheetnessFeatureGenerator.hxx"
158 #endif
159 
160 #endif
Light weight base class for most itk classes.
FixedArray< double, HessianPixelType::Dimension > EigenValueArrayType
Computes the eigen-values of every input symmetric matrix pixel.
InputImageSpatialObjectType::Pointer InputImageSpatialObjectPointer
ImageSpatialObject< NDimension, OutputPixelType > OutputImageSpatialObjectType
ImageSpatialObject< NDimension, InputPixelType > InputImageSpatialObjectType
Computes a measure of Sheetness from the Hessian Eigenvalues.
Image< EigenValueArrayType, Dimension > EigenValueImageType
Simulate a standard C array with copy semnatics.
Definition: itkFixedArray.h:50
Generates a feature image by computing a Sheetness measures based on the Hessian Eigenvalues.
RescaleIntensityImageFilter< OutputImageType, OutputImageType > RescaleFilterType
Class that generates features (typically images) used as input for a segmentation method...
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
HessianRecursiveGaussianImageFilter< InputImageType > HessianFilterType
Implementation of an image as spatial object.
Applies a linear transformation to the intensity levels of the input Image.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
DescoteauxSheetnessImageFilter< EigenValueImageType, OutputImageType > SheetnessFilterType
Templated n-dimensional image class.
Definition: itkImage.h:75
SymmetricEigenAnalysisImageFilter< HessianImageType, EigenValueImageType > EigenAnalysisFilterType