ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
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
42
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;
65 using RegionType = typename TInputImage::RegionType;
66 using SizeType = typename TInputImage::SizeType;
67 using IndexType = typename TInputImage::IndexType;
68 using PixelType = typename TInputImage::PixelType;
69 using OffsetType = typename TInputImage::OffsetType;
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
83 using RadiusType = typename KernelType::SizeType;
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);
94
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
120}; // end of class
121} // end namespace itk
122
123#ifndef ITK_MANUAL_INSTANTIATION
124# include "itkMovingHistogramMorphologyImageFilter.hxx"
125#endif
126
127#endif
typename OutputImageType::RegionType OutputImageRegionType
Control indentation during Print() invocation.
Definition itkIndent.h:50
~MovingHistogramMorphologyImageFilter() override=default
MovingHistogramImageFilter< TInputImage, TOutputImage, TKernel, typename Function::MorphologyHistogram< typename TInputImage::PixelType, typename std::greater< typename TInputImage::PixelType > > > Superclass
void PrintSelf(std::ostream &os, Indent indent) const override
void ConfigureHistogram(THistogram &histogram) override
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....