ITK
6.0.0
Insight Toolkit
|
#include <itkJoinImageFilter.h>
Join the components of two pixel types into a single pixel type.
JoinFunctor combines the components of two pixel types into a single pixel type. The components of one pixel are appended to the components of the other pixel. The output pixel type is an itk::Vector. The ValueType of the vector is the smallest scalar type that can represent the dynamic range of the both the input pixel value types. Hence, joining a char and unsigned char results in a short since that is the smallest datatype with a large enough dynamic range. To define a consistent behavior across different architectures, the join of an int and an unsigned int is float. On a 64 bit architecture, this join could be represented in a long. But on 32 bit architectures, the only safe join value type is a float. For this and similar ambiguous cases, the join value type is promoted to a float.
Definition at line 48 of file itkJoinImageFilter.h.
Classes | |
struct | CopierDispatch |
struct | CopierDispatchBase |
Public Types | |
using | JoinType = Vector< JoinValueType, Self::JoinDimension > |
using | JoinValueType = typename JoinTraits< ValueType1, ValueType2 >::ValueType |
using | Self = JoinFunctor |
using | ValueType1 = typename PixelTraits< TPixel1 >::ValueType |
using | ValueType2 = typename PixelTraits< TPixel2 >::ValueType |
Public Member Functions | |
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION (JoinFunctor) | |
JoinType | operator() (const TPixel1 &A, const TPixel2 &B) const |
bool | operator== (const JoinFunctor &) const |
Static Public Attributes | |
static constexpr unsigned int | Dimension1 = PixelTraits<TPixel1>::Dimension |
static constexpr unsigned int | Dimension2 = PixelTraits<TPixel2>::Dimension |
static constexpr unsigned int | JoinDimension = Dimension1 + Dimension2 |
Private Member Functions | |
void | FirstCopier (CopierDispatch< 1 >, JoinType &out, unsigned int idx, const TPixel1 &A) const |
void | FirstCopier (JoinType &out, unsigned int idx, const TPixel1 &A) const |
void | SecondCopier (JoinType &out, unsigned int idx, const TPixel2 &B) const |
void | FirstCopier (CopierDispatchBase, JoinType &out, unsigned int idx, const TPixel1 &A) const |
void | SecondCopier (CopierDispatchBase, JoinType &out, unsigned int idx, const TPixel2 &B) const |
void | SecondCopier (CopierDispatch< 1 >, JoinType &out, unsigned int idx, const TPixel2 &B) const |
using itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinType = Vector<JoinValueType, Self::JoinDimension> |
A vector of the join dimension.
Definition at line 66 of file itkJoinImageFilter.h.
using itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinValueType = typename JoinTraits<ValueType1, ValueType2>::ValueType |
Definition at line 58 of file itkJoinImageFilter.h.
using itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Self = JoinFunctor |
Standard type alias
Definition at line 53 of file itkJoinImageFilter.h.
using itk::Functor::JoinFunctor< TPixel1, TPixel2 >::ValueType1 = typename PixelTraits<TPixel1>::ValueType |
Typedefs for the output join type.
Definition at line 56 of file itkJoinImageFilter.h.
using itk::Functor::JoinFunctor< TPixel1, TPixel2 >::ValueType2 = typename PixelTraits<TPixel2>::ValueType |
Definition at line 57 of file itkJoinImageFilter.h.
|
inlineprivate |
Copier function specific to a scalar first pixel.
Definition at line 133 of file itkJoinImageFilter.h.
|
inlineprivate |
Copier function specific to a vector type first pixel.
Definition at line 122 of file itkJoinImageFilter.h.
References itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension1.
|
inlineprivate |
Copier function to copy the first pixel to the output pixel casting as necessary. The contents of the source pixel are placed in the output pixel at position idx. This method simply delegates to one of two overloaded implementations based on the dimension (or number of components) of the first pixel. FirstCopier() and SecondCopier() are defined as distinct functions (as opposed to being a single Copier() function overloaded on the last parameter type or pixel type) to avoid "already declared/defined" errors for the case where TPixel1 and TPixel2 are the same types.
Definition at line 115 of file itkJoinImageFilter.h.
Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator()().
itk::Functor::JoinFunctor< TPixel1, TPixel2 >::ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION | ( | JoinFunctor< TPixel1, TPixel2 > | ) |
|
inline |
operator(). This is the "call" method of the functor.
Definition at line 78 of file itkJoinImageFilter.h.
References itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension1, itk::Functor::JoinFunctor< TPixel1, TPixel2 >::FirstCopier(), and itk::Functor::JoinFunctor< TPixel1, TPixel2 >::SecondCopier().
|
inline |
Definition at line 69 of file itkJoinImageFilter.h.
|
inlineprivate |
Copier function specific to a scalar second pixel.
Definition at line 162 of file itkJoinImageFilter.h.
|
inlineprivate |
Copier function specific to a vector type second pixel.
Definition at line 151 of file itkJoinImageFilter.h.
References itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension2.
|
inlineprivate |
Copier function to copy the second pixel to the output pixel casting as necessary. The contents of the source pixel are placed in the output pixel at position idx. This method simply delegates to one of two overloaded implementations based on the dimension (or number of components) of the second pixel.
Definition at line 144 of file itkJoinImageFilter.h.
Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator()().
|
staticconstexpr |
Capture the dimensions of the image.
Definition at line 61 of file itkJoinImageFilter.h.
Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::FirstCopier(), and itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator()().
|
staticconstexpr |
Definition at line 62 of file itkJoinImageFilter.h.
Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::SecondCopier().
|
staticconstexpr |
Definition at line 63 of file itkJoinImageFilter.h.