2012-06-29 3 views
5

RGB 16 진수 색상의 배열이 있습니다. 색상 유사성과 임계 값으로 그룹화하는 빠르고 더러운 방법을 찾고 싶습니다.임계 값을 사용하여 유사한 HEX 색상 찾기

규격 : enter image description here

+0

http://en.wikipedia.org/wiki/Color_quantization 또는 http://www.php.net/manual/en/function.imagetruecolortopalette.php로 손 볼 수도 있습니다. – biziclop

+0

여러 색상 중에서 색조, 채도 및 값을 비교할 수 있도록 HSV 모델을 사용하는 것이 좋습니다. – TheZ

답변

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을 비교한다. 요인은 조정될 수 있습니다 (특히 파란색은 더 높은 요소를 얻을 수 있음). 합계 (임계 값과 일치시키기 위해)

"느리고 깨끗한"솔루션의 경우 here (및 here은 보다 실용적인 접근법).

1

color space 선택 및 정의 "유사성"로서, 예를 들어 Euclidean 두 색상의 좌표 사이의 거리. 예를 들어, HSL/HSV가 RGB보다 더 나은 선택 일 수 있습니다.

+0

옙 나는 그것도 많이 상상했다. 누구든지 편리하게 사용할 수있는 공식을 찾고 있습니다. – Arturino

+0

@Artur : 무엇을위한 공식입니까? 예 : HSV는 Wikipedia 기사에서 제공됩니다. 유클리드 거리는 단순히 sqrt ((a1-a2)^2 + (b1-b2)^2 + (c1-c2)^2)입니다. –

+1

감사합니다.이 또한 도움이되었습니다. http://stackoverflow.com/questions/1633828/distance-between-colours-in-php/1634206#1634206 – Arturino

관련 문제