Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用阈值查找相似的十六进制颜色_Php_Javascript_Image Processing - Fatal编程技术网

Php 使用阈值查找相似的十六进制颜色

Php 使用阈值查找相似的十六进制颜色,php,javascript,image-processing,Php,Javascript,Image Processing,我有一个RGB十六进制颜色数组。 我想找到一种快速而肮脏的方法,根据颜色相似性和阈值对它们进行分组 规格:选择a,并将“相似性”定义为两种颜色坐标之间的欧几里德距离。例如,HSL/HSV可能是比RGB更好的选择。快速脏车: $dr = $red1 - $red2; $dg = $green1 - $green2; $db = $blue1 - $blue2; $fr = 2; // may be adjusted $fg = 4; // " $fb = 1; // " $distance_

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

规格:

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

快速脏车:

$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
与阈值的平方进行比较。可以调整系数(尤其是蓝色可能会得到更高的系数),以及它们的总和(以便匹配阈值)


对于“缓慢而干净”的解决方案,我将从(以及更实际的方法)开始。或者你可以尝试摆弄一下,我建议你使用HSV模型,这样你可以比较几种颜色的色调、饱和度和颜色值。是的,我也这么认为。只要找一个公式,如果有人手边有;-)@阿图尔:什么的公式?维基百科文章中给出了HSV等的换算公式。欧几里德距离就是sqrt((a1-a2)^2+(b1-b2)^2+(c1-c2)^2)。谢谢-我还发现这很有用: