亮度直方图中RGB转亮度的快速算法
1)首先给出标准的亮度公式:
Y(亮度)=(0.299*R)+(0.587*G)+(0.114*B)
式中的 R 代表红色分量的值,G 为绿色分量的值,B 为蓝色分量的值。
2)为便于计算,快速算法不采用标准公式,而使用以下只取小数点后两个有效位的近似公式:
Y(亮度)=(0.30*R)+(0.59*G)+(0.11*B)
3) 对于 24 位图像而言,由于红,绿,蓝三原色分量的值域为0~255,我们完全可以事先将整个
值域与系数的运算结果保存为三个元素大小为256的数组,并进一步将浮点数更改为两个无符号字符
型的方式表示,如将 0.30 改为 { 0, 30 } 表示,其中前一元素表示值的整数部分,后一元素表示
值的小数部分。则三原色的亮度值数组结果如下:
static
unsigned char lumRed[256][2]={
{ 0,0 }, { 0,30 }, { 0,60 }, { 0,90 }, { 1,20 }, { 1,50 }, { 1,80 }, { 2,10 }, { 2,40 }, { 2,70 },
{ 3,0 }, { 3,30 }, { 3,60 }, { 3,90 }, { 4,20 }, { 4,50 }, { 4,80 }, { 5,10 }, { 5,40 }, { 5,70 },
{ 6,0 }, { 6,30 }, { 6,60 }, { 6,90 }, { 7,20 }, { 7,50 }, { 7,80 }, { 8,10 }, { 8,40 }, { 8,70 },
{ 9,0 }, { 9,30 }, { 9,60 }, { 9,90 }, { 10,20 }, { 10,50 }, { 10,80 }, { 11,10 }, { 11,40 }, { 11,70 },
{ 12,0 }, { 12,30 }, { 12,60 }, { 12,90 }, { 13,20 }, { 13,50 }, { 13,80 }, { 14,10 }, { 14,40 }, { 14,70 },
{ 15,0 }, { 15,30 }, { 15,60 }, { 15,90 }, { 16,20 }, { 16,50 }, { 16,80 }, { 17,10 }, { 17,40 }, { 17,70 },
{ 18,0 }, { 18,30 }, { 18,60 }, { 18,90 }, { 19,20 }, { 19,50 }, { 19,80 }, { 20,10 }, { 20,40 }, { 20,70 },
{ 21,0 }, { 21,30 }, { 21,60 }, { 21,90 }, { 22,20 }, { 22,50 }, { 22,80 }, { 23,10 }, { 23,40 }, { 23,70 },
{ 24,0 }, { 24,30 }, { 24,60 }, { 24,90 }, { 25,20 }, { 25,50 }, { 25,80 }, { 26,10 }, { 26,40 }, { 26,70 },
{ 27,0 }, { 27,30 }, { 27,60 }, { 27,90 }, { 28,20 }, { 28,50 }, { 28,80 }, { 29,10 }, { 29,40 }, { 29,70 },
{ 30,0 }, { 30,30 }, { 30,60 }, { 30,90 }, { 31,20 }, { 31,50 }, { 31,80 }, { 32,10 }, { 32,40 }, { 32,70 },
{ 33,0 }, { 33,30 }, { 33,60 }, { 33,90 }, { 34,20 }, { 34,50 }, { 34,80 }, { 35,10 }, { 35,40 }, { 35,70 },
{ 36,0 }, { 36,30 }, { 36,60 }, { 36,90 }, { 37,20 }, { 37,50 }, { 37,80 }, { 38,10 }, { 38,40 }, { 38,70 },
{ 39,0 }, { 39,30 }, { 39,60 }, { 39,90 }, { 40,20 }, { 40,50 }, { 40,80 }, { 41,10 }, { 41,40 }, { 41,70 },
{ 42,0 }, { 42,30 }, { 42,60 }, { 42,90 }, { 43,20 }, { 43,50 }, { 43,80 }, { 44,10 }, { 44,40 }, { 44,70 },
{ 45,0 }, { 45,30 }, { 45,60 }, { 45,90 }, { 46,20 }, { 46,50 }, { 46,80 }, { 47,10 }, { 47,40 }, { 47,70 },
{ 48,0 }, { 48,30 }, { 48,60 }, { 48,90 }, { 49,20 }, { 49,50 }, { 49,80 }, { 50,10 }, { 50,40 }, { 50,70 },
{ 51,0 }, { 51,30 }, { 51,60 }, { 51,90 }, { 52,20 }, { 52,50 }, { 52,80 }, { 53,10 }, { 53,40 }, { 53,70 },
{ 54,0 }, { 54,30 }, { 54,60 }, { 54,90 }, { 55,20 }, { 55,50 }, { 55,80 }, { 56,10 }, { 56,40 }, { 56,70 },
{ 57,0 }, { 57,30 }, { 57,60 }, { 57,90 }, { 58,20 }, { 58,50 }, { 58,80 }, { 59,10 }, { 59,40 }, { 59,70 },
{ 60,0 }, { 60,30 }, { 60,60 }, { 60,90 }, { 61,20 }, { 61,50 }, { 61,80 }, { 62,10 }, { 62,40 }, { 62,70 },
{ 63,0 }, { 63,30 }, { 63,60 }, { 63,90 }, { 64,20 }, { 64,50 }, { 64,80 }, { 65,10 }, { 65,40 }, { 65,70 },
{ 66,0 }, { 66,30 }, { 66,60 }, { 66,90 }, { 67,20 }, { 67,50 }, { 67,80 }, { 68,10 }, { 68,40 }, { 68,70 },
{ 69,0 }, { 69,30 }, { 69,60 }, { 69,90 }, { 70,20 }, { 70,50 }, { 70,80 }, { 71,10 }, { 71,40 }, { 71,70 },
{ 72,0 }, { 72,30 }, { 72,60 }, { 72,90 }, { 73,20 }, { 73,50 }, { 73,80 }, { 74,10 }, { 74,40 }, { 74,70 },
{ 75,0 }, { 75,30 }, { 75,60 }, { 75,90 }, { 76,20 }, { 76,50 },
};
unsigned char lumRed[256][2]={
{ 0,0 }, { 0,30 }, { 0,60 }, { 0,90 }, { 1,20 }, { 1,50 }, { 1,80 }, { 2,10 }, { 2,40 }, { 2,70 },
{ 3,0 }, { 3,30 }, { 3,60 }, { 3,90 }, { 4,20 }, { 4,50 }, { 4,80 }, { 5,10 }, { 5,40 }, { 5,70 },
{ 6,0 }, { 6,30 }, { 6,60 }, { 6,90 }, { 7,20 }, { 7,50 }, { 7,80 }, { 8,10 }, { 8,40 }, { 8,70 },
{ 9,0 }, { 9,30 }, { 9,60 }, { 9,90 }, { 10,20 }, { 10,50 }, { 10,80 }, { 11,10 }, { 11,40 }, { 11,70 },
{ 12,0 }, { 12,30 }, { 12,60 }, { 12,90 }, { 13,20 }, { 13,50 }, { 13,80 }, { 14,10 }, { 14,40 }, { 14,70 },
{ 15,0 }, { 15,30 }, { 15,60 }, { 15,90 }, { 16,20 }, { 16,50 }, { 16,80 }, { 17,10 }, { 17,40 }, { 17,70 },
{ 18,0 }, { 18,30 }, { 18,60 }, { 18,90 }, { 19,20 }, { 19,50 }, { 19,80 }, { 20,10 }, { 20,40 }, { 20,70 },
{ 21,0 }, { 21,30 }, { 21,60 }, { 21,90 }, { 22,20 }, { 22,50 }, { 22,80 }, { 23,10 }, { 23,40 }, { 23,70 },
{ 24,0 }, { 24,30 }, { 24,60 }, { 24,90 }, { 25,20 }, { 25,50 }, { 25,80 }, { 26,10 }, { 26,40 }, { 26,70 },
{ 27,0 }, { 27,30 }, { 27,60 }, { 27,90 }, { 28,20 }, { 28,50 }, { 28,80 }, { 29,10 }, { 29,40 }, { 29,70 },
{ 30,0 }, { 30,30 }, { 30,60 }, { 30,90 }, { 31,20 }, { 31,50 }, { 31,80 }, { 32,10 }, { 32,40 }, { 32,70 },
{ 33,0 }, { 33,30 }, { 33,60 }, { 33,90 }, { 34,20 }, { 34,50 }, { 34,80 }, { 35,10 }, { 35,40 }, { 35,70 },
{ 36,0 }, { 36,30 }, { 36,60 }, { 36,90 }, { 37,20 }, { 37,50 }, { 37,80 }, { 38,10 }, { 38,40 }, { 38,70 },
{ 39,0 }, { 39,30 }, { 39,60 }, { 39,90 }, { 40,20 }, { 40,50 }, { 40,80 }, { 41,10 }, { 41,40 }, { 41,70 },
{ 42,0 }, { 42,30 }, { 42,60 }, { 42,90 }, { 43,20 }, { 43,50 }, { 43,80 }, { 44,10 }, { 44,40 }, { 44,70 },
{ 45,0 }, { 45,30 }, { 45,60 }, { 45,90 }, { 46,20 }, { 46,50 }, { 46,80 }, { 47,10 }, { 47,40 }, { 47,70 },
{ 48,0 }, { 48,30 }, { 48,60 }, { 48,90 }, { 49,20 }, { 49,50 }, { 49,80 }, { 50,10 }, { 50,40 }, { 50,70 },
{ 51,0 }, { 51,30 }, { 51,60 }, { 51,90 }, { 52,20 }, { 52,50 }, { 52,80 }, { 53,10 }, { 53,40 }, { 53,70 },
{ 54,0 }, { 54,30 }, { 54,60 }, { 54,90 }, { 55,20 }, { 55,50 }, { 55,80 }, { 56,10 }, { 56,40 }, { 56,70 },
{ 57,0 }, { 57,30 }, { 57,60 }, { 57,90 }, { 58,20 }, { 58,50 }, { 58,80 }, { 59,10 }, { 59,40 }, { 59,70 },
{ 60,0 }, { 60,30 }, { 60,60 }, { 60,90 }, { 61,20 }, { 61,50 }, { 61,80 }, { 62,10 }, { 62,40 }, { 62,70 },
{ 63,0 }, { 63,30 }, { 63,60 }, { 63,90 }, { 64,20 }, { 64,50 }, { 64,80 }, { 65,10 }, { 65,40 }, { 65,70 },
{ 66,0 }, { 66,30 }, { 66,60 }, { 66,90 }, { 67,20 }, { 67,50 }, { 67,80 }, { 68,10 }, { 68,40 }, { 68,70 },
{ 69,0 }, { 69,30 }, { 69,60 }, { 69,90 }, { 70,20 }, { 70,50 }, { 70,80 }, { 71,10 }, { 71,40 }, { 71,70 },
{ 72,0 }, { 72,30 }, { 72,60 }, { 72,90 }, { 73,20 }, { 73,50 }, { 73,80 }, { 74,10 }, { 74,40 }, { 74,70 },
{ 75,0 }, { 75,30 }, { 75,60 }, { 75,90 }, { 76,20 }, { 76,50 },
};
static
unsigned char lumGreen[256][2]={
{ 0, 0}, { 0,59}, { 1,18}, { 1,77}, { 2,36}, { 2,95}, { 3,54}, { 4,13}, { 4,72}, { 5,31},
{ 5,90}, { 6,49}, { 7, 8}, { 7,67}, { 8,26}, { 8,85}, { 9,44}, { 10, 3}, { 10,62}, { 11,21},
{ 11,80}, { 12,39}, { 12,98}, { 13,57}, { 14,16}, { 14,75}, { 15,34}, { 15,93}, { 16,52}, { 17,11},
{ 17,70}, { 18,29}, { 18,88}, { 19,47}, { 20, 6}, { 20,65}, { 21,24}, { 21,83}, { 22,42}, { 23, 1},
{ 23,60}, { 24,19}, { 24,78}, { 25,37}, { 25,96}, { 26,55}, { 27,14}, { 27,73}, { 28,32}, { 28,91},
{ 29,50}, { 30, 9}, { 30,68}, { 31,27}, { 31,86}, { 32,45}, { 33, 4}, { 33,63}, { 34,22}, { 34,81},
{ 35,40}, { 35,99}, { 36,58}, { 37,17}, { 37,76}, { 38,35}, { 38,94}, { 39,53}, { 40,12}, { 40,71},
{ 41,30}, { 41,89}, { 42,48}, { 43, 7}, { 43,66}, { 44,25}, { 44,84}, { 45,43}, { 46, 2}, { 46,61},
{ 47,20}, { 47,79}, { 48,38}, { 48,97}, { 49,56}, { 50,15}, { 50,74}, { 51,33}, { 51,92}, { 52,51},
{ 53,10}, { 53,69}, { 54,28}, { 54,87}, { 55,46}, { 56, 5}, { 56,64}, { 57,23}, { 57,82}, { 58,41},
{ 59, 0}, { 59,59}, { 60,18}, { 60,77}, { 61,36}, { 61,95}, { 62,54}, { 63,13}, { 63,72}, { 64,31},
{ 64,90}, { 65,49}, { 66, 8}, { 66,67}, { 67,26}, { 67,85}, { 68,44}, { 69, 3}, { 69,62}, { 70,21},
{ 70,80}, { 71,39}, { 71,98}, { 72,57}, { 73,16}, { 73,75}, { 74,34}, { 74,93}, { 75,52}, { 76,11},
{ 76,70}, { 77,29}, { 77,88}, { 78,47}, { 79, 6}, { 79,65}, { 80,24}, { 80,83}, { 81,42}, { 82, 1},
{ 82,60}, { 83,19}, { 83,78}, { 84,37}, { 84,96}, { 85,55}, { 86,14}, { 86,73}, { 87,32}, { 87,91},
{ 88,50}, { 89, 9}, { 89,68}, { 90,27}, { 90,86}, { 91,45}, { 92, 4}, { 92,63}, { 93,22}, { 93,81},
{ 94,40}, { 94,99}, { 95,58}, { 96,17}, { 96,76}, { 97,35}, { 97,94}, { 98,53}, { 99,12}, { 99,71},
{100,30}, {100,89}, {101,48}, {102, 7}, {102,66}, {103,25}, {103,84}, {104,43}, {105, 2}, {105,61},
{106,20}, {106,79}, {107,38}, {107,97}, {108,56}, {109,15}, {109,74}, {110,33}, {110,92}, {111,51},
{112,10}, {112,69}, {113,28}, {113,87}, {114,46}, {115, 5}, {115,64}, {116,23}, {116,82}, {117,41},
{118, 0}, {118,59}, {119,18}, {119,77}, {120,36}, {120,95}, {121,54}, {122,13}, {122,72}, {123,31},
{123,90}, {124,49}, {125, 8}, {125,67}, {126,26}, {126,85}, {127,44}, {128, 3}, {128,62}, {129,21},
{129,80}, {130,39}, {130,98}, {131,57}, {132,16}, {132,75}, {133,34}, {133,93}, {134,52}, {135,11},
{135,70}, {136,29}, {136,88}, {137,47}, {138, 6}, {138,65}, {139,24}, {139,83}, {140,42}, {141, 1},
{141,60}, {142,19}, {142,78}, {143,37}, {143,96}, {144,55}, {145,14}, {145,73}, {146,32}, {146,91},
{147,50}, {148, 9}, {148,68}, {149,27}, {149,86}, {150,45},
};
unsigned char lumGreen[256][2]={
{ 0, 0}, { 0,59}, { 1,18}, { 1,77}, { 2,36}, { 2,95}, { 3,54}, { 4,13}, { 4,72}, { 5,31},
{ 5,90}, { 6,49}, { 7, 8}, { 7,67}, { 8,26}, { 8,85}, { 9,44}, { 10, 3}, { 10,62}, { 11,21},
{ 11,80}, { 12,39}, { 12,98}, { 13,57}, { 14,16}, { 14,75}, { 15,34}, { 15,93}, { 16,52}, { 17,11},
{ 17,70}, { 18,29}, { 18,88}, { 19,47}, { 20, 6}, { 20,65}, { 21,24}, { 21,83}, { 22,42}, { 23, 1},
{ 23,60}, { 24,19}, { 24,78}, { 25,37}, { 25,96}, { 26,55}, { 27,14}, { 27,73}, { 28,32}, { 28,91},
{ 29,50}, { 30, 9}, { 30,68}, { 31,27}, { 31,86}, { 32,45}, { 33, 4}, { 33,63}, { 34,22}, { 34,81},
{ 35,40}, { 35,99}, { 36,58}, { 37,17}, { 37,76}, { 38,35}, { 38,94}, { 39,53}, { 40,12}, { 40,71},
{ 41,30}, { 41,89}, { 42,48}, { 43, 7}, { 43,66}, { 44,25}, { 44,84}, { 45,43}, { 46, 2}, { 46,61},
{ 47,20}, { 47,79}, { 48,38}, { 48,97}, { 49,56}, { 50,15}, { 50,74}, { 51,33}, { 51,92}, { 52,51},
{ 53,10}, { 53,69}, { 54,28}, { 54,87}, { 55,46}, { 56, 5}, { 56,64}, { 57,23}, { 57,82}, { 58,41},
{ 59, 0}, { 59,59}, { 60,18}, { 60,77}, { 61,36}, { 61,95}, { 62,54}, { 63,13}, { 63,72}, { 64,31},
{ 64,90}, { 65,49}, { 66, 8}, { 66,67}, { 67,26}, { 67,85}, { 68,44}, { 69, 3}, { 69,62}, { 70,21},
{ 70,80}, { 71,39}, { 71,98}, { 72,57}, { 73,16}, { 73,75}, { 74,34}, { 74,93}, { 75,52}, { 76,11},
{ 76,70}, { 77,29}, { 77,88}, { 78,47}, { 79, 6}, { 79,65}, { 80,24}, { 80,83}, { 81,42}, { 82, 1},
{ 82,60}, { 83,19}, { 83,78}, { 84,37}, { 84,96}, { 85,55}, { 86,14}, { 86,73}, { 87,32}, { 87,91},
{ 88,50}, { 89, 9}, { 89,68}, { 90,27}, { 90,86}, { 91,45}, { 92, 4}, { 92,63}, { 93,22}, { 93,81},
{ 94,40}, { 94,99}, { 95,58}, { 96,17}, { 96,76}, { 97,35}, { 97,94}, { 98,53}, { 99,12}, { 99,71},
{100,30}, {100,89}, {101,48}, {102, 7}, {102,66}, {103,25}, {103,84}, {104,43}, {105, 2}, {105,61},
{106,20}, {106,79}, {107,38}, {107,97}, {108,56}, {109,15}, {109,74}, {110,33}, {110,92}, {111,51},
{112,10}, {112,69}, {113,28}, {113,87}, {114,46}, {115, 5}, {115,64}, {116,23}, {116,82}, {117,41},
{118, 0}, {118,59}, {119,18}, {119,77}, {120,36}, {120,95}, {121,54}, {122,13}, {122,72}, {123,31},
{123,90}, {124,49}, {125, 8}, {125,67}, {126,26}, {126,85}, {127,44}, {128, 3}, {128,62}, {129,21},
{129,80}, {130,39}, {130,98}, {131,57}, {132,16}, {132,75}, {133,34}, {133,93}, {134,52}, {135,11},
{135,70}, {136,29}, {136,88}, {137,47}, {138, 6}, {138,65}, {139,24}, {139,83}, {140,42}, {141, 1},
{141,60}, {142,19}, {142,78}, {143,37}, {143,96}, {144,55}, {145,14}, {145,73}, {146,32}, {146,91},
{147,50}, {148, 9}, {148,68}, {149,27}, {149,86}, {150,45},
};
static
unsigned char lumBlue[256][2]={
{ 0, 0 }, { 0,11 }, { 0,22 }, { 0,33 }, { 0,44 }, { 0,55 }, { 0,66 }, { 0,77 }, { 0,88 }, { 0,99 },
{ 1,10 }, { 1,21 }, { 1,32 }, { 1,43 }, { 1,54 }, { 1,65 }, { 1,76 }, { 1,87 }, { 1,98 }, { 2, 9 },
{ 2,20 }, { 2,31 }, { 2,42 }, { 2,53 }, { 2,64 }, { 2,75 }, { 2,86 }, { 2,97 }, { 3, 8 }, { 3,19 },
{ 3,30 }, { 3,41 }, { 3,52 }, { 3,63 }, { 3,74 }, { 3,85 }, { 3,96 }, { 4, 7 }, { 4,18 }, { 4,29 },
{ 4,40 }, { 4,51 }, { 4,62 }, { 4,73 }, { 4,84 }, { 4,95 }, { 5, 6 }, { 5,17 }, { 5,28 }, { 5,39 },
{ 5,50 }, { 5,61 }, { 5,72 }, { 5,83 }, { 5,94 }, { 6, 5 }, { 6,16 }, { 6,27 }, { 6,38 }, { 6,49 },
{ 6,60 }, { 6,71 }, { 6,82 }, { 6,93 }, { 7, 4 }, { 7,15 }, { 7,26 }, { 7,37 }, { 7,48 }, { 7,59 },
{ 7,70 }, { 7,81 }, { 7,92 }, { 8, 3 }, { 8,14 }, { 8,25 }, { 8,36 }, { 8,47 }, { 8,58 }, { 8,69 },
{ 8,80 }, { 8,91 }, { 9, 2 }, { 9,13 }, { 9,24 }, { 9,35 }, { 9,46 }, { 9,57 }, { 9,68 }, { 9,79 },
{ 9,90 }, { 10, 1 }, { 10,12 }, { 10,23 }, { 10,34 }, { 10,45 }, { 10,56 }, { 10,67 }, { 10,78 }, { 10,89 },
{ 11, 0 }, { 11,11 }, { 11,22 }, { 11,33 }, { 11,44 }, { 11,55 }, { 11,66 }, { 11,77 }, { 11,88 }, { 11,99 },
{ 12,10 }, { 12,21 }, { 12,32 }, { 12,43 }, { 12,54 }, { 12,65 }, { 12,76 }, { 12,87 }, { 12,98 }, { 13, 9 },
{ 13,20 }, { 13,31 }, { 13,42 }, { 13,53 }, { 13,64 }, { 13,75 }, { 13,86 }, { 13,97 }, { 14, 8 }, { 14,19 },
{ 14,30 }, { 14,41 }, { 14,52 }, { 14,63 }, { 14,74 }, { 14,85 }, { 14,96 }, { 15, 7 }, { 15,18 }, { 15,29 },
{ 15,40 }, { 15,51 }, { 15,62 }, { 15,73 }, { 15,84 }, { 15,95 }, { 16, 6 }, { 16,17 }, { 16,28 }, { 16,39 },
{ 16,50 }, { 16,61 }, { 16,72 }, { 16,83 }, { 16,94 }, { 17, 5 }, { 17,16 }, { 17,27 }, { 17,38 }, { 17,49 },
{ 17,60 }, { 17,71 }, { 17,82 }, { 17,93 }, { 18, 4 }, { 18,15 }, { 18,26 }, { 18,37 }, { 18,48 }, { 18,59 },
{ 18,70 }, { 18,81 }, { 18,92 }, { 19, 3 }, { 19,14 }, { 19,25 }, { 19,36 }, { 19,47 }, { 19,58 }, { 19,69 },
{ 19,80 }, { 19,91 }, { 20, 2 }, { 20,13 }, { 20,24 }, { 20,35 }, { 20,46 }, { 20,57 }, { 20,68 }, { 20,79 },
{ 20,90 }, { 21, 1 }, { 21,12 }, { 21,23 }, { 21,34 }, { 21,45 }, { 21,56 }, { 21,67 }, { 21,78 }, { 21,89 },
{ 22, 0 }, { 22,11 }, { 22,22 }, { 22,33 }, { 22,44 }, { 22,55 }, { 22,66 }, { 22,77 }, { 22,88 }, { 22,99 },
{ 23,10 }, { 23,21 }, { 23,32 }, { 23,43 }, { 23,54 }, { 23,65 }, { 23,76 }, { 23,87 }, { 23,98 }, { 24, 9 },
{ 24,20 }, { 24,31 }, { 24,42 }, { 24,53 }, { 24,64 }, { 24,75 }, { 24,86 }, { 24,97 }, { 25, 8 }, { 25,19 },
{ 25,30 }, { 25,41 }, { 25,52 }, { 25,63 }, { 25,74 }, { 25,85 }, { 25,96 }, { 26, 7 }, { 26,18 }, { 26,29 },
{ 26,40 }, { 26,51 }, { 26,62 }, { 26,73 }, { 26,84 }, { 26,95 }, { 27, 6 }, { 27,17 }, { 27,28 }, { 27,39 },
{ 27,50 }, { 27,61 }, { 27,72 }, { 27,83 }, { 27,94 }, { 28, 5 },
};
4) 近似公式变为:
lumin = lumRed[red][0] + lumGreen[green][0]+ lumBlue[blue][0];
lumin1 = lumRed[red][1] + lumGreen[green][1]+ lumBlue[blue][1];
if( lumin1 >= 200 ) lumin += 2; /* 小数部分产生进位,整数部分加二, 这里不作四舍五入处理 */
else if( lumin1 >= 100 ) lumin += 1;
5) 本算法的关键在于将费时的浮点运算转换为两个整数加法和两个判断处理,在嵌入式系统中对于无浮点协处理器的 MCU/MPU
性能的提高是极为显著的。是典型的以空间换时间的算法。
6) 附上利用快速算法的实际效果,以及与 PhotoShop CS2 中的亮度直方图的对比。