6

我有一组 RGB 十六进制颜色。我想找到一种快速而肮脏的方法来按颜色相似性和阈值对它们进行分组。

规格:在此处输入图像描述

4

2 回答 2

3

又快又脏:

$dr = $red1   - $red2;
$dg = $green1 - $green2;
$db = $blue1  - $blue2;
$fr = 2; // may be adjusted
$fg = 4; // "
$fb = 1; // "
$distance_squared = $fr * $dr * $dr + $fg * $dg * $dg + $fb * $db * $db;

然后,您将$distance_squared与阈值的平方进行比较。可以调整因子(特别是蓝色可能会得到更高的因子),以及它们的总和(为了匹配阈值)

对于“缓慢而干净”的解决方案,我将从这里开始(这里是更实用的方法)。

于 2012-06-29T18:07:14.437 回答
1

选择一个颜色空间,并将“相似性”定义为例如两种颜色坐标之间的欧几里得距离。例如,HSL/HSV 可能是比 RGB 更好的选择。

于 2012-06-29T17:19:39.793 回答