Bonjour,
Je désire effectuer des changements sur les pixels d'une image.
Pour ce que je veux faire, Matlab est un peu lent, une partie de mon
programme est donc en C.
D'abord je charge mon image avec "imread", ensuite je donne la matrice
obtenue en paramètre à ma fonction en C.
Du côté de ma fonction en C, je me retrouve avec un vecteur contenant
d'abord les valeurs de rouge de tous les pixels de mon image, ensuite les
valeurs de vert, puis les valeurs de bleu. Jusque là, rien d'anormal.
Mais je me suis aperçue que chacune de ces valeurs étaient encodées sur
4octets (contre 1octet à l'habitude).
Concrètement, en admettant que je veuille transformer le haut gauche de mon
image en un simple carré rouge. Je parcours mon vecteur avec les bornes qui
vont biens, pour la valeur de rouge je mets le maximum (à savoir 0xFFFFFFFF) et pour les autres je mets 0.
J'obtiens bien un carré rouge, mais là où cela devient surprenant c'est si au
lieu de 0xFFFFFFFF, je mets une valeur du genre 0xfbf9faf0, je me retrouves
avec des traits horizontaux dans mon carré, au lieu d'un rouge uni différent du précédent.
Ma question est donc, à quoi correspond ce nombre ?
Visiblement, il n'y a aucun lien avec la valeur 255 (qui est utilisée la
plupart du temps).
Les traits horizontaux n'ont pas l'air d'être "en random", il doit donc
y avoir une logique derière tout cela, mais laquelle ?
Merci pour votre aide !
--
pootchi
Partager