ITK  5.2.0
Insight Toolkit
itkMaximumProjectionImageFilter.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  * http://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 itkMaximumProjectionImageFilter_h
19 #define itkMaximumProjectionImageFilter_h
20 
22 #include "itkConceptChecking.h"
23 
24 namespace itk
25 {
46 namespace Functor
47 {
48 template <typename TInputPixel>
50 {
51 public:
53  ~MaximumAccumulator() = default;
54 
55  inline void
57  {
59  }
60 
61  inline void
62  operator()(const TInputPixel & input)
63  {
64  m_Maximum = std::max(m_Maximum, input);
65  }
66 
67  inline TInputPixel
69  {
70  return m_Maximum;
71  }
72 
73  TInputPixel m_Maximum;
74 };
75 } // namespace Functor
76 
77 template <typename TInputImage, typename TOutputImage>
79  : public ProjectionImageFilter<TInputImage,
80  TOutputImage,
81  Functor::MaximumAccumulator<typename TInputImage::PixelType>>
82 {
83 public:
84  ITK_DISALLOW_COPY_AND_MOVE(MaximumProjectionImageFilter);
85 
87  using Superclass =
89 
90  using InputImageType = TInputImage;
91  using InputPixelType = typename InputImageType::PixelType;
92 
95 
98 
100  itkNewMacro(Self);
101 
102 #ifdef ITK_USE_CONCEPT_CHECKING
103  // Begin concept checking
104  itkConceptMacro(InputPixelTypeGreaterThanComparable, (Concept::GreaterThanComparable<InputPixelType>));
105  itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<InputPixelType>));
106  // End concept checking
107 #endif
108 
109 protected:
110  MaximumProjectionImageFilter() = default;
111  ~MaximumProjectionImageFilter() override = default;
112 }; // end
113  // MaximumProjectionImageFilter
114 } // end namespace itk
115 
116 #endif
itkProjectionImageFilter.h
itk::Functor::MaximumAccumulator::MaximumAccumulator
MaximumAccumulator(SizeValueType)
Definition: itkMaximumProjectionImageFilter.h:52
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:714
itk::Concept::GreaterThanComparable
Definition: itkConceptChecking.h:284
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:97
itkConceptChecking.h
itk::SmartPointer< Self >
itk::MaximumProjectionImageFilter
Maximum projection.
Definition: itkMaximumProjectionImageFilter.h:78
itk::MaximumProjectionImageFilter::MaximumProjectionImageFilter
MaximumProjectionImageFilter()=default
itk::ProjectionImageFilter
Implements an accumulation of an image along a selected direction.
Definition: itkProjectionImageFilter.h:57
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::MaximumProjectionImageFilter::InputPixelType
typename InputImageType::PixelType InputPixelType
Definition: itkMaximumProjectionImageFilter.h:91
itk::Functor::MaximumAccumulator::m_Maximum
TInputPixel m_Maximum
Definition: itkMaximumProjectionImageFilter.h:73
itk::Functor::MaximumAccumulator::~MaximumAccumulator
~MaximumAccumulator()=default
itk::ImageToImageFilter::InputImageType
TInputImage InputImageType
Definition: itkImageToImageFilter.h:129
itk::MaximumProjectionImageFilter::~MaximumProjectionImageFilter
~MaximumProjectionImageFilter() override=default
itk::Functor::MaximumAccumulator
Definition: itkMaximumProjectionImageFilter.h:49
itk::Functor::MaximumAccumulator::Initialize
void Initialize()
Definition: itkMaximumProjectionImageFilter.h:56
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:138
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
itk::Functor::MaximumAccumulator::GetValue
TInputPixel GetValue()
Definition: itkMaximumProjectionImageFilter.h:68
itk::Functor::MaximumAccumulator::operator()
void operator()(const TInputPixel &input)
Definition: itkMaximumProjectionImageFilter.h:62