ITK  6.0.0
Insight Toolkit
itkUnconstrainedRegionBasedLevelSetFunctionSharedData.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 itkUnconstrainedRegionBasedLevelSetFunctionSharedData_h
19#define itkUnconstrainedRegionBasedLevelSetFunctionSharedData_h
20
22
23namespace itk
24{
57template <typename TInputImage, typename TFeatureImage, typename TSingleData>
59 : public RegionBasedLevelSetFunctionSharedData<TInputImage, TFeatureImage, TSingleData>
60{
61public:
63
68
69 static constexpr unsigned int ImageDimension = TFeatureImage::ImageDimension;
70
72 itkNewMacro(Self);
73
75
76 using InputImageType = TInputImage;
77 using typename Superclass::InputImagePointer;
79 using typename Superclass::InputPixelType;
80 using typename Superclass::InputRegionType;
81 using typename Superclass::InputSizeType;
82 using typename Superclass::InputSizeValueType;
83 using typename Superclass::InputSpacingType;
84 using typename Superclass::InputIndexType;
86 using typename Superclass::InputPointType;
87
88 using FeatureImageType = TFeatureImage;
91 using typename Superclass::FeaturePixelType;
92 using typename Superclass::FeatureRegionType;
93 using typename Superclass::FeatureSizeType;
95 using typename Superclass::FeatureSpacingType;
96 using typename Superclass::FeatureIndexType;
97 using typename Superclass::FeaturePointType;
98
99 using typename Superclass::ListPixelType;
100 using typename Superclass::ListImageType;
101 using typename Superclass::ListImagePointer;
103 using typename Superclass::ListRegionType;
104 using typename Superclass::ListSizeType;
105 using typename Superclass::ListSizeValueType;
106 using typename Superclass::ListSpacingType;
107 using typename Superclass::ListIndexType;
108 using typename Superclass::ListIndexValueType;
109 using typename Superclass::ListPointType;
110 using typename Superclass::ListIteratorType;
111
112 using typename Superclass::CentroidVectorType;
113 using typename Superclass::SampleType;
114 using typename Superclass::TreeGeneratorType;
115 using typename Superclass::TreePointer;
116 using typename Superclass::TreeType;
117 using typename Superclass::KdTreePointer;
118
119 using LevelSetDataType = TSingleData;
120 using typename Superclass::LevelSetDataPointer;
123
124 void
126 {
128
129 for (unsigned int i = 0; i < this->m_FunctionCount; ++i)
130 {
131 L.push_back(i);
132 }
133 this->m_NearestNeighborListImage->FillBuffer(L);
134 }
135
136protected:
138 : Superclass()
139 {}
141};
142} // end namespace itk
143
144#endif
Light weight base class for most itk classes.
Helper class used to share data in the ScalarChanAndVeseLevelSetFunction.
itk::Statistics::ListSample< CentroidVectorType > SampleType
typename LevelSetDataPointerVector::iterator LevelSetDataPointerVectorIterator
typename FeatureImageType::ConstPointer FeatureImageConstPointer
ImageRegionIteratorWithIndex< ListImageType > ListIteratorType
Image< ListPixelType, Self::ImageDimension > ListImageType
itk::Statistics::KdTreeGenerator< SampleType > TreeGeneratorType
Helper class used to share data in the ScalarChanAndVeseLevelSetFunction.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....