Bonjour,
Je suis à la recherche d'un algorithme pour modifier la teinte d'un pixel.
J'ai hésité à poster ici ou dans la section algorithme, mais, étant donné la nature du code, j'ai préférer poster ici. J'espère avoir bien fait...
Voici le problème :
Chaque pixel est défini par un tableau de taille 3 :
col[0] = R
col[1] = G
col[2] = B
R,G,B ∈ [0,1]
Je parcours tous les pixels d'une image grâce à une boucle. Je souhaiterais modifier la teinte de ces pixels suivant la valeur :
hue ∈ [0,360]
Je ne vois pas comment m'y prendre simplement. Avec les recherches que j'ai effectuées, je pensais me baser sur un modèle du style HSB ou HSV où il faudrait que je convertisse mes valeurs RGB pour récupérer les valeurs S et B (ou S et V) correspondante, puis, en ajoutant la teinte (H) en troisième composante, reconvertir en RGB. Ce qui donnerait quelque chose du genre :
//hsv[0] = H;
//hsv[1] = S;
//hsv[2] = V;
hsv = rgb2hsv(col);
hsv[0] = hue;
col = hsv2rgb(hsv);
Cependant, je ne sais même pas si ça fonctionnerais et je me demande s'il n'y a pas plus simple étant donné que je n'utilise pas la saturation ni la luminosité et que les fonctions de conversion entre RGB et HSV sont relativement compliquées.
Merci d'avance.
Partager