ITK  5.0.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_TEMPLATE_EXPORT DescoteauxSheetnessFeatureGenerator : public FeatureGenerator<NDimension>
45 {
46 public:
47  ITK_DISALLOW_COPY_AND_ASSIGN(DescoteauxSheetnessFeatureGenerator);
48 
54 
56  itkNewMacro(Self);
57 
60 
62  static constexpr unsigned int Dimension = NDimension;
63 
66  using InputPixelType = signed short;
70  using SpatialObjectType = typename Superclass::SpatialObjectType;
71 
74  void SetInput( const SpatialObjectType * input );
75  const SpatialObjectType * GetInput() const;
77 
80  const SpatialObjectType * GetFeature() const;
81 
84  itkSetMacro( Sigma, double );
85  itkGetMacro( Sigma, double );
87 
89  itkSetMacro( SheetnessNormalization, double );
90  itkGetMacro( SheetnessNormalization, double );
92 
94  itkSetMacro( BloobinessNormalization, double );
95  itkGetMacro( BloobinessNormalization, double );
97 
99  itkSetMacro( NoiseNormalization, double );
100  itkGetMacro( NoiseNormalization, double );
102 
105  itkSetMacro( DetectBrightSheets, bool );
106  itkGetMacro( DetectBrightSheets, bool );
107  itkBooleanMacro( DetectBrightSheets );
109 
110 protected:
113  void PrintSelf(std::ostream& os, Indent indent) const override;
114 
117  void GenerateData () override;
118 
119 private:
120  using InternalPixelType = float;
122 
125 
127 
130  using HessianPixelType = typename HessianImageType::PixelType;
131 
134 
136 
138 
140 
145 
146  double m_Sigma;
151 };
152 
153 } // end namespace itk
154 
155 #ifndef ITK_MANUAL_INSTANTIATION
156 # include "itkDescoteauxSheetnessFeatureGenerator.hxx"
157 #endif
158 
159 #endif
Light weight base class for most itk classes.
Computes the eigen-values of every input symmetric matrix pixel.
typename Superclass::SpatialObjectType SpatialObjectType
Computes a measure of Sheetness from the Hessian Eigenvalues.
Simulate a standard C array with copy semnatics.
Definition: itkFixedArray.h:51
Generates a feature image by computing a Sheetness measures based on the Hessian Eigenvalues.
Class that generates features (typically images) used as input for a segmentation method...
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Protected method for setting indexed and named inputs.
Computes the Hessian matrix of an image by convolution with the Second and Cross derivatives of a Gau...
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
typename InputImageSpatialObjectType::Pointer InputImageSpatialObjectPointer
Templated n-dimensional image class.
Definition: itkImage.h:75
typename HessianFilterType::OutputImageType HessianImageType