如何在扩展名为 BMP 的 img 中找到 16 种最常见的颜色
how to find 16 most common colors in the img with extension BMP
for(int yy=0; yy<height/2; yy++)
{
SDL_Color kolor = getPixel(xx,yy); //we are gettig each pixel in img;
setPixel(xx+width/2,yy+height/2,kolor.r,kolor.g,kolor.b );
//setPixel(xx,yy+height/2,kolor.r,kolor.g,kolor.b);
//setPixel(xx+width/2,yy,kolor.r,kolor.g,kolor.b);
}
}
我正在尝试使用循环在 img 中查找 16 种最常见的颜色并获取其 RGB。
我一直在使用映射并尝试对结构做一些事情,但一切都无济于事。
如果您对如何找到这些颜色有一些想法,我将不胜感激。谢谢
如果你有一张 4x4 的图片,那就简单了。
同样简化,直方图函数每个 RGB 级别 (0-255x3),期望每个 "popular" 颜色都在那里。将混乱分类为每个使用的前 16 名,再次期望它们是正确的。除非你有狂野的色彩旋转,否则别无他法。
第二次检查,看看流行的颜色是否真的存在。
最后,您可能想要分组到 "close enough" 类别中,jpeg 是有损的,4 个 RGB 变化范围内的任何东西都被分组在一起,将 0-256 值减少到 0-64,除非颜色变化很大。如果您使用过绘画程序魔术棒,您就会知道 tolerance=0 会犯超级错误,同样的想法。
中值滤波器。它肯定会通过合并成平均杂乱的颜色来减少颜色数量,采样 3x3、4x4、圆形加权采样区域。
如果一切都失败了,请窃取 256 色安全 Web 调色板,然后从那里开始工作。
SWAG-科学的野驴猜法,祝你好运
for(int yy=0; yy<height/2; yy++)
{
SDL_Color kolor = getPixel(xx,yy); //we are gettig each pixel in img;
setPixel(xx+width/2,yy+height/2,kolor.r,kolor.g,kolor.b );
//setPixel(xx,yy+height/2,kolor.r,kolor.g,kolor.b);
//setPixel(xx+width/2,yy,kolor.r,kolor.g,kolor.b);
}
}
我正在尝试使用循环在 img 中查找 16 种最常见的颜色并获取其 RGB。
我一直在使用映射并尝试对结构做一些事情,但一切都无济于事。
如果您对如何找到这些颜色有一些想法,我将不胜感激。谢谢
如果你有一张 4x4 的图片,那就简单了。 同样简化,直方图函数每个 RGB 级别 (0-255x3),期望每个 "popular" 颜色都在那里。将混乱分类为每个使用的前 16 名,再次期望它们是正确的。除非你有狂野的色彩旋转,否则别无他法。 第二次检查,看看流行的颜色是否真的存在。 最后,您可能想要分组到 "close enough" 类别中,jpeg 是有损的,4 个 RGB 变化范围内的任何东西都被分组在一起,将 0-256 值减少到 0-64,除非颜色变化很大。如果您使用过绘画程序魔术棒,您就会知道 tolerance=0 会犯超级错误,同样的想法。 中值滤波器。它肯定会通过合并成平均杂乱的颜色来减少颜色数量,采样 3x3、4x4、圆形加权采样区域。
如果一切都失败了,请窃取 256 色安全 Web 调色板,然后从那里开始工作。
SWAG-科学的野驴猜法,祝你好运