00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __TLHISTOGRAM_H__
00018 #define __TLHISTOGRAM_H__
00019
00020
00021 #include "tlVision.h"
00022
00023
00024 class tlHist
00025 {
00026 private:
00027
00028 int length;
00029 int offset;
00030 int min;
00031 int max;
00032 int mean;
00033 int weight;
00034 float stdDev;
00035 tlHistData minVal;
00036 tlHistData maxVal;
00037
00038 int create (int length, int offset);
00039 int deleteData ();
00040
00041 public:
00042
00043 int channel;
00044 tlHistData *data;
00045 tlHistData *rank;
00046
00047
00048
00049 tlHist ();
00050 tlHist (int length, int offset = 0);
00051 virtual ~tlHist ();
00052
00053
00054 int init (int length, int offset = 0);
00055 int clear ();
00056 int update ();
00057
00058
00059 int setChannel (int channel);
00060
00061
00062 int getVal (int index);
00063 int getRank (int index);
00064 int getMean () { return mean; };
00065 float getStdDev () { return stdDev; };
00066 int getMaxVal () { return maxVal; };
00067 int getMinVal () { return minVal; };
00068 int getMaxIndex () { return max; };
00069 int getMinIndex () { return min; };
00070 int getOffset () { return offset; };
00071 int getLength () { return length; };
00072
00073
00074 int setVal (int index, int val);
00075 int incVal (int index);
00076 int decVal (int index);
00077
00078
00079 int normalize (int max = 100);
00080
00081
00082 int integrate (int sum = 100);
00083
00084
00085 float compare (tlHist *hist);
00086
00087
00088 int build (tlPixel *data, int len);
00089 int build (tlPixel *data, int len, int length, int offset = 0);
00090 int build (tlPixel *src, int width, int height, int pixelWidth, tlPixel *mask, int channel, tlRect *rect);
00091
00092
00093 int build (tlHRPixel *data, int len);
00094 int build (tlHRPixel *data, int len, int length, int offset = 0);
00095 int build (tlHRPixel *src, int width, int height, int pixelWidth, tlPixel *mask, int channel, tlRect *rect);
00096 };
00097
00098
00099 #endif