00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _ColorTableTSL_h_
00009 #define _ColorTableTSL_h_
00010
00011
00012 class ColorTableTSL;
00013
00014 #include "ColorTable.h"
00015 #include "Tools/Streams/InOut.h"
00016 #include "Tools/ColorClasses.h"
00017 #include "ColorClassImage.h"
00018 #include "Image.h"
00019 #include "Modules/ImageProcessor/ImageProcessorTools/MSH2004ColorCorrector.h"
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 class ColorTableTSL : public ColorTable
00030 {
00031 public:
00032
00033 ColorTableTSL();
00034
00035
00036 ~ColorTableTSL();
00037
00038
00039
00040
00041 void clear();
00042
00043
00044
00045
00046 void reset();
00047
00048
00049 void generateTSLDialogImage(const Image &image,ColorClassImage &colorClassImage);
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 void addColorClass(
00062 colorClass colorClass,
00063 unsigned char t_min,
00064 unsigned char t_max,
00065 unsigned char s_min,
00066 unsigned char s_max,
00067 unsigned char l_min,
00068 unsigned char l_max
00069 );
00070
00071
00072
00073
00074 void calculateLUT();
00075
00076
00077
00078
00079
00080
00081
00082
00083 virtual colorClass getColorClass(
00084 const unsigned char y,
00085 const unsigned char u,
00086 const unsigned char v
00087 ) const;
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 virtual void generateColorClassImage(
00098 const Image& image,
00099 ColorClassImage& colorClassImage
00100 ) const;
00101
00102
00103
00104
00105
00106
00107
00108 void convertYUVToTSL(
00109 unsigned char y,
00110 unsigned char u,
00111 unsigned char v,
00112 unsigned char *t,
00113 unsigned char *s,
00114 unsigned char *l
00115 ) const;
00116
00117
00118
00119
00120 colorClass classifyTSL(
00121 unsigned char t,
00122 unsigned char s,
00123 unsigned char l
00124 ) const;
00125
00126
00127
00128
00129
00130
00131
00132 unsigned char colorClasses[32][64][64];
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 unsigned char tsl_threshold[numOfColors][2][3];
00143
00144
00145
00146
00147 unsigned char tsl_index;
00148
00149
00150
00151
00152
00153 colorClass tsl_order[numOfColors];
00154
00155
00156
00157 private:
00158
00159 MSH2004ColorCorrector corrector;
00160
00161 };
00162
00163
00164
00165
00166
00167
00168
00169 In& operator>>(In& stream, ColorTableTSL& colorTableTSL);
00170
00171
00172
00173
00174
00175
00176
00177 Out& operator<<(Out& stream, const ColorTableTSL& colorTableTSL);
00178
00179 #endif // _ColorTableTSL_h_