ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkUpdateShiSparseLevelSet.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
19#ifndef itkUpdateShiSparseLevelSet_h
20#define itkUpdateShiSparseLevelSet_h
21
22#include "itkImage.h"
29
30namespace itk
31{
40template <unsigned int VDimension, typename TEquationContainer>
41class ITK_TEMPLATE_EXPORT UpdateShiSparseLevelSet : public Object
42{
43public:
44 ITK_DISALLOW_COPY_AND_MOVE(UpdateShiSparseLevelSet);
45
50
52 itkNewMacro(Self);
53
55 itkOverrideGetNameOfClassMacro(UpdateShiSparseLevelSet);
56
57 static constexpr unsigned int ImageDimension = VDimension;
58
64
67
72
77
81
82 using EquationContainerType = TEquationContainer;
83 using EquationContainerPointer = typename EquationContainerType::Pointer;
84 using TermContainerPointer = typename EquationContainerType::TermContainerPointer;
85
86 itkGetModifiableObjectMacro(OutputLevelSet, LevelSetType);
87
89 void
91
94 itkSetObjectMacro(InputLevelSet, LevelSetType);
95 itkGetModifiableObjectMacro(InputLevelSet, LevelSetType);
98 itkGetMacro(RMSChangeAccumulator, LevelSetOutputRealType);
99
102 itkSetObjectMacro(EquationContainer, EquationContainerType);
103 itkGetModifiableObjectMacro(EquationContainer, EquationContainerType);
107 itkSetMacro(CurrentLevelSetId, IdentifierType);
108 itkGetMacro(CurrentLevelSetId, IdentifierType);
110protected:
112 ~UpdateShiSparseLevelSet() override = default;
113
114 // output
116
120
123
125
127
129 // this is the same as Procedure 2
130 // Input is a update image point m_UpdateImage
131 // Input is also ShiSparseLevelSetImagePointer
132 void
134
136 void
138
140 bool
142 const LevelSetOutputType & currentStatus,
143 const LevelSetOutputRealType & currentUpdate) const;
144
145private:
146 // input
149
150 using NodePairType = std::pair<LevelSetInputType, LevelSetOutputType>;
151};
152} // namespace itk
153
154#ifndef ITK_MANUAL_INSTANTIATION
155# include "itkUpdateShiSparseLevelSet.hxx"
156#endif
157
158#endif // itkUpdateShiSparseLevelSet_h
Templated n-dimensional image class.
Definition itkImage.h:89
SmartPointer< Self > Pointer
Definition itkImage.h:96
typename LayerType::const_iterator LayerConstIterator
typename LabelObjectType::LineType LabelObjectLineType
std::map< LayerIdType, LayerType > LayerMapType
typename LabelObjectType::Pointer LabelObjectPointer
std::map< InputType, OutputType, Functor::LexicographicCompare > LayerType
LabelObject< LayerIdType, VDimension > LabelObjectType
typename LayerMapType::const_iterator LayerMapConstIterator
typename LabelObjectType::LengthType LabelObjectLengthType
A neighborhood iterator which can take on an arbitrary shape.
Derived class for the shi representation of level-set function.
Implements transparent reference counting.
~UpdateShiSparseLevelSet() override=default
bool Con(const LevelSetInputType &idx, const LevelSetOutputType &currentStatus, const LevelSetOutputRealType &currentUpdate) const
typename EquationContainerType::TermContainerPointer TermContainerPointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
Definition itkIntTypes.h:90