SimpleITK  
sitkCastImageFilter.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 sitkCastImageFilter_h
19#define sitkCastImageFilter_h
20
21#include "sitkImageFilter.h"
22#include "sitkPixelIDTokens.h"
24
25#include <memory>
26
27namespace itk::simple
28{
29
40{
41public:
43
45 SITK_RETURN_SELF_TYPE_HEADER
49
50 ~CastImageFilter() override;
51
57
59 std::string
60 GetName() const override
61 {
62 return std::string("CastImageFilter");
63 }
64
65 // See super class for doxygen
66 std::string
67 ToString() const override;
68
69 // See super class for doxygen
70 Image
71 Execute(const Image &);
72
73private:
75
85 template <typename TImageType, typename TOutputImageType>
86 Image
87 ExecuteInternalCast(const Image & inImage);
88
89 template <typename TImageType, typename TOutputImageType>
90 Image
92
93 template <typename TImageType, typename TOutputImageType>
94 Image
95 ExecuteInternalToLabel(const Image & inImage);
96
97 template <typename TImageType, typename TOutputImageType>
98 Image
101
102// SWIG does not appear to process private classes correctly
103#ifndef SWIG
104
108 template <class TMemberFunctionPointer>
110 {
111 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
112
113 template <typename TImageType1, typename TImageType2>
114 TMemberFunctionPointer
116 {
117 return &ObjectType::template ExecuteInternalCast<TImageType1, TImageType2>;
118 }
119 };
120
124 template <class TMemberFunctionPointer>
126 {
127 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
128
129 template <typename TImageType1, typename TImageType2>
130 TMemberFunctionPointer
132 {
133 return &ObjectType::template ExecuteInternalToVector<TImageType1, TImageType2>;
134 }
135 };
136
140 template <class TMemberFunctionPointer>
142 {
143 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
144
145 template <typename TImageType1, typename TImageType2>
146 TMemberFunctionPointer
148 {
149 return &ObjectType::template ExecuteInternalToLabel<TImageType1, TImageType2>;
150 }
151 };
152
156 template <class TMemberFunctionPointer>
158 {
159 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
160
161 template <typename TImageType1, typename TImageType2>
162 TMemberFunctionPointer
164 {
166 }
167 };
168#endif
169
176 void
178 void
180 void
182 void
184 void
186 void
188 void
191
192 typedef Image (Self::*MemberFunctionType)(const Image &);
193 std::unique_ptr<detail::DualMemberFunctionFactory<MemberFunctionType>> m_DualMemberFactory;
194};
195
197Cast(const Image & image, PixelIDValueEnum pixelID);
198
199} // namespace itk::simple
200#endif
Image ExecuteInternalToLabel(const Image &inImage)
Self & SetOutputPixelType(PixelIDValueEnum pixelID)
std::string ToString() const override
PixelIDValueEnum GetOutputPixelType() const
Image ExecuteInternalLabelToImage(const Image &inImage)
Image Execute(const Image &)
std::string GetName() const override
Image(Self::* MemberFunctionType)(const Image &)
Image ExecuteInternalToVector(const Image &inImage)
Image ExecuteInternalCast(const Image &inImage)
std::unique_ptr< detail::DualMemberFunctionFactory< MemberFunctionType > > m_DualMemberFactory
The Image class for SimpleITK.
Definition sitkImage.h:77
PixelIDValueEnum
Enumerated values of pixelIDs.
Image Cast(const Image &image, PixelIDValueEnum pixelID)
#define SITKBasicFilters_EXPORT
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType