00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _ColorSpaceUsageCounter_h_
00009 #define _ColorSpaceUsageCounter_h_
00010
00011 #include "Representations/Perception/Image.h"
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 class ColorSpaceUsageCounter
00023 {
00024 public:
00025
00026 ColorSpaceUsageCounter();
00027
00028
00029 ~ColorSpaceUsageCounter();
00030
00031
00032
00033
00034
00035
00036
00037
00038 int getCount (const unsigned char y,
00039 const unsigned char u,
00040 const unsigned char v) const
00041 {
00042 return count[y/16][u/16][v/16];
00043 }
00044
00045
00046
00047
00048
00049
00050
00051 virtual void generateImage(const Image& image, Image& resultImage) const;
00052
00053
00054
00055
00056 unsigned short int count[16][16][16];
00057
00058
00059 void reset();
00060
00061
00062
00063 void addColor(unsigned char y, unsigned char u, unsigned char v);
00064
00065 void addColor(unsigned char y, unsigned char u, unsigned char v, unsigned char range);
00066
00067 bool isColorFrequent(unsigned char y, unsigned char u, unsigned char v, int threshold);
00068
00069 int maxCount;
00070 };
00071
00072 #endif // _ColorSpaceUsageCounter_h_