ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkBayesianClassifierImageFilter.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 itkBayesianClassifierImageFilter_h
19#define itkBayesianClassifierImageFilter_h
20
21#include "itkVectorImage.h"
25
26namespace itk
27{
80template <typename TInputVectorImage,
81 typename TLabelsType = unsigned char,
82 typename TPosteriorsPrecisionType = double,
83 typename TPriorsPrecisionType = double>
84class ITK_TEMPLATE_EXPORT BayesianClassifierImageFilter
85 : public ImageToImageFilter<TInputVectorImage, Image<TLabelsType, TInputVectorImage::ImageDimension>>
86{
87public:
88 ITK_DISALLOW_COPY_AND_MOVE(BayesianClassifierImageFilter);
89
93
96
98 itkNewMacro(Self);
99
101 itkOverrideGetNameOfClassMacro(BayesianClassifierImageFilter);
102
104 using typename Superclass::InputImageType;
105
107 static constexpr unsigned int Dimension = InputImageType::ImageDimension;
108
110 using InputImagePointer = typename InputImageType::ConstPointer;
112 using ImageRegionType = typename InputImageType::RegionType;
113
117
119 using InputPixelType = typename InputImageType::PixelType;
121
130
134 using MembershipImageType = TInputVectorImage;
135 using MembershipPixelType = typename MembershipImageType::PixelType;
136 using MembershipImagePointer = typename MembershipImageType::Pointer;
138
147
151
152 using typename Superclass::DataObjectPointer;
153
156
159
161
164 void
166 itkGetConstMacro(SmoothingFilter, SmoothingFilterPointer);
168
170 virtual void
172
174 itkSetMacro(NumberOfSmoothingIterations, unsigned int);
175 itkGetConstMacro(NumberOfSmoothingIterations, unsigned int);
177
183
184 itkConceptMacro(UnsignedIntConvertibleToLabelsCheck, (Concept::Convertible<unsigned int, TLabelsType>));
191 InputPriorsPosteriorsMultiplyOperatorCheck,
193
194protected:
196 ~BayesianClassifierImageFilter() override = default;
197 void
198 PrintSelf(std::ostream & os, Indent indent) const override;
199
200 void
201 GenerateData() override;
202
203 void
205
209 virtual void
211
213 virtual void
215
217 virtual void
219
223
224private:
225 bool m_UserProvidedPriors{ false };
226
228
230
232};
233} // end namespace itk
234
235#ifndef ITK_MANUAL_INSTANTIATION
236# include "itkBayesianClassifierImageFilter.hxx"
237#endif
238
239#endif
~BayesianClassifierImageFilter() override=default
VectorImage< TPriorsPrecisionType, Self::Dimension > PriorsImageType
typename PosteriorsImageType::Pointer PosteriorsImagePointer
virtual void NormalizeAndSmoothPosteriors()
typename SmoothingFilterType::Pointer SmoothingFilterPointer
typename OutputImageType::Pointer OutputImagePointer
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
ImageRegionConstIterator< PriorsImageType > PriorsImageIteratorType
itk::Image< TPosteriorsPrecisionType, Self::Dimension > ExtractedComponentImageType
ImageToImageFilter< TInputVectorImage, Image< TLabelsType, TInputVectorImage::ImageDimension > > Superclass
ImageRegionConstIterator< MembershipImageType > MembershipImageIteratorType
typename PriorsImageType::PixelType PriorsPixelType
typename PriorsImageType::Pointer PriorsImagePointer
ImageRegionIterator< OutputImageType > OutputImageIteratorType
typename PosteriorsImageType::PixelType PosteriorsPixelType
typename MembershipImageType::Pointer MembershipImagePointer
PosteriorsImageType * GetPosteriorImage()
typename InputImageType::RegionType ImageRegionType
virtual void SetPriors(const PriorsImageType *)
typename InputImageType::PixelType InputPixelType
ImageRegionConstIterator< InputImageType > InputImageIteratorType
ImageRegionIterator< PosteriorsImageType > PosteriorsImageIteratorType
void PrintSelf(std::ostream &os, Indent indent) const override
Image< TLabelsType, Self::Dimension > OutputImageType
void SetSmoothingFilter(SmoothingFilterType *)
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
ImageToImageFilter< ExtractedComponentImageType, ExtractedComponentImageType > SmoothingFilterType
typename MembershipImageType::PixelType MembershipPixelType
void GenerateOutputInformation() override
typename InputImageType::ConstPointer InputImagePointer
VectorImage< TPosteriorsPrecisionType, Self::Dimension > PosteriorsImageType
typename OutputImageType::PixelType OutputPixelType
A multi-dimensional iterator templated over image type that walks a region of pixels.
A multi-dimensional iterator templated over image type that walks a region of pixels.
ProcessObject::DataObjectPointer MakeOutput(ProcessObject::DataObjectPointerArraySizeType idx) override
DataObject::Pointer DataObjectPointer
Templated n-dimensional image class.
Definition itkImage.h:89
Control indentation during Print() invocation.
Definition itkIndent.h:50
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Implements transparent reference counting.
A decision rule that returns the class label with the largest discriminant score.
Templated n-dimensional vector image class.
VariableLengthVector< TPriorsPrecisionType > PixelType
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....