imageFormatTraits.h

Go to the documentation of this file.
00001 
00015 #ifndef _DLRCOMPUTERVISION_IMAGEFORMATTRAITS_H_
00016 #define _DLRCOMPUTERVISION_IMAGEFORMATTRAITS_H_
00017 
00018 #include <stdlib.h>
00019 #include <dlrCommon/types.h>
00020 #include <dlrComputerVision/imageFormat.h>
00021 #include <dlrComputerVision/pixelBGRA.h>
00022 #include <dlrComputerVision/pixelHSV.h>
00023 #include <dlrComputerVision/pixelRGB.h>
00024 #include <dlrComputerVision/pixelRGBA.h>
00025 
00026 namespace dlr {
00027 
00028   namespace computerVision {
00029   
00035     template <ImageFormat>
00036     class ImageFormatTraits {
00037     public:
00038       typedef UnsignedInt8 PixelType;
00039       typedef UnsignedInt8 ComponentType;
00040       static size_t getNumberOfComponents() {return 1;}
00041     };
00042 
00043 
00044     template<>
00045     class ImageFormatTraits<GRAY1> {
00046     public:
00047       typedef bool PixelType;
00048       typedef bool ComponentType;
00049       static size_t getNumberOfComponents() {return 1;}
00050     };
00051     
00052 
00053     template<>
00054     class ImageFormatTraits<GRAY8> {
00055     public:
00056       typedef UnsignedInt8 PixelType;
00057       typedef UnsignedInt8 ComponentType;
00058       static size_t getNumberOfComponents() {return 1;}
00059     };
00060     
00061 
00062     template<>
00063     class ImageFormatTraits<GRAY16> {
00064     public:
00065       typedef UnsignedInt16 PixelType;
00066       typedef UnsignedInt16 ComponentType;
00067       static size_t getNumberOfComponents() {return 1;}
00068     };
00069     
00070 
00071     template<>
00072     class ImageFormatTraits<GRAY32> {
00073     public:
00074       typedef UnsignedInt32 PixelType;
00075       typedef UnsignedInt32 ComponentType;
00076       static size_t getNumberOfComponents() {return 1;}
00077     };
00078     
00079 
00080     template<>
00081     class ImageFormatTraits<GRAY64> {
00082     public:
00083       typedef UnsignedInt64 PixelType;
00084       typedef UnsignedInt64 ComponentType;
00085       static size_t getNumberOfComponents() {return 1;}
00086     };
00087     
00088 
00089     template<>
00090     class ImageFormatTraits<GRAY_SIGNED16> {
00091     public:
00092       typedef Int16 PixelType;
00093       typedef Int16 ComponentType;
00094       static size_t getNumberOfComponents() {return 1;}
00095     };
00096     
00097 
00098     template<>
00099     class ImageFormatTraits<GRAY_SIGNED32> {
00100     public:
00101       typedef Int32 PixelType;
00102       typedef Int32 ComponentType;
00103       static size_t getNumberOfComponents() {return 1;}
00104     };
00105     
00106 
00107     template<>
00108     class ImageFormatTraits<GRAY_FLOAT32> {
00109     public:
00110       typedef Float32 PixelType;
00111       typedef Float32 ComponentType;
00112       static size_t getNumberOfComponents() {return 1;}
00113     };
00114     
00115 
00116     template<>
00117     class ImageFormatTraits<GRAY_FLOAT64> {
00118     public:
00119       typedef Float64 PixelType;
00120       typedef Float64 ComponentType;
00121       static size_t getNumberOfComponents() {return 1;}
00122     };
00123     
00124 
00125     template<>
00126     class ImageFormatTraits<RGB8> {
00127     public:
00128       typedef PixelRGB8 PixelType;
00129       typedef UnsignedInt8 ComponentType;
00130       static size_t getNumberOfComponents() {return 3;}
00131     };
00132     
00133 
00134     template<>
00135     class ImageFormatTraits<RGB16> {
00136     public:
00137       typedef PixelRGB16 PixelType;
00138       typedef UnsignedInt16 ComponentType;
00139       static size_t getNumberOfComponents() {return 3;}
00140     };
00141 
00142 
00143     template<>
00144     class ImageFormatTraits<RGB_SIGNED16> {
00145     public:
00146       typedef PixelRGBSigned16 PixelType;
00147       typedef Int16 ComponentType;
00148       static size_t getNumberOfComponents() {return 3;}
00149     };
00150 
00151   
00152     template<>
00153     class ImageFormatTraits<RGB_SIGNED32> {
00154     public:
00155       typedef PixelRGBSigned32 PixelType;
00156       typedef Int32 ComponentType;
00157       static size_t getNumberOfComponents() {return 3;}
00158     };
00159 
00160   
00161     template<>
00162     class ImageFormatTraits<RGB_FLOAT32> {
00163     public:
00164       typedef PixelRGBFloat32 PixelType;
00165       typedef Float32 ComponentType;
00166       static size_t getNumberOfComponents() {return 3;}
00167     };
00168 
00169 
00170     template<>
00171     class ImageFormatTraits<RGB_FLOAT64> {
00172     public:
00173       typedef PixelRGBFloat64 PixelType;
00174       typedef Float64 ComponentType;
00175       static size_t getNumberOfComponents() {return 3;}
00176     };
00177 
00178 
00179     template<>
00180     class ImageFormatTraits<HSV_FLOAT64> {
00181     public:
00182       typedef PixelHSVFloat64 PixelType;
00183       typedef Float64 ComponentType;
00184       static size_t getNumberOfComponents() {return 3;}
00185     };
00186   
00187   
00188     template<>
00189     class ImageFormatTraits<RGBA8> {
00190     public:
00191       typedef PixelRGBA8 PixelType;
00192       typedef UnsignedInt8 ComponentType;
00193       static size_t getNumberOfComponents() {return 4;}
00194     };
00195     
00196 
00197     template<>
00198     class ImageFormatTraits<BGRA8> {
00199     public:
00200       typedef PixelBGRA8 PixelType;
00201       typedef UnsignedInt8 ComponentType;
00202       static size_t getNumberOfComponents() {return 4;}
00203     };
00204     
00205   } // namespace computerVision
00206 
00207 } // namespace dlr
00208 
00209 #endif /* ifndef _DLRCOMPUTERVISION_IMAGEFORMATTRAITS_H_ */

Generated on Mon Jul 9 20:34:03 2007 for dlrLibs Utility Libraries by  doxygen 1.5.2