ITK  6.0.0
Insight Toolkit
itkMovingHistogramMorphologyImageFilter.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 itkMovingHistogramMorphologyImageFilter_h
19#define itkMovingHistogramMorphologyImageFilter_h
20
24#include <list>
25#include <map>
26
27namespace itk
28{
29
43template <typename TInputImage, typename TOutputImage, typename TKernel, typename THistogram>
44class ITK_TEMPLATE_EXPORT MovingHistogramMorphologyImageFilter
45 : public MovingHistogramImageFilter<TInputImage, TOutputImage, TKernel, THistogram>
46{
47public:
48 ITK_DISALLOW_COPY_AND_MOVE(MovingHistogramMorphologyImageFilter);
49
55
57 itkNewMacro(Self);
58
60 itkOverrideGetNameOfClassMacro(MovingHistogramMorphologyImageFilter);
61
63 using InputImageType = TInputImage;
64 using OutputImageType = TOutputImage;
68 using PixelType = typename TInputImage::PixelType;
69 using OffsetType = typename TInputImage::OffsetType;
70 using typename Superclass::OutputImageRegionType;
71 using OutputPixelType = typename TOutputImage::PixelType;
72
74 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
75
77 using KernelType = TKernel;
78
80 using KernelIteratorType = typename KernelType::ConstIterator;
81
84
85 using OffsetListType = typename std::list<OffsetType>;
86
87 using OffsetMapType = typename std::map<OffsetType, OffsetListType, Functor::LexicographicCompare>;
88
91 itkSetMacro(Boundary, PixelType);
92 itkGetConstMacro(Boundary, PixelType);
97 static bool
99 {
100 return THistogram::UseVectorBasedAlgorithm();
101 }
102
103protected:
106 void
107 PrintSelf(std::ostream & os, Indent indent) const override;
108
110 // void ThreadedGenerateData (const OutputImageRegionType&
111 // outputRegionForThread,
112 // ThreadIdType threadId);
113
116 void
117 ConfigureHistogram(THistogram & histogram) override;
118
119 PixelType m_Boundary{};
120}; // end of class
121} // end namespace itk
122
123#ifndef ITK_MANUAL_INSTANTIATION
124# include "itkMovingHistogramMorphologyImageFilter.hxx"
125#endif
126
127#endif
typename TInputImage::RegionType RegionType
typename TInputImage::SizeType SizeType
typename TInputImage::SizeType RadiusType
typename TInputImage::IndexType IndexType
typename TOutputImage::PixelType OutputPixelType
typename TInputImage::OffsetType OffsetType
Base class for all process objects that output image data.
TOutputImage OutputImageType
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Implements a generic moving histogram algorithm.
typename KernelType::ConstIterator KernelIteratorType
typename TInputImage::PixelType PixelType
typename std::list< OffsetType > OffsetListType
typename std::map< OffsetType, OffsetListType, Functor::LexicographicCompare > OffsetMapType
Base class for MovingHistogramDilateImageFilter and MovingHistogramErodeImageFilter.
~MovingHistogramMorphologyImageFilter() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
void ConfigureHistogram(THistogram &histogram) override
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....