ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkSatoLocalStructureFeatureGenerator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkSatoLocalStructureFeatureGenerator.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 itkSatoLocalStructureFeatureGenerator_h
18 #define itkSatoLocalStructureFeatureGenerator_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_TEMPLATE_EXPORT SatoLocalStructureFeatureGenerator : public FeatureGenerator<NDimension>
43 {
44 public:
45  ITK_DISALLOW_COPY_AND_ASSIGN(SatoLocalStructureFeatureGenerator);
46 
52 
54  itkNewMacro(Self);
55 
58 
60  static constexpr unsigned int Dimension = NDimension;
61 
64  using InputPixelType = signed short;
68  using SpatialObjectType = typename Superclass::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( Alpha, double );
88  itkGetMacro( Alpha, double );
90 
92  itkSetMacro( Gamma, double );
93  itkGetMacro( Gamma, double );
95 
96 protected:
99  void PrintSelf(std::ostream& os, Indent indent) const override;
100 
103  void GenerateData () override;
104 
105 private:
106  using InternalPixelType = float;
108 
111 
113 
116  using HessianPixelType = typename HessianImageType::PixelType;
117 
120 
122 
124 
128 
129  double m_Sigma;
130  double m_Alpha;
131  double m_Gamma;
132 };
133 
134 } // end namespace itk
135 
136 #ifndef ITK_MANUAL_INSTANTIATION
137 # include "itkSatoLocalStructureFeatureGenerator.hxx"
138 #endif
139 
140 #endif
Light weight base class for most itk classes.
Computes the eigen-values of every input symmetric matrix pixel.
typename InputImageSpatialObjectType::Pointer InputImageSpatialObjectPointer
Simulate a standard C array with copy semnatics.
Definition: itkFixedArray.h:51
Generates a feature image by computing measures based on the Hessian Eigenvalues. ...
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)
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.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
typename HessianFilterType::OutputImageType HessianImageType
Computes local similarity to geometrical structures using second derivative operations.
Templated n-dimensional image class.
Definition: itkImage.h:75