ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkGeodesicActiveContourLevelSetFunction.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 itkGeodesicActiveContourLevelSetFunction_h
19#define itkGeodesicActiveContourLevelSetFunction_h
20
22
23namespace itk
24{
72template <typename TImageType, typename TFeatureImageType = TImageType>
74 : public SegmentationLevelSetFunction<TImageType, TFeatureImageType>
75{
76public:
77 ITK_DISALLOW_COPY_AND_MOVE(GeodesicActiveContourLevelSetFunction);
78
84 using FeatureImageType = TFeatureImageType;
85
87 itkNewMacro(Self);
88
90 itkOverrideGetNameOfClassMacro(GeodesicActiveContourLevelSetFunction);
91
93 using typename Superclass::ImageType;
94 using typename Superclass::NeighborhoodType;
95 using typename Superclass::ScalarValueType;
96 using typename Superclass::FeatureScalarType;
97 using typename Superclass::RadiusType;
98 using typename Superclass::FloatOffsetType;
99 using typename Superclass::VectorImageType;
100 using typename Superclass::GlobalDataStruct;
101
103 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
104
106 void
108
110 void
112
115 CurvatureSpeed(const NeighborhoodType & neighborhood,
116 const FloatOffsetType & offset,
117 GlobalDataStruct * gd) const override
118 {
119 return this->PropagationSpeed(neighborhood, offset, gd);
120 }
121
124 void
125 SetDerivativeSigma(const double v)
126 {
128 }
129 double
131 {
132 return m_DerivativeSigma;
133 }
134
135
136 void
145
146protected:
155
157
158 void
159 PrintSelf(std::ostream & os, Indent indent) const override;
160
161private:
163};
164} // end namespace itk
165
166#ifndef ITK_MANUAL_INSTANTIATION
167# include "itkGeodesicActiveContourLevelSetFunction.hxx"
168#endif
169
170#endif
ScalarValueType CurvatureSpeed(const NeighborhoodType &neighborhood, const FloatOffsetType &offset, GlobalDataStruct *gd) const override
SegmentationLevelSetFunction< TImageType, TFeatureImageType > Superclass
~GeodesicActiveContourLevelSetFunction() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
Control indentation during Print() invocation.
Definition itkIndent.h:50
virtual void SetAdvectionWeight(const ScalarValueType a)
virtual void SetPropagationWeight(const ScalarValueType p)
virtual void SetCurvatureWeight(const ScalarValueType c)
ConstNeighborhoodIterator< OutputImageType, DefaultBoundaryConditionType > NeighborhoodType
ScalarValueType PropagationSpeed(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd) const override
typename ConstNeighborhoodIterator< OutputImageType >::RadiusType RadiusType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....