在 Canvas 上简化颜色
Simplifying Colors on Canvas
我的最终目标是有两个版本的图像,第一个是基本的默认图像,但第二个应该是第一个的简化版本,只使用基本的颜色。
我想将所有红色范围更改为 (255, 0, 0)
。我曾尝试手动添加红色范围,但仅对于一种颜色,就有大约 20 种不同的陈述。我想知道任何人都会这样做。我调查了 color quantization,这似乎非常相关且有用。
这是我想做的一个例子:
如有任何帮助,我们将不胜感激。
我相信我已经为我的问题找到了合适的答案。
我通过计算每个像素的 'color distance' 解决了我的问题。然后我遍历我的默认颜色并比较每个颜色的距离。然后我检查哪个 'distance' 是最低的。最接近我的默认颜色的颜色是最接近的匹配。
我用来计算颜色距离的公式如下:
Math.sqrt( Math.pow((r1 - r2), 2) + Math.pow((g1 - g2), 2) + Math.pow((b1 - b2), 2));
- 感谢 Amadan 提供有关颜色量化的提示。
我的最终目标是有两个版本的图像,第一个是基本的默认图像,但第二个应该是第一个的简化版本,只使用基本的颜色。
我想将所有红色范围更改为 (255, 0, 0)
。我曾尝试手动添加红色范围,但仅对于一种颜色,就有大约 20 种不同的陈述。我想知道任何人都会这样做。我调查了 color quantization,这似乎非常相关且有用。
这是我想做的一个例子:
如有任何帮助,我们将不胜感激。
我相信我已经为我的问题找到了合适的答案。
我通过计算每个像素的 'color distance' 解决了我的问题。然后我遍历我的默认颜色并比较每个颜色的距离。然后我检查哪个 'distance' 是最低的。最接近我的默认颜色的颜色是最接近的匹配。
我用来计算颜色距离的公式如下:
Math.sqrt( Math.pow((r1 - r2), 2) + Math.pow((g1 - g2), 2) + Math.pow((b1 - b2), 2));
- 感谢 Amadan 提供有关颜色量化的提示。