ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkHessian3DToVesselnessMeasureImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkHessian3DToVesselnessMeasureImageFilter_h
19 #define itkHessian3DToVesselnessMeasureImageFilter_h
20 
23 
24 namespace itk
25 {
75 template< typename TPixel >
76 class ITK_TEMPLATE_EXPORT Hessian3DToVesselnessMeasureImageFilter:public
77  ImageToImageFilter< Image< SymmetricSecondRankTensor< double, 3 >, 3 >,
78  Image< TPixel, 3 > >
79 {
80 public:
81  ITK_DISALLOW_COPY_AND_ASSIGN(Hessian3DToVesselnessMeasureImageFilter);
82 
88 
91 
92  using InputImageType = typename Superclass::InputImageType;
93  using OutputImageType = typename Superclass::OutputImageType;
94  using InputPixelType = typename InputImageType::PixelType;
95  using OutputPixelType = TPixel;
96 
98  static constexpr unsigned int ImageDimension = InputImageType ::ImageDimension;
99  static constexpr unsigned int InputPixelDimension = InputPixelType::Dimension;
100 
101  using EigenValueArrayType =
103  using EigenValueImageType =
107 
110 
112  itkNewMacro(Self);
113 
116  itkSetMacro(Alpha1, double);
117  itkGetConstMacro(Alpha1, double);
119 
122  itkSetMacro(Alpha2, double);
123  itkGetConstMacro(Alpha2, double);
125 
126 #ifdef ITK_USE_CONCEPT_CHECKING
127  // Begin concept checking
128  itkConceptMacro( DoubleConvertibleToOutputCheck,
130  // End concept checking
131 #endif
132 
133 protected:
135  ~Hessian3DToVesselnessMeasureImageFilter() override = default;
136  void PrintSelf(std::ostream & os, Indent indent) const override;
137 
139  void GenerateData() override;
140 
141 private:
143 
144  double m_Alpha1;
145  double m_Alpha2;
146 };
147 } // end namespace itk
148 
149 #ifndef ITK_MANUAL_INSTANTIATION
150 #include "itkHessian3DToVesselnessMeasureImageFilter.hxx"
151 #endif
152 
153 #endif
Light weight base class for most itk classes.
Simulate a standard C array with copy semnatics.
Definition: itkFixedArray.h:51
Line filter to provide a vesselness measure for tubular objects from the hessian matrix.
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
#define itkConceptMacro(name, concept)
Templated n-dimensional image class.
Definition: itkImage.h:75
Computes the eigen-values of every input symmetric matrix pixel.