ITK  6.0.0
Insight Toolkit
itkNarrowBandCurvesLevelSetImageFilter.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 itkNarrowBandCurvesLevelSetImageFilter_h
19#define itkNarrowBandCurvesLevelSetImageFilter_h
20
23
24namespace itk
25{
100template <typename TInputImage, typename TFeatureImage, typename TOutputPixelType = float>
101class ITK_TEMPLATE_EXPORT NarrowBandCurvesLevelSetImageFilter
102 : public NarrowBandLevelSetImageFilter<TInputImage,
103 TFeatureImage,
104 TOutputPixelType,
105 Image<TOutputPixelType, TInputImage::ImageDimension>>
106{
107public:
108 ITK_DISALLOW_COPY_AND_MOVE(NarrowBandCurvesLevelSetImageFilter);
109
113 TFeatureImage,
114 TOutputPixelType,
118
120 using typename Superclass::ValueType;
121 using typename Superclass::OutputImageType;
122 using typename Superclass::FeatureImageType;
123
127
129 itkOverrideGetNameOfClassMacro(NarrowBandCurvesLevelSetImageFilter);
130
132 itkNewMacro(Self);
133
135 void
137 {
138 m_CurvesFunction->SetDerivativeSigma(value);
139 this->Modified();
140 }
143 float
145 {
146 return m_CurvesFunction->GetDerivativeSigma();
147 }
148
149#ifdef ITK_USE_CONCEPT_CHECKING
150 // Begin concept checking
151 itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<TOutputPixelType>));
152 // End concept checking
153#endif
154
155protected:
158
159 void
160 PrintSelf(std::ostream & os, Indent indent) const override;
161
164 void
165 GenerateData() override;
166
167private:
168 CurvesFunctionPointer m_CurvesFunction{};
169};
170} // end namespace itk
171
172#ifndef ITK_MANUAL_INSTANTIATION
173# include "itkNarrowBandCurvesLevelSetImageFilter.hxx"
174#endif
175
176#endif
This function is used in CurvesLevelSetImageFilter to segment structures in images based on user supp...
Templated n-dimensional image class.
Definition: itkImage.h:89
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Segments structures in images based on user supplied edge potential map.
void PrintSelf(std::ostream &os, Indent indent) const override
~NarrowBandCurvesLevelSetImageFilter() override=default
A base class which defines the API for implementing a special class of image segmentation filters usi...
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....