ITK  5.4.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  * https://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 {
55 template <typename TInputImage,
56  typename TFeatureImage,
57  typename TOutputImage,
58  typename TFunction = ScalarChanAndVeseLevelSetFunction<TInputImage, TFeatureImage>,
59  class TSharedData = typename TFunction::SharedDataType>
61  : public MultiphaseDenseFiniteDifferenceImageFilter<TInputImage, TFeatureImage, TOutputImage, TFunction>
62 {
63 public:
64  ITK_DISALLOW_COPY_AND_MOVE(ScalarChanAndVeseDenseLevelSetImageFilter);
65 
70 
72  itkNewMacro(Self);
73 
75  itkOverrideGetNameOfClassMacro(ScalarChanAndVeseDenseLevelSetImageFilter);
76 
77  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
78 
80  using typename Superclass::InputImageType;
81  using typename Superclass::InputImagePointer;
82  using typename Superclass::InputPointType;
83  using typename Superclass::ValueType;
84  using InputSpacingType = typename InputImageType::SpacingType;
85 
86  using FeatureImageType = TFeatureImage;
88  using FeaturePixelType = typename FeatureImageType::PixelType;
92 
94  using OutputImageType = TOutputImage;
96  using OutputPixelType = typename OutputImageType::PixelType;
97 
98  using typename Superclass::TimeStepType;
99  using typename Superclass::FiniteDifferenceFunctionType;
100 
101  using FunctionType = TFunction;
103 
104  using SharedDataType = TSharedData;
106 
109 
110 #ifdef ITK_USE_CONCEPT_CHECKING
111  // Begin concept checking
112  itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<OutputPixelType>));
113  // End concept checking
114 #endif
115 
118  virtual void
120  {
121  this->SetInput(f);
122  }
123 
124 protected:
126 
127  ~ScalarChanAndVeseDenseLevelSetImageFilter() override = default;
128 
129  SharedDataPointer m_SharedData{};
130 
131  void
132  Initialize() override;
133 
134  void
135  InitializeIteration() override;
136 };
137 } // end namespace itk
138 
139 #ifndef ITK_MANUAL_INSTANTIATION
140 # include "itkScalarChanAndVeseDenseLevelSetImageFilter.hxx"
141 #endif
142 
143 #endif
itkScalarChanAndVeseLevelSetFunction.h
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::ScalarChanAndVeseDenseLevelSetImageFilter::InputSpacingType
typename InputImageType::SpacingType InputSpacingType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:84
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:714
itkMultiphaseDenseFiniteDifferenceImageFilter.h
itk::ScalarChanAndVeseDenseLevelSetImageFilter::SharedDataType
TSharedData SharedDataType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:104
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureRegionType
typename FeatureImageType::RegionType FeatureRegionType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:91
itk::ScalarChanAndVeseDenseLevelSetImageFilter::SetFeatureImage
virtual void SetFeatureImage(const FeatureImagePointer f)
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:119
itk::SmartPointer< Self >
itk::IndexValueType
long IndexValueType
Definition: itkIntTypes.h:90
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureImagePointer
typename FeatureImageType::Pointer FeatureImagePointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:87
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureIndexValueType
typename FeatureIndexType::IndexValueType FeatureIndexValueType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:90
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:105
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FunctionPointer
typename FunctionType::Pointer FunctionPointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:102
itk::ScalarChanAndVeseDenseLevelSetImageFilter
Dense implementation of the Chan and Vese multiphase level set image filter.
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:60
itk::ScalarChanAndVeseDenseLevelSetImageFilter::ROIFilterPointer
typename ROIFilterType::Pointer ROIFilterPointer
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:108
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureImageType
TFeatureImage FeatureImageType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:86
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeaturePixelType
typename FeatureImageType::PixelType FeaturePixelType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:88
itk::ScalarChanAndVeseDenseLevelSetImageFilter::OutputPixelType
typename OutputImageType::PixelType OutputPixelType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:96
itkRegionOfInterestImageFilter.h
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
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:95
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FeatureIndexType
typename FeatureImageType::IndexType FeatureIndexType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:89
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:139
itk::ScalarChanAndVeseDenseLevelSetImageFilter::ScalarChanAndVeseDenseLevelSetImageFilter
ScalarChanAndVeseDenseLevelSetImageFilter()
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:125
itk::ScalarChanAndVeseDenseLevelSetImageFilter::FunctionType
TFunction FunctionType
Definition: itkScalarChanAndVeseDenseLevelSetImageFilter.h:101
New
static Pointer New()
itk::RegionOfInterestImageFilter
Extract a region of interest from the input image.
Definition: itkRegionOfInterestImageFilter.h:54
itk::MultiphaseDenseFiniteDifferenceImageFilter
Definition: itkMultiphaseDenseFiniteDifferenceImageFilter.h:102
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90