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
1.4.4