ITK  5.4.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | List of all members
itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits > Class Template Reference

#include <itkConvertPixelBuffer.h>

Detailed Description

template<typename InputPixelType, typename OutputPixelType, typename OutputConvertTraits>
class itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >

Class to convert blocks of data from one type to another.

ConvertPixelBuffer has a static method Convert(). It is used by itkImageFileReader to convert from an unknown type at run-time to the compile-time template pixel type in itkImageFileReader. To work with complex pixel types like RGB and RGBA a traits class is used. OutputConvertTraits() is the traits class. The default one used is DefaultConvertPixelTraits.

ITK Sphinx Examples:
Derived from ConvertPixelBuffer has a static method Convert(). It is used to work with pixel type as Array type.

Derived from ConvertPixelBuffer has a static method Convert(). It is used to work with pixel type as VariableLengthVector type.

Examples
SphinxExamples/src/IO/ImageBase/ConvertImageToAnotherType/Code.cxx.

Definition at line 46 of file itkConvertPixelBuffer.h.

Public Types

using OutputComponentType = typename OutputConvertTraits::ComponentType
 
using Self = ConvertPixelBuffer
 

Public Member Functions

 ConvertPixelBuffer (const ConvertPixelBuffer &)=delete
 
 ConvertPixelBuffer (ConvertPixelBuffer &&)=delete
 
ConvertPixelBufferoperator= (const ConvertPixelBuffer &)=delete
 
ConvertPixelBufferoperator= (ConvertPixelBuffer &&)=delete
 
virtual ~ConvertPixelBuffer ()=delete
 

Static Public Member Functions

static void Convert (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertVectorImage (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 

Static Protected Member Functions

static void ConvertComplexToComplex (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertGrayToComplex (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertGrayToGray (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertGrayToRGB (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertGrayToRGBA (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertMultiComponentToComplex (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertMultiComponentToGray (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertMultiComponentToRGB (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertMultiComponentToRGBA (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBAToGray (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBAToRGB (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBAToRGBA (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBToGray (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBToRGB (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertRGBToRGBA (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertTensor6ToTensor6 (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertTensor9ToTensor6 (const InputPixelType *inputData, OutputPixelType *outputData, vcl_size_t size)
 
static void ConvertVectorToVector (const InputPixelType *inputData, int inputNumberOfComponents, OutputPixelType *outputData, vcl_size_t size)
 
template<typename UComponentType >
static std::enable_if_t<!std::is_integral_v< UComponentType >, UComponentType > DefaultAlphaValue ()
 
template<typename UComponentType >
static std::enable_if_t< std::is_integral_v< UComponentType >, UComponentType > DefaultAlphaValue ()
 

Member Typedef Documentation

◆ OutputComponentType

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
using itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::OutputComponentType = typename OutputConvertTraits::ComponentType

Determine the output data type.

Definition at line 51 of file itkConvertPixelBuffer.h.

◆ Self

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
using itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::Self = ConvertPixelBuffer

Definition at line 52 of file itkConvertPixelBuffer.h.

Constructor & Destructor Documentation

◆ ConvertPixelBuffer() [1/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertPixelBuffer ( const ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits > &  )
delete

◆ ConvertPixelBuffer() [2/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertPixelBuffer ( ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits > &&  )
delete

◆ ~ConvertPixelBuffer()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
virtual itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::~ConvertPixelBuffer ( )
virtualdelete

Member Function Documentation

◆ Convert()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::Convert ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
static

General method converts from one type to another.

Referenced by itk::OpenCVImageBridge::ITKConvertImageBuffer().

◆ ConvertComplexToComplex()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertComplexToComplex ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertGrayToComplex()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertGrayToComplex ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Conversions related to complex

◆ ConvertGrayToGray()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertGrayToGray ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Convert to Gray output. Input values are cast to output values.

◆ ConvertGrayToRGB()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertGrayToRGB ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Convert to RGB output. Each RGB output component is set the input Gray value.

◆ ConvertGrayToRGBA()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertGrayToRGBA ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Convert to RGBA output.

◆ ConvertMultiComponentToComplex()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertMultiComponentToComplex ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertMultiComponentToGray()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertMultiComponentToGray ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertMultiComponentToRGB()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertMultiComponentToRGB ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Conversion depends upon the number of components in the input. If the number of input components is 2, the output components are each set to the first input component attenuated by the second input component. This assumes that a two input pixel represents intensity and alpha. If the number of input components is not 2, the first three output components a are set to the first three input components. The remaining input components are ignored.

◆ ConvertMultiComponentToRGBA()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertMultiComponentToRGBA ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertRGBAToGray()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBAToGray ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Weights convert from linear RGB to CIE luminance assuming a modern monitor. Values are attenuated by the Alpha channel. See Charles Poynton's Colour FAQ http://www.poynton.com/ColorFAQ.html

◆ ConvertRGBAToRGB()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBAToRGB ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Input values are attenuated by the Alpha channel.

◆ ConvertRGBAToRGBA()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBAToRGBA ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertRGBToGray()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBToGray ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Weights convert from linear RGB to CIE luminance assuming a modern monitor. See Charles Poynton's Colour FAQ

http://www.poynton.com/ColorFAQ.html

◆ ConvertRGBToRGB()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBToRGB ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Input values are cast component by component to output values.

◆ ConvertRGBToRGBA()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertRGBToRGBA ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertTensor6ToTensor6()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertTensor6ToTensor6 ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

Convert tensor output. Each input is made into a 6 component symmetric pixel

◆ ConvertTensor9ToTensor6()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertTensor9ToTensor6 ( const InputPixelType *  inputData,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

◆ ConvertVectorImage()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertVectorImage ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
static

◆ ConvertVectorToVector()

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
static void itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::ConvertVectorToVector ( const InputPixelType *  inputData,
int  inputNumberOfComponents,
OutputPixelType *  outputData,
vcl_size_t  size 
)
staticprotected

This is meant for many component vectors, e.g. converting 31-component float to 31-component double.

◆ DefaultAlphaValue() [1/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
template<typename UComponentType >
static std::enable_if_t<!std::is_integral_v<UComponentType>, UComponentType> itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::DefaultAlphaValue ( )
staticprotected

the most common case, where InputComponentType == unsigned char, the alpha is in the range 0..255. I presume in the mythical world of rgba<X> for all integral scalar types X, alpha will be in the range 0..X::max(). In the even more fantastical world of rgb<float> or rgb<double> alpha would have to be 1.0

◆ DefaultAlphaValue() [2/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
template<typename UComponentType >
static std::enable_if_t<std::is_integral_v<UComponentType>, UComponentType> itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::DefaultAlphaValue ( )
staticprotected

◆ operator=() [1/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
ConvertPixelBuffer& itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::operator= ( const ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits > &  )
delete

◆ operator=() [2/2]

template<typename InputPixelType , typename OutputPixelType , typename OutputConvertTraits >
ConvertPixelBuffer& itk::ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits >::operator= ( ConvertPixelBuffer< InputPixelType, OutputPixelType, OutputConvertTraits > &&  )
delete

The documentation for this class was generated from the following file: