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

vetMotionIlluminationInvariant.h

00001 
00029 #ifndef __VETLIB_VETMOTIONILLUMINATIONINVARIANT_H__
00030  #define __VETLIB_VETMOTIONILLUMINATIONINVARIANT_H__
00031 
00032  #include "../vetDefs.h"
00033  #include "../vetVision.h"
00034 
00035  #include "../vetFrameT.h"
00036  #include "../vetFrameYUV420.h"
00037  #include "../vetFrameRGB24.h"
00038 
00039 
00040 class vetMotionIlluminationInvariantParameters;
00041 
00042 
00049 class vetMotionIlluminationInvariant    :  public vetVision
00050  {
00051         protected:
00052 
00053                 vetMotionIlluminationInvariantParameters* myParams;
00054 
00055                 vetFrameT<unsigned char> *reflectance;
00056                 vetFrameT<unsigned char> *buffer;
00057 
00058                 vetFrameT<unsigned char> *diff;
00059 
00060                 float* reflectanceCurrent;
00061                 float* reflectanceBuffer;
00062 
00063 
00064 
00065 // parametri x soglia
00066 
00067                 long lastDiffValue;
00068 
00069 
00070 //TODO..int alertCallArgumentScript;
00071 
00072                 void initFrame(vetFrameRGB24& img);
00073 
00074                 int evalDifference(vetFrameRGB24& diff_img);
00075                 int evalDifference(vetFrameT<unsigned char>& diff_img);
00076 
00077         public:
00078 
00079 
00080                 vetMotionIlluminationInvariant(vetMotionIlluminationInvariantParameters* initParams = NULL );
00081                 ~vetMotionIlluminationInvariant();
00082 
00083                 VETRESULT setParameters(vetMotionIlluminationInvariantParameters* initParams);
00084                 vetMotionIlluminationInvariantParameters& getParameters() { return *myParams; };
00085 
00086                 VETRESULT reset();
00087 
00088 
00089 
00090                 static int getIllumination(vetFrameRGB24& source_img, vetFrameRGB24& ill_img);
00091 
00092                 static int getReflectance(vetFrameT<unsigned char> &refl_img, vetFrameRGB24& source_img);
00093 
00094                 static int getReflectance(vetFrameRGB24& refl_img, vetFrameRGB24& source_img);
00095 
00096 
00097 
00098 
00099 
00100                 // used into operator >>
00101                 VETRESULT importFrom(vetFrameYUV420& img);
00102                 VETRESULT importFrom(vetFrameRGB24& img);
00103                 VETRESULT importFrom(vetFrameT<unsigned char>& img);
00104 
00105 
00106  };
00107 
00108 
00109 
00111 
00112 
00113 
00114 class vetMotionIlluminationInvariantParameters : public vetVisionParameters
00115  {
00116 
00117         protected:
00118 
00119                 unsigned int threshold;
00120 
00121                 friend class vetMotionIlluminationInvariant;
00122 
00123         public:
00124 
00125                 vetMotionIlluminationInvariantParameters(unsigned int threshold = 1, bool doAlert = false);
00126                 ~vetMotionIlluminationInvariantParameters() {}
00127 
00128                 void reset();
00129 
00130                 void setThresholdValue(unsigned int value);
00131                 long getThresholdValue() { return threshold; };
00132 
00133 
00142                 VETRESULT saveToStreamXML(FILE *fp);
00143 
00152                 VETRESULT loadFromStreamXML(FILE *fp);
00153 
00154  };
00155 
00156 #endif //__VETLIB_VETMOTIONILLUMINATIONINVARIANT_H__
00157 

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