ITK  5.2.0
Insight Toolkit
itkScalarChanAndVeseDenseLevelSetImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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 itkScalarChanAndVeseDenseLevelSetImageFilter_h
19 #define itkScalarChanAndVeseDenseLevelSetImageFilter_h
20 
24 
25 namespace itk
26 {
58 template <typename TInputImage,
59  typename TFeatureImage,
60  typename TOutputImage,
61  typename TFunction = ScalarChanAndVeseLevelSetFunction<TInputImage, TFeatureImage>,
62  class TSharedData = typename TFunction::SharedDataType>
64  : public MultiphaseDenseFiniteDifferenceImageFilter<TInputImage, TFeatureImage, TOutputImage, TFunction>
65 {
66 public:
67  ITK_DISALLOW_COPY_AND_ASSIGN(ScalarChanAndVeseDenseLevelSetImageFilter);
68 
73 
75  itkNewMacro(Self);
76 
79 
80  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
81 
83  using InputImageType = typename Superclass::InputImageType;
84  using InputImagePointer = typename Superclass::InputImagePointer;
85  using InputPointType = typename Superclass::InputPointType;
86  using ValueType = typename Superclass::ValueType;
87  using InputSpacingType = typename InputImageType::SpacingType;
88 
89  using FeatureImageType = TFeatureImage;
90  using FeatureImagePointer = typename FeatureImageType::Pointer;
91  using FeaturePixelType = typename FeatureImageType::PixelType;
95 
97  using OutputImageType = TOutputImage;
99  using OutputPixelType = typename OutputImageType::PixelType;
100 
101  using TimeStepType = typename Superclass::TimeStepType;
102  using FiniteDifferenceFunctionType = typename Superclass::FiniteDifferenceFunctionType;
103 
104  using FunctionType = TFunction;
105  using FunctionPointer = typename FunctionType::Pointer;
106 
107  using SharedDataType = TSharedData;
108  using SharedDataPointer = typename SharedDataType::Pointer;
109 
112 
113 #ifdef ITK_USE_CONCEPT_CHECKING
114  // Begin concept checking
115  itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<OutputPixelType>));
116  // End concept checking
117 #endif
118 
121  virtual void
123  {
124  this->SetInput(f);
125  }
126 
127 protected:
128  ScalarChanAndVeseDenseLevelSetImageFilter() { this->m_SharedData = SharedDataType::New(); }
129 
130  ~ScalarChanAndVeseDenseLevelSetImageFilter() override = default;
131 
133 
134  void
135  Initialize() override;
136 
137  void
138  InitializeIteration() override;
139 };
140 } // end namespace itk
141 
142 #ifndef ITK_MANUAL_INSTANTIATION
143 # include "itkScalarChanAndVeseDenseLevelSetImageFilter.hxx"
144 #endif
145 
146 #endif
itkScalarChanAndVeseLevelSetFunction.h
itk::ScalarChanAndVeseDenseLevelSetImageFilter::InputSpacingType
typename InputImageType::SpacingType InputSpacingType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:87
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:712
itkMultiphaseDenseFiniteDifferenceImageFilter.h
itk::ScalarChanAndVeseDenseLevelSetImageFilter::SharedDataType
TSharedData SharedDataType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:107
itk::ScalarChanAndVeseDenseLevelSetImageFilter::ValueType
typename Superclass::ValueType ValueType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:86
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureRegionType
typename FeatureImageType::RegionType FeatureRegionType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:94
itk::ScalarChanAndVeseDenseLevelSetImageFilter::SetFeatureImage
virtual void SetFeatureImage(const FeatureImagePointer f)
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:122
itk::SmartPointer< Self >
itk::ScalarChanAndVeseDenseLevelSetImageFilter::InputImageType
typename Superclass::InputImageType InputImageType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:83
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureImagePointer
typename FeatureImageType::Pointer FeatureImagePointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:90
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureIndexValueType
typename FeatureIndexType::IndexValueType FeatureIndexValueType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:93
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::ScalarChanAndVeseDenseLevelSetImageFilter::SharedDataPointer
typename SharedDataType::Pointer SharedDataPointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:108
itk::ScalarChanAndVeseDenseLevelSetImageFilter::InputImagePointer
typename Superclass::InputImagePointer InputImagePointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:84
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FiniteDifferenceFunctionType
typename Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:102
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FunctionPointer
typename FunctionType::Pointer FunctionPointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:105
itk::ScalarChanAndVeseDenseLevelSetImageFilter
Dense implementation of the Chan and Vese multiphase level set image filter.
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:63
itk::ScalarChanAndVeseDenseLevelSetImageFilter::TimeStepType
typename Superclass::TimeStepType TimeStepType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:101
itk::ScalarChanAndVeseDenseLevelSetImageFilter::ROIFilterPointer
typename ROIFilterType::Pointer ROIFilterPointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:111
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureImageType
TFeatureImage FeatureImageType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:89
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeaturePixelType
typename FeatureImageType::PixelType FeaturePixelType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:91
itk::ScalarChanAndVeseDenseLevelSetImageFilter::OutputPixelType
typename OutputImageType::PixelType OutputPixelType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:99
itkRegionOfInterestImageFilter.h
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:64
itk::ScalarChanAndVeseDenseLevelSetImageFilter::InputPointType
typename Superclass::InputPointType InputPointType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:85
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ScalarChanAndVeseDenseLevelSetImageFilter::IndexType
typename OutputImageType::IndexType IndexType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:98
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureIndexType
typename FeatureImageType::IndexType FeatureIndexType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:92
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:138
itk::ScalarChanAndVeseDenseLevelSetImageFilter::ScalarChanAndVeseDenseLevelSetImageFilter
ScalarChanAndVeseDenseLevelSetImageFilter()
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:128
itk::IndexValueType
signed long IndexValueType
Definition: itkIntTypes.h:90
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FunctionType
TFunction FunctionType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:104
itk::ScalarChanAndVeseDenseLevelSetImageFilter::m_SharedData
SharedDataPointer m_SharedData
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:132
itk::RegionOfInterestImageFilter
Extract a region of interest from the input image.
Definition: itkRegionOfInterestImageFilter.h:54
itk::MultiphaseDenseFiniteDifferenceImageFilter
Definition: itkMultiphaseDenseFiniteDifferenceImageFilter.h:105
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90