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