Algorithme de conversion RVB en HSV et HSV en RVB dans la plage 0-255
Un algorithme de conversion d'espace colorimétrique est présenté pour transformer la couleur RVB valeurs en HSV et vice versa, en conservant la plage de 0 à 255 dans les deux espaces colorimétriques. Voici comment cela fonctionne :
Conversion RVB en HSV (rgb2hsv)
Pour convertir les valeurs RVB (r, g, b) en HSV (h, s, v) :
- Déterminez les valeurs minimales et maximales entre r, g et b.
- Calculez la composante de valeur (v) comme valeur maximale.
- Calculez la ou les composantes de saturation comme la proportion de (v - valeur minimale) à v.
-
Déterminez la composante de teinte (h):
- Si r est maximum, h est calculé comme (g - b) / (v - valeur minimale).
- Si g est maximum, h est 2,0 (b - r) / (v - valeur minimale).
- Si b est maximum, h est 4,0 (r - g) / (v - valeur minimale).
- Convertissez l'angle h en degrés.
- Si h est négatif, ajoutez 360 degrés.
Conversion HSV en RVB (hsv2rgb)
Pour convertir les valeurs HSV (h, s, v) en RVB (r, g, b) :
- Si s est nul, définissez r, g et b sur v.
- Sinon, calculez la fraction d'angle de teinte (hh) et le plancher (i) de hh.
- Calculez les valeurs p=v⋅(1−s), q=v⋅(1−s⋅(1−hh)), et t= v⋅(1−s⋅hh).
-
En fonction de i, attribuez des valeurs à r, g et b:
- Cas 0 : r=v, g=t, b=p
- Cas 1 : r=q, g=v, b=p
- Cas 2 : r=p, g=v, b=t
- Cas 3 : r=p, g=q, b=v
- Cas 4 : r=t, g=p, b=v
- Cas 5 : r=v, g=p, b=q
Ces fonctions permettent une conversion efficace et précise entre les espaces colorimétriques RVB et HSV, ce qui est vital pour les applications impliquant la manipulation des couleurs et le traitement d'images.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn