Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

vetFrameGrey.h

00001 
00028 #ifndef __VETLIB_VETFRAMEGREY_H__
00029  #define __VETLIB_VETFRAMEGREY_H__
00030 
00031 
00032 
00033  #include "vetDefs.h"
00034 
00035 
00036  #include "vetFrame.h"
00037 class vetFrameGrey; // cos of "double-face" type definitions in operators
00038  #include "vetFrameYUV420.h"
00039  #include "vetFrameRGB24.h"
00040  #include "vetFrameRGB96.h"
00041  #include "vetFrameRGBA32.h"
00042 
00044  typedef unsigned char   PixelGrey;
00045 
00046 // Define Coefficients for RGB to Brightness relationship, already definded in vetDefs!
00047  #define RED_COEF .2989961801
00048  #define GREEN_COEF .5869947588
00049  #define BLUE_COEF .1139912943
00050 
00051 
00052 class vetFrameGrey : public virtual vetFrame
00053 {
00054         public:
00055 
00059                 PixelGrey *data;
00060 
00061         public:
00062 
00066                 vetFrameGrey();
00067 
00073                 vetFrameGrey(unsigned int width, unsigned int height);
00074 
00079                 vetFrameGrey(vetFrameGrey& img);
00080 
00085                 vetFrameGrey(vetFrameYUV420& img);
00086 
00091                 vetFrameGrey(vetFrameRGB24& img);
00092 
00097                 vetFrameGrey(vetFrameRGB96& img);
00098 
00103                 vetFrameGrey(vetFrameRGBA32& img);
00104 
00108                 ~vetFrameGrey();
00109 
00110 
00111                 int setWidth(unsigned int newWidth);
00112                 int setHeight(unsigned int newHeight);
00113 
00114 
00115 
00116                 void* dump_buffer() { return static_cast<void*>(data); };
00117 
00118                 VETRESULT reAllocCanvas(unsigned int w, unsigned int h);
00119 
00120 
00121 
00122 
00123                 unsigned int getBpp() { return sizeof(PixelGrey) * 8; };
00124                 VETRESULT setBlack();
00125                 VETRESULT setWhite();
00126 
00127                 unsigned int getBufferSize() { return (unsigned int)( width * height); };
00128 
00129 
00130                 VETRESULT extractBrightness(unsigned char* buffer, unsigned int* size = NULL );
00131 
00132 
00133 
00144                 VETRESULT setPixel(unsigned int x, unsigned int y, PixelRGB24 p);
00145 
00155                 VETRESULT setPixel(unsigned int x, unsigned int y, PixelGrey level);
00156 
00166                 VETRESULT getPixel(unsigned int x, unsigned int y, PixelGrey& p) const;
00167 
00168                 const PixelGrey& getPixel(unsigned int x, unsigned int y) const;
00169 
00170 
00178                 vetFrameGrey& clearWith(PixelGrey bg = 0);
00179 
00181                 vetFrameGrey& copy(vetFrameGrey& img);
00182 
00183 
00185                 VETRESULT invert();
00186 
00188                 VETRESULT threshold(PixelGrey thresh) ;
00189 
00190 
00191                 /* Operators overloading */
00192 
00201                 vetFrameGrey& operator = (vetFrameGrey& img) { return this->copy(img); };
00202 
00204                 vetFrameGrey& operator += (vetFrameGrey& img) ;
00205 
00207                 vetFrameGrey& operator -= (vetFrameGrey& img) ;
00208 
00210                 vetFrameGrey& operator += (PixelGrey offset) ;
00211 
00213                 vetFrameGrey& operator -= (PixelGrey offset) ;
00214 
00216                 vetFrameGrey& operator /= (float factor) ;
00217 
00219                 vetFrameGrey& operator *= (float factor) ;
00220 
00221 
00222                 vetFrameGrey& operator >> (vetFrameYUV420& img);
00223                 vetFrameGrey& operator >> (vetFrameRGB24& img);
00224                 vetFrameGrey& operator >> (vetFrameRGB96& img);
00225                 vetFrameGrey& operator >> (vetFrameRGBA32& img);
00226 
00227                 void operator << (const vetFrameYUV420& img);
00228                 void operator << (const vetFrameRGB24& img);
00229                 void operator << (const vetFrameRGBA32& img);
00230                 void operator << (const vetFrameRGB96& img);
00231 
00232                 VETFRAME_PROFILE getProfile() { return vetFrame::VETFRAME_MONO; };
00233 
00234                 VETFRAME_CHANNEL_TYPE getChannelType() { return vetFrame::VETFRAME_CT_PACKED; };
00235 
00236                 int getFOURCC() { return 0;};
00237  };
00238 
00239 
00240 #endif  // __VETLIB_VETFRAMEGREY_H__
00241 

Generated on Tue Jan 24 11:59:02 2006 for VETLib by  doxygen 1.4.4