00001 00031 #ifndef __VETLIB_VETHIST_H__ 00032 #define __VETLIB_VETHIST_H__ 00033 00034 #include "vetDefs.h" 00035 #include "vetFrameYUV420.h" 00036 #include "vetFrameRGB24.h" 00037 00038 00039 00040 class vetHist 00041 { 00042 protected: 00043 00044 int valMax; 00045 int valMin; 00046 int valBandwidth; 00047 unsigned int valCount; 00048 00049 double valSum; 00050 double valSum2; 00051 00052 unsigned int* freqHist; 00053 00054 unsigned int freqMax; 00055 unsigned int freqMin; 00056 00057 float* probHist; 00058 00059 float probMax; 00060 float probMin; 00061 00062 00063 00064 public: 00065 00066 00067 vetHist(); 00068 vetHist(int MinValue, int MaxValue); 00069 vetHist(vetFrameYUV420& img, vetFrameYUV420::ChannelYUV channel); 00070 vetHist(vetFrameRGB24& img, vetFrameRGB24::ChannelRGB channel); 00071 00072 vetHist(char const* filename); 00073 00074 ~vetHist(); 00075 00076 VETRESULT reset(); 00077 VETRESULT reset(int MinValue, int MaxValue); 00078 00079 VETRESULT addValue(int value); 00080 VETRESULT addData(int *data, int size); 00081 00082 VETRESULT fromImage(vetFrameYUV420& img, vetFrameYUV420::ChannelYUV channel); 00083 VETRESULT fromImage(vetFrameRGB24& img, vetFrameRGB24::ChannelRGB channel); 00084 00085 00086 unsigned int* dumpFrequency() { return freqHist; }; 00087 float* dumpProbabilities() { return probHist; }; 00088 00089 00090 vetHist& operator = (vetHist& rvalue); 00091 00092 int getValBandWidth() { return valBandwidth; }; 00093 unsigned int getMinFrequencyValue() { return freqMin; }; 00094 unsigned int getMaxFrequencyValue() { return freqMax; }; 00095 float getMinProbabilityValue() { return probMin; }; 00096 float getMaxProbabilityValue() { return probMax; }; 00097 00098 VETRESULT extractProbs(); 00099 float extractDifference(vetHist *compareHist); 00100 00101 unsigned int getValCount() { return valCount; }; 00102 00103 //Return sample mean 00104 float getMean() const; 00105 //Return sample variance 00106 float getVariance() const; 00107 00108 00109 VETRESULT drawGraph(vetFrameRGB24& img); 00110 00111 00112 VETRESULT saveToXML(char const* filename); 00113 VETRESULT loadFromXML(char const* filename); 00114 00115 }; 00116 00117 00118 00119 #endif //__VETLIB_VETHIST_H__ 00120
1.4.4