00001
00015 #ifndef _DLRCOMPUTERVISION_IMAGE_H_
00016 #define _DLRCOMPUTERVISION_IMAGE_H_
00017
00018 #include <dlrComputerVision/imageFormatTraits.h>
00019 #include <dlrNumeric/array2D.h>
00020
00021 namespace dlr {
00022
00028 namespace computerVision {
00029
00037 template <ImageFormat FORMAT>
00038 class Image
00039 : public Array2D<typename ImageFormatTraits<FORMAT>::PixelType>
00040 {
00041 public:
00042
00043
00044
00045 typedef typename ImageFormatTraits<FORMAT>::PixelType PixelType;
00046
00047
00048
00049
00053 Image()
00054 : Array2D<PixelType>() {}
00055
00056
00066 Image(size_t rows, size_t columns)
00067 : Array2D<PixelType>(rows, columns) {}
00068
00069
00076 Image(const Image<FORMAT> &source)
00077 : Array2D<PixelType>(source) {}
00078
00079
00087 Image(const Array2D<PixelType> &source)
00088 : Array2D<PixelType>(source) {}
00089
00090
00107 Image(size_t rows, size_t columns, PixelType* const dataPtr)
00108 : Array2D<PixelType>(rows, columns, dataPtr) {}
00109
00110
00130 Image(size_t rows, size_t columns, PixelType* const dataPtr,
00131 size_t* referenceCountPtr)
00132 : Array2D<PixelType>(rows, columns, dataPtr, referenceCountPtr) {}
00133
00134
00139 virtual
00140 ~Image() {}
00141
00142
00152 virtual
00153 Image<FORMAT>
00154 operator=(const PixelType& value) {
00155 return Array2D<PixelType>::operator=(value);
00156 }
00157
00158
00159 private:
00160
00161
00162 };
00163
00164 }
00165
00166 }
00167
00168 #endif