ITK  6.0.0
Insight Toolkit
itkCropLabelMapFilter.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/*=========================================================================
19 *
20 * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21 *
22 * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23 *
24 * For complete copyright, license and disclaimer of warranty information
25 * please refer to the NOTICE file at the top of the ITK source tree.
26 *
27 *=========================================================================*/
28#ifndef itkCropLabelMapFilter_h
29#define itkCropLabelMapFilter_h
30
32
33namespace itk
34{
54template <typename TInputImage>
55class ITK_TEMPLATE_EXPORT CropLabelMapFilter : public ChangeRegionLabelMapFilter<TInputImage>
56{
57public:
58 ITK_DISALLOW_COPY_AND_MOVE(CropLabelMapFilter);
59
65
67 itkOverrideGetNameOfClassMacro(CropLabelMapFilter);
68
70 itkNewMacro(Self);
71
73 using typename Superclass::OutputImageType;
74 using typename Superclass::OutputImagePointer;
75 using typename Superclass::OutputImageRegionType;
76 using typename Superclass::OutputImagePixelType;
77
79 using InputImageType = TInputImage;
83 using InputImagePixelType = typename InputImageType::PixelType;
84 using LabelObjectType = typename InputImageType::LabelObjectType;
85
86 using PixelType = typename InputImageType::PixelType;
90
91 using TOutputImage = TInputImage;
92
94 static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
95 static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
96 static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
97
99 itkSetMacro(UpperBoundaryCropSize, SizeType);
100 itkGetMacro(UpperBoundaryCropSize, SizeType);
101 itkSetMacro(LowerBoundaryCropSize, SizeType);
102 itkGetMacro(LowerBoundaryCropSize, SizeType);
105 void
106 SetCropSize(const SizeType & size)
107 {
108 this->SetUpperBoundaryCropSize(size);
109 this->SetLowerBoundaryCropSize(size);
110 }
111
112protected:
114 {
115 m_UpperBoundaryCropSize.Fill(0);
116 m_LowerBoundaryCropSize.Fill(0);
117 }
118
119 ~CropLabelMapFilter() override = default;
120
121 void
123
124 void
125 PrintSelf(std::ostream & os, Indent indent) const override;
126
127private:
128 SizeType m_UpperBoundaryCropSize{};
129 SizeType m_LowerBoundaryCropSize{};
130};
131} // end namespace itk
132
133#ifndef ITK_MANUAL_INSTANTIATION
134# include "itkCropLabelMapFilter.hxx"
135#endif
136
137#endif
Change the region of a label map.
typename InputImageType::ConstPointer InputImageConstPointer
typename InputImageType::PixelType InputImagePixelType
typename InputImageType::SizeType SizeType
typename InputImageType::IndexType IndexType
typename InputImageType::Pointer InputImagePointer
typename InputImageType::RegionType RegionType
typename InputImageType::RegionType InputImageRegionType
typename InputImageType::LabelObjectType LabelObjectType
typename InputImageType::PixelType PixelType
Crop a LabelMap image.
void SetCropSize(const SizeType &size)
void PrintSelf(std::ostream &os, Indent indent) const override
void GenerateOutputInformation() override
~CropLabelMapFilter() override=default
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....