ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkAttributeOpeningLabelMapFilter.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 itkAttributeOpeningLabelMapFilter_h
19 #define itkAttributeOpeningLabelMapFilter_h
20 
23 
24 namespace itk {
42 template<typename TImage, typename TAttributeAccessor=
43  typename Functor::AttributeLabelObjectAccessor< typename TImage::LabelObjectType > >
44 class ITK_TEMPLATE_EXPORT AttributeOpeningLabelMapFilter :
45  public InPlaceLabelMapFilter<TImage>
46 {
47 public:
48  ITK_DISALLOW_COPY_AND_ASSIGN(AttributeOpeningLabelMapFilter);
49 
55 
57  using ImageType = TImage;
58  using ImagePointer = typename ImageType::Pointer;
59  using ImageConstPointer = typename ImageType::ConstPointer;
60  using PixelType = typename ImageType::PixelType;
61  using IndexType = typename ImageType::IndexType;
62 
63  using LabelObjectType = typename Superclass::LabelObjectType;
64 
65  using AttributeAccessorType = TAttributeAccessor;
66  using AttributeValueType = typename AttributeAccessorType::AttributeValueType;
67 
69  static constexpr unsigned int ImageDimension = TImage::ImageDimension;
70 
72  itkNewMacro(Self);
73 
75  itkTypeMacro(AttributeOpeningLabelMapFilter,
77 
78 #ifdef ITK_USE_CONCEPT_CHECKING
79  // Begin concept checking
80 /* itkConceptMacro(InputEqualityComparableCheck,
81  (Concept::EqualityComparable<InputImagePixelType>));
82  itkConceptMacro(IntConvertibleToInputCheck,
83  (Concept::Convertible<int, InputImagePixelType>));
84  itkConceptMacro(InputOStreamWritableCheck,
85  (Concept::OStreamWritable<InputImagePixelType>));*/
86  // End concept checking
87 #endif
88 
92  itkGetConstMacro(Lambda, AttributeValueType);
93  itkSetMacro(Lambda, AttributeValueType);
95 
102  itkGetConstMacro( ReverseOrdering, bool );
103  itkSetMacro( ReverseOrdering, bool );
104  itkBooleanMacro( ReverseOrdering );
106 
107 protected:
109  ~AttributeOpeningLabelMapFilter() override = default;
110 
111  void GenerateData() override;
112 
113  void PrintSelf(std::ostream& os, Indent indent) const override;
114 
115 private:
118 
119 }; // end of class
120 
121 } // end namespace itk
122 
123 #ifndef ITK_MANUAL_INSTANTIATION
124 #include "itkAttributeOpeningLabelMapFilter.hxx"
125 #endif
126 
127 #endif
Light weight base class for most itk classes.
typename AttributeAccessorType::AttributeValueType AttributeValueType
typename ImageType::ConstPointer ImageConstPointer
Base class for filters that takes an image as input and overwrites that image as the output...
remove the objects according to the value of their attribute
typename Superclass::LabelObjectType LabelObjectType
Control indentation during Print() invocation.
Definition: itkIndent.h:49