首页   注册   登录
 luminqi 最近的时间轴更新

luminqi

V2EX 第 358073 号会员,加入于 2018-10-23 21:33:18 +08:00
今日活跃度排名 9223
luminqi 最近回复了
11 天前
回复了 luminqi 创建的主题 JavaScript javascript 获取图片主颜色
@TangMonk
首先像素的 rgb 值有 256*256*256 种可能,所以如果直接遍历然后统计相同的 rgb 值是不靠谱的。
这里其实会涉及到色彩量化(color quantization)。比较常见的算法有 Median cut, Octree, KMeans。
我并没有采用常规的方案,我的想法是如果能先把各个像素按照其颜色相近度排序,这样相似的颜色就会靠在一起,形成一条连续的色带。那么剩余的工作就很简单了,就是把这条色带切成一块一块,每一块代表一种颜色,每一块的颜色是它里面所有像素 rgb 值的平均值。比较可惜的是其实并不能完全对颜色排序,这里我采用色调(hue)进行排序并不完美。
你提出的算法我也想过,我觉得可以先对每个像素的 r 值,g 值,b 值向右位移(>>)3 位(或者更多),这样可以减少出现不同 rgb 值的概率。然后用一个 hash map 统计相同的 rgb 值。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   725 人在线   最高记录 3821   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 11ms · UTC 20:36 · PVG 04:36 · LAX 12:36 · JFK 15:36
♥ Do have faith in what you're doing.
沪ICP备16043287号-1