far3ousa
Messages postés2Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention31 août 2008
-
29 août 2008 à 22:07
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
1 sept. 2008 à 13:16
je travaille sur Qt en C++
je voulais transformer une image de type QImage en une matrice dont l'élément(i,j) represente la valeur du pixel(i,j)
je vait retrancher ,et multiplier les elements de ma matrice par un coefficient reel
qu'elles sont les fonction qui peuvent m'aider dans Qt ? j'ai essaye avec pixel(i,j)mais elle retourne une valeur de type unsinged int auquel je ne peut rien faire
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 1 sept. 2008 à 13:16
Salut,
(Je suis nul en QT)
Il y a de bonne chance pour que les unsigned int que tu récupères soient du RGB ou du ARGB.
RGB ça veut dire dans ton long de 32bits, tu en as 8 pour le rouge, 8 pour le vert et 8 pour le bleu. Le couleur finale du pixel est une combinaison de ces trois couleurs (
Comme précisé dans la doc, ton unsigned ressemble à ça en hexa :
0x00bbggrr
Donc du rouge c'est ça : 0x000000FF, du blanc c'est ça : 0x00FFFFFF...
Tu peux donc agir sur les 3 composantes indépendament pour arriver aux effets recherchés.
Il me semble que dans ton cas, il faut que tu réalises tes opérations sur les trois composantes séparément, en faisant attention aux dépassement (Si tu multiplie une composante à 200 par deux, tu vas obtenir du 400, ce qui ne tient pas sur 8 bits -> obligé de limiter à 255).