ITK  4.6.0
Insight Segmentation and Registration Toolkit
itkFrangiTubularnessFeatureGenerator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkFrangiTubularnessFeatureGenerator.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 __itkFrangiTubularnessFeatureGenerator_h
18 #define __itkFrangiTubularnessFeatureGenerator_h
19 
20 #include "itkFeatureGenerator.h"
21 #include "itkImage.h"
22 #include "itkImageSpatialObject.h"
27 
28 namespace itk
29 {
30 
41 template <unsigned int NDimension>
42 class ITK_EXPORT FrangiTubularnessFeatureGenerator : public FeatureGenerator<NDimension>
43 {
44 public:
50 
52  itkNewMacro(Self);
53 
56 
58  itkStaticConstMacro(Dimension, unsigned int, NDimension);
59 
62  typedef signed short InputPixelType;
66  typedef typename Superclass::SpatialObjectType SpatialObjectType;
67 
70  void SetInput( const SpatialObjectType * input );
71  const SpatialObjectType * GetInput() const;
73 
76  const SpatialObjectType * GetFeature() const;
77 
80  itkSetMacro( Sigma, double );
81  itkGetMacro( Sigma, double );
83 
85  itkSetMacro( SheetnessNormalization, double );
86  itkGetMacro( SheetnessNormalization, double );
88 
90  itkSetMacro( BloobinessNormalization, double );
91  itkGetMacro( BloobinessNormalization, double );
93 
95  itkSetMacro( NoiseNormalization, double );
96  itkGetMacro( NoiseNormalization, double );
98 
99 protected:
102  void PrintSelf(std::ostream& os, Indent indent) const;
103 
106  void GenerateData ();
107 
108 private:
109  FrangiTubularnessFeatureGenerator(const Self&); //purposely not implemented
110  void operator=(const Self&); //purposely not implemented
111 
112  typedef float InternalPixelType;
114 
117 
119 
122  typedef typename HessianImageType::PixelType HessianPixelType;
123 
126 
128 
130 
134 
135  double m_Sigma;
139 };
140 
141 } // end namespace itk
142 
143 #ifndef ITK_MANUAL_INSTANTIATION
144 # include "itkFrangiTubularnessFeatureGenerator.hxx"
145 #endif
146 
147 #endif
Light weight base class for most itk classes.
ImageSpatialObject< NDimension, OutputPixelType > OutputImageSpatialObjectType
Computes the eigen-values of every input symmetric matrix pixel.
FrangiTubularnessImageFilter< EigenValueImageType, OutputImageType > SheetnessFilterType
SymmetricEigenAnalysisImageFilter< HessianImageType, EigenValueImageType > EigenAnalysisFilterType
Simulate a standard C array with copy semnatics.
Definition: itkFixedArray.h:50
Image< InternalPixelType, Dimension > InternalImageType
ImageSpatialObject< NDimension, InputPixelType > InputImageSpatialObjectType
Class that generates features (typically images) used as input for a segmentation method...
Implementation of the composite pattern.
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Generates a feature image by computing measures based on the Hessian Eigenvalues. ...
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
Computes a measure of CrestLines from the Hessian Eigenvalues.
Implementation of an image as spatial object.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
InputImageSpatialObjectType::Pointer InputImageSpatialObjectPointer
HessianRecursiveGaussianImageFilter< InputImageType > HessianFilterType
Image< EigenValueArrayType, Dimension > EigenValueImageType
Templated n-dimensional image class.
Definition: itkImage.h:75
FixedArray< double, HessianPixelType::Dimension > EigenValueArrayType