ITK  6.0.0
Insight Toolkit
itkShrinkImageFilter.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 itkShrinkImageFilter_h
29#define itkShrinkImageFilter_h
30
32
33namespace itk
34{
67template <typename TInputImage, typename TOutputImage>
68class ITK_TEMPLATE_EXPORT ShrinkImageFilter : public ImageToImageFilter<TInputImage, TOutputImage>
69{
70public:
71 ITK_DISALLOW_COPY_AND_MOVE(ShrinkImageFilter);
79
81 itkNewMacro(Self);
82
84 itkOverrideGetNameOfClassMacro(ShrinkImageFilter);
85
87 using OutputImageType = TOutputImage;
88 using InputImageType = TInputImage;
92
95 using OutputOffsetType = typename TOutputImage::OffsetType;
96
99
101 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
102 static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
103
105
108 itkSetMacro(ShrinkFactors, ShrinkFactorsType);
109 void
110 SetShrinkFactors(unsigned int factor);
111 void
112 SetShrinkFactor(unsigned int i, unsigned int factor);
116 itkGetConstReferenceMacro(ShrinkFactors, ShrinkFactorsType);
117
125 void
127
133 void
135
136#ifdef ITK_USE_CONCEPT_CHECKING
137 // Begin concept checking
138 itkConceptMacro(InputConvertibleToOutputCheck,
141 // End concept checking
142#endif
143
144protected:
146 ~ShrinkImageFilter() override = default;
147 void
148 PrintSelf(std::ostream & os, Indent indent) const override;
149
160 void
161 DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
162
163
164private:
165 ShrinkFactorsType m_ShrinkFactors{};
166};
167} // end namespace itk
168
169#ifndef ITK_MANUAL_INSTANTIATION
170# include "itkShrinkImageFilter.hxx"
171#endif
172
173#endif
Base class for all process objects that output image data.
typename OutputImageType::RegionType OutputImageRegionType
TOutputImage OutputImageType
typename OutputImageType::Pointer OutputImagePointer
Base class for filters that take an image as input and produce an image as output.
typename InputImageType::ConstPointer InputImageConstPointer
typename InputImageType::Pointer InputImagePointer
Control indentation during Print() invocation.
Definition: itkIndent.h:50
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Reduce the size of an image by an integer factor in each dimension.
void GenerateInputRequestedRegion() override
void SetShrinkFactor(unsigned int i, unsigned int factor)
typename TOutputImage::IndexType OutputIndexType
typename TOutputImage::OffsetType OutputOffsetType
~ShrinkImageFilter() override=default
void SetShrinkFactors(unsigned int factor)
void GenerateOutputInformation() override
void PrintSelf(std::ostream &os, Indent indent) const override
typename TInputImage::IndexType InputIndexType
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) override
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....