RGB altı renk dizim var. Onları renk benzerliği ve eşik değeriyle gruplandırmak için hızlı ve kirli bir yol bulmak istiyorum.Eşiği kullanarak benzer HEX renklerini bulma
spektrumu:
RGB altı renk dizim var. Onları renk benzerliği ve eşik değeriyle gruplandırmak için hızlı ve kirli bir yol bulmak istiyorum.Eşiği kullanarak benzer HEX renklerini bulma
spektrumu:
hızlı ve kirli:
$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;
Daha sonra eşik karesiyle $distance_squared
karşılaştırmak istiyorum. Faktörler (özellikle mavi daha yüksek bir faktör alabilir) ve toplamları (eşiği eşleştirmek için)
"Yavaş ve temiz" bir çözüm için here (ve here) daha pratik bir yaklaşım).
bir color space seçin ve tanımlamak "benzerlik" olarak, örneğin İki rengin koordinatları arasındaki öklid mesafesi. HSL/HSV, örneğin RGB'den daha iyi bir seçim olabilir.
evet bunu çok düşündüm. Sadece birinin kullanışlı bir formülü var ;-) – Arturino
@Artur: Ne için bir formül? Dönüşüm formülleri, ör. HSV Wikipedia makalesinde verilmiştir. Öklid mesafesi sadece kare ((a1-a2)^2 + (b1-b2)^2 + (cı-c2)^2) 'dir. –
Teşekkürler - Ayrıca şunu da faydalı buldum: http://stackoverflow.com/questions/1633828/distance-between-colours-in-php/1634206#1634206 – Arturino
http://en.wikipedia.org/wiki/Color_quantization. Ya da http://www.php.net/manual/en/function.imagetruecolortopalette.php – biziclop
ile uğraşmayı deneyebilirsiniz. Ben bir HSV modelini kullanmanızı tavsiye ederim. Böylece renk tonları arasında Ton, Doygunluk ve Değer seçeneklerini karşılaştırabilirsiniz. – TheZ