Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __parallelsurf_image_h
00025 #define __parallelsurf_image_h
00026
00027 namespace parallelsurf {
00028
00029
00030 class IntegralImage;
00031
00032 class Image
00033 {
00034 public:
00035 Image() : _ii(0), _width(0), _height(0) {};
00036
00037
00038 Image( const unsigned char **iPixels, unsigned int iWidth, unsigned int iHeight);
00039
00040
00041 void init(const unsigned char **iPixels, unsigned int iWidth, unsigned int iHeight);
00042
00043
00044 void clean();
00045
00046
00047 ~Image();
00048
00049
00050 inline const unsigned char ** getPixels() { return _pixels; }
00051 inline double ** getIntegralImage() { return _ii; }
00052 inline unsigned int getWidth() { return _width; }
00053 inline unsigned int getHeight() { return _height; }
00054
00055
00056 static double ** AllocateImage(unsigned int iWidth, unsigned int iHeight);
00057 static void DeallocateImage(double **iImagePtr, unsigned int iHeight);
00058
00059 private:
00060
00061
00062 void buildIntegralImage();
00063
00064
00065 const unsigned char** _pixels;
00066
00067
00068 double** _ii;
00069
00070
00071 unsigned int _width;
00072 unsigned int _height;
00073
00074 };
00075
00076 }
00077
00078 #endif //__parallelsurf_image_h
00079