ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkHMaximaImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkHMaximaImageFilter_h
19 #define itkHMaximaImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 
23 namespace itk
24 {
56 template< typename TInputImage, typename TOutputImage >
57 class ITK_TEMPLATE_EXPORT HMaximaImageFilter:
58  public ImageToImageFilter< TInputImage, TOutputImage >
59 {
60 public:
61  ITK_DISALLOW_COPY_AND_ASSIGN(HMaximaImageFilter);
62 
68 
70  using InputImageType = TInputImage;
71  using InputImagePointer = typename InputImageType::Pointer;
72  using InputImageConstPointer = typename InputImageType::ConstPointer;
74  using InputImagePixelType = typename InputImageType::PixelType;
75  using OutputImageType = TOutputImage;
76  using OutputImagePointer = typename OutputImageType::Pointer;
77  using OutputImageConstPointer = typename OutputImageType::ConstPointer;
79  using OutputImagePixelType = typename OutputImageType::PixelType;
80 
82  static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
83  static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
84 
86  itkNewMacro(Self);
87 
89  itkTypeMacro(HMaximaImageFilter,
91 
96  itkSetMacro(Height, InputImagePixelType);
97  itkGetConstMacro(Height, InputImagePixelType);
99 
106  itkSetMacro(FullyConnected, bool);
107  itkGetConstReferenceMacro(FullyConnected, bool);
108  itkBooleanMacro(FullyConnected);
110 
111 #ifdef ITK_USE_CONCEPT_CHECKING
112  // Begin concept checking
113  itkConceptMacro( InputEqualityComparableCheck,
115  itkConceptMacro( IntConvertibleToInputCheck,
117  itkConceptMacro( InputOStreamWritableCheck,
119  // End concept checking
120 #endif
121 
122 protected:
124  ~HMaximaImageFilter() override = default;
125  void PrintSelf(std::ostream & os, Indent indent) const override;
126 
130  void GenerateInputRequestedRegion() override;
131 
133  void EnlargeOutputRequestedRegion( DataObject *itkNotUsed(output) ) override;
134 
136  void GenerateData() override;
137 
138 private:
140  unsigned long m_NumberOfIterationsUsed{ 1 };
141  bool m_FullyConnected{ false };
142 }; // end of class
143 } // end namespace itk
144 
145 #ifndef ITK_MANUAL_INSTANTIATION
146 #include "itkHMaximaImageFilter.hxx"
147 #endif
148 
149 #endif
typename OutputImageType::Pointer OutputImagePointer
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Suppress local maxima whose height above the baseline is less than h.
InputImagePixelType m_Height
Base class for all process objects that output image data.
typename OutputImageType::PixelType OutputImagePixelType
typename InputImageType::PixelType InputImagePixelType
typename InputImageType::Pointer InputImagePointer
typename OutputImageType::RegionType OutputImageRegionType
TOutputImage OutputImageType
typename OutputImageType::ConstPointer OutputImageConstPointer
typename InputImageType::RegionType InputImageRegionType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
#define itkConceptMacro(name, concept)
typename InputImageType::ConstPointer InputImageConstPointer
Base class for all data objects in ITK.