可能重复:
Find the most representative color in a grid of pixels
我已经将一帧RGB值转换为HSB值数组(每个都是包含h,s和b浮点数的结构)。
我这样做是因为帧中平均RGB颜色的算法不是很有效,这就是我的意思:
int Rchannel = 0;
int Gchannel = 0;
int Bchannel = 0;
for(int i = 0; i < framesize; ++i){
Rchannel += frame[i].r;
Gchannel += frame[i].g;
Bchannel += frame[i].b;
}
Rchannel /= (framesize - 1);
Gchannel /= (framesize - 1);
Bchannel /= (framesize - 1);
int concat = 0xff00000 | (r << 16) | (g << 8) | b; // Not very good .. :(
它计算的平均值不是帧中最具视觉效果的,所以我决定使用HSB。你能否建议一些可以计算这些HS值中最主要颜色的算法? (C ++中的prefferabley)。