IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Lire et afficher une image en Qt


Sujet :

Qt

  1. #41
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par lisco Voir le message
    oui mais j'ai une image en niveau de gris c'est à dire sans couleur , est ce toujours possible avec setpixel?
    et est ce que je peux utiliser file.read(monfichier.seek(i)) pour lire les pixels de l'image dans le fichier en faisant une boucle
    Si tu a une image en niveau de gris tu mets la valeur des 3 composant RGB à la meme valeur representant le niveau de gris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QRgb value;
    value = qRgb(255, 255, 255);
    uneImage.setPixel(x,y,value);//Pixel tout blanc
    Regarde bien la doc Qt tu auras plein d'information sur les question que tu te pose au niveau de l'utilisation de certaine fonction.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  2. #42
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par lisco Voir le message
    oui mais j'ai une image en niveau de gris c'est à dire sans couleur , est ce toujours possible avec setpixel?
    et est ce que je peux utiliser file.read(monfichier.seek(i)) pour lire les pixels de l'image dans le fichier en faisant une boucle

    la je ne comprend plus rien... Qu'es ce que tu as compris et pas compris??

  3. #43
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Bonjour ,
    Alors Yan, ce que j'ai compris c'est puisque j'ai une image en niveau de gris les composantes rgb sont toutes égales mais j'ai les valeurs de mes pixels différentes de 255, à mon avis je dois avoir ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = qrgba(255,255,255,valeur du pixel à lire dans mon fichier) ;
    si c'est pas le cas je pense alors que la valeur du pixel contenu dans mon fichier doit etre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = qrgba(0,0,0,valeur du pixel à lire dans mon fichier) ;
    Alors je reexplique, j'ai mon fichier image comme je l'ai presenté des le debut :là j'ai lus l'en-tete de mon fichier et j'ai recupéré le nombre de lignes et de colonnes ensuite la taille des commentaires, ce qui me montre par où commence les pixels de l'image et je dois lire les pixels à partir de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file.seek(Taille des commentaires) ce qui équivaut à file.seek(437) ;
    ensuite je mets les pixels dans le QImage en utilisant la méthode setpixel;
    cela fait aujourd'hui 4jours je suis dessus, mais je vais pas baisser les bras avec votre aide et je vais bien comprendre si vous m'aidez, alors voici mon bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    QImage uneImage(rows, columns, QImage::Format_ARGB32) ;
     
       uint valeur_pixel ;
     
     
     for (int k = 0; k < (rows * columns * 4) ; k = k + 6000)
       {
          file.seek((128 + CommentLength) + k) ;// Je lis le fichier à cette position que je vais incrementer de la taille des donnes lues
                                                //cad de la valeur de rows*taille d'un pixel:4*1500 = 6000
     
       for (int n = 0; n < rows; n++)
       {
     
              QDataStream in(&file) ;// Je lis le fichier
     
           for (int m = 0; m < columns; m++)
           {
                in >> valeur_pixel ;// j'ecrase les valeurs lues apres avoir remplit mon QImage a chaque tour de boucle.
     
                uneImage.setPixel(n,m,valeur_pixel) ;//je remplis QImage avec la valeur_pixel
     
     
     
    ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage));

    Le grand probleme c'est de reussir a lire mon fichier qui fait 1200 * 1300 et de recuperer les pixels ??

  4. #44
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Moi perso j'ai du mal a suivre. Si tu as un image en niveau de gris et que chaque niveau de gris est codé sur 8 bits cela veut dire que tu dois lire 1200*1300 octets. Donc tu peux utiliser une buffer comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char* buff =  new char[1200*1300];//Buffer ou vont etre les pixels
    file.read ( buff,1200*1300);//là tu lis tout les pixels de ton image a condition de t'etre positionné au bonne endoit dans ton fichier
    Normalement une fois que tu as fait ca, tu dois afficher ton image. Je ne suis pas sur que Qt gère les images 8 bits niveau de gris ou alors voir ce format peut etre je comprend pas bien ce qu'il fait (QImage::Format_Indexed8). Si ce format de correspond pas tu crée une image RGB et avec set pixel tu fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QRgb value;
    value = qRgb(Buff[i], buff[i], buff[i]);//La variable i est l'index correspondant a ton pixel
    uneImage.setPixel(x,y,value);//Tu renseigne la valeur du pixel dans l'image
    Sinon il faudrait que tu te mettes d'accord dans le format de ton image. C'est a dire comment elle se trouve dans ton fichier. Au debut tu parlais d'une image 8 bits puis RGB puis avec des valeurs composées de float. Tout cela est possible mais ça on peut pas le savoir seul toi peux nous renseigner. Et en fonction de comment sont codés les pixels les methodes pour arriver à l'affichage d'une image peuvent changer.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #45
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Merci Superjaja, alors je vais apporter des precisions :
    J'ai une image float en niveau de gris codé sur 32 bits dans un fichier que je dois lire pour afficher l'image.

  6. #46
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bon on va faire plus rapide.
    Tes pixels sont codés en quoi dans ton fichier???
    ce sont des octets? des entier? des float?

    La j'y comprend plus rien. Tu as toute les indications qu'il faut. Si tu ne comprend pas des explications, demande des précisions. La on tourne en rond... Vue ce que tu explique, y as vraiment rien de compliquer:
    1- tu sait lire l'entête
    2- ne tien pas compte de ma remarque sur seek. j'ai dit une connerie apparemment.
    3- Si tes pixels sont des octets, pourquoi tu lit des uint?
    4- Pourquoi tu met dans la couche alpha la valeur de ton pixel?

  7. #47
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    là je pense que c'est moi qui comprends pas trop ;je résume encore:

    J'ai une image float en niveau de gris et chaque pixel est codé sur 32 bits.
    Donc je pense que chaque pixel occupe 4 octets en mémoire.Mais la valeur des pixels c'est des float.
    dans mon fichier l'en-téte occupe 437 octets et le reste ce sont les pixels de l'image sur 1200 lignes et 1300 colonnes.
    J'ai utilisé la couche alpha car je sé pas trop ce que cela represente si les rgb sont les composantes couleurs, dsl.

  8. #48
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    L'alpha, c'est l'opacité, la transparence. Pour un niveau de gris, il faut affecter la même valeur à R, G et B.

    La valeur des float se trouve dans quel espace ? C'est encore LE détail qui manque pour que tu puisses créer un QImage ou QPixmap.

  9. #49
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    dans quel espace ?? j'ai pas bien compris ta question,si tu peux eclaircir stp??

    j'ai ces valeurs dans un fichier, et c'est une image en niveau de gris , je sais pas si ça repond a ta question?

  10. #50
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par lisco Voir le message
    dans quel espace ?? j'ai pas bien compris ta question,si tu peux eclaircir stp??

    j'ai ces valeurs dans un fichier, et c'est une image en niveau de gris , je sais pas si ça repond a ta question?
    En general les images sont pas en float sauf si elles ont subit une transformation ou si elles sont codée de maniere particulire. Ce que te demande IrmatDen c'est en fait dans quel espace ce trouve tes float pour pouvoir faire la transformation inverse et passer de float en octet et ainsi pouvoir afficher ton image (enfin si je me trompe pas sur ce que dit IrmatDen).
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  11. #51
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Superjaja tu m'avais donné ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QImage((uchar*)image , rows, columns, QImage::Format_RGB32)??
    Ne gére que les images en uchar??est ce je me trompe ??

  12. #52
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    l'espace dans lequel se trouve mes floats, je sais pas trop désolé IrmatDen .
    Je savais pas que les images en float on subit une transformation ou ont été codées d'une maniere particuliere merci a Superjaja pour ces precisions. Mais je suis preneur si vous pouvez me dire les methodes de transformations qui existe pour passer de float en octet!!

  13. #53
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par lisco Voir le message
    Superjaja tu m'avais donné ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QImage((uchar*)image , rows, columns, QImage::Format_RGB32)??
    Ne gére que les images en uchar??est ce je me trompe ??
    C'est a dire qu'elle ne gere que les images ou les pixels sont représentés par des octets. Donc directement si tu as des float c'est pas possible d'utiliser ça.

    Sinon vu ou on en est dans un premier temps je pense que tu devrais utiliser setPixel() et pas crée une image directement a partir du buffer pour les raison qu'a precisé yan.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  14. #54
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par superjaja Voir le message
    En general les images sont pas en float sauf si elles ont subit une transformation ou si elles sont codée de maniere particulire. Ce que te demande IrmatDen c'est en fait dans quel espace ce trouve tes float pour pouvoir faire la transformation inverse et passer de float en octet et ainsi pouvoir afficher ton image (enfin si je me trompe pas sur ce que dit IrmatDen).
    C'était presque ça
    Il n'y a pas nécessairement de notion d'inversion ; si tu prends une image HDR, elles sont codées en float, et certains appareils photos les enregistrent directement dans ce format (cf wiki). Par contre, tu peux assurément parler de conversion

    @ lisco
    Dit autrement, je demandais si tes valeurs:
    a. sont comprises entre 0-1 (auquel cas, tu multiplies par 255 dans un premier temps) ?
    b. sont dans un autre espace que 0-1, auquel cas il faut que tu saches lequel pour pouvoir les ramener entre 0 et 255.

  15. #55
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Bonjour, d'aprés vos conseils voici la voie que j'ai opté pour voir le resultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    char* buff = (char*) malloc(isize);
       file.read ( buff,rows*columns * 4);
    QImage uneImage((uchar*)buff , rows, columns, QImage::Format_RGB32) ;
       QRgb value;
       QImage uneImage ;
      // int qGray ( int r, int g, int b ) ;
      for (int x = 0; x < rows; x = x + 1)
       {
     
        for (int y = 0; y < columns; y = y + 1)
        {
     
          value = qRgb(*(buff+(x*columns+y)), *(buff+(x*columns+y)), *(buff+(x*columns+y)));
          uneImage.setPixel(x,y,value);
     
     
          }
     }
     
    ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage));

    Cela m'affiche une image en niveau de gris ,mais une image vraiment tres bizarre et tres foncé et aussi qui depasse les dimansions de l'image originale en fait l'image depasse meme l'ecran de mon ordinateur !!!tres bizarre pour moi alors que j'ai alloue la bonne taille???
    Si vous pouvez encore m'aider svp et merci d'avance a vous tous .

  16. #56
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pourquoi est tu revenu en arrière ??
    l'autre code était bien mieux.

    Comme te la demandé irmatden, connaît tu la dynamique de tes valeur? (0-1, min et max, positif, négatif,...)
    C'est ce dernier point qui va changer la façon de traiter la lecture.

    Dans la plupart des cas, il te faudra sûrement retrouver quelques valeurs dans ton image. Comme le min et le max par exemple.
    Vue la taille de ton images, tu peut utiliser un buffer de float (et non de char) qui contiendra les valeur de ton mage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::vector<float> buffer(rows*columns);
    for (int id = 0 ; i < rows*columns ; ++i)
    {
        in >> buffer[id];
    }
    Ensuite avec ta méthode de convention float -> pixel tu rempli les pixel de ton image

  17. #57
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par Lisco
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QImage uneImage((uchar*)buff , rows, columns, QImage::Format_RGB32) ;
    A moins que je ne me trompe cette ligne ne sert a rien si tu remplis avec setPixel() et il vaut mieux que tu utilises ça je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QImage uneImage(rows, columns, QImage::Format_RGB32);
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  18. #58
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par yan Voir le message
    Pourquoi est tu revenu en arrière ??
    l'autre code était bien mieux.

    Comme te la demandé irmatden, connaît tu la dynamique de tes valeur? (0-1, min et max, positif, négatif,...)
    C'est ce dernier point qui va changer la façon de traiter la lecture.

    Dans la plupart des cas, il te faudra sûrement retrouver quelques valeurs dans ton image. Comme le min et le max par exemple.
    Vue la taille de ton images, tu peut utiliser un buffer de float (et non de char) qui contiendra les valeur de ton mage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::vector<float> buffer(rows*columns);
    for (int id = 0 ; i < rows*columns ; ++i)
    {
        in >> buffer[id];
    }
    Ensuite avec ta méthode de convention float -> pixel tu rempli les pixel de ton image
    Bonjour ,

    Yan là je vois pas trop comment remplir les pixels dans l'image , je dois utiliser setpixel?? voila ce que j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     std::vector<float> buffer(rows*columns);
           for (int i = 0 ; i < rows*columns ; i++)
          {
     
                    in >> buffer[i];
     
    for (int x = 0; x < rows; x = x + 1)
      {
     
        for (int y = 0; y < columns; y = y + 1)
        {
     
          value = qRgb(buffer[x][y], buffer[x][y] , buffer[x][y]);
     
          uneImage.setPixel(x,y,buffer);    //Reconstruction de l'image pixel par pixel, x et y étant l'index de l'image
     
        }
     
     
      }
          ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage));*/

    Mais ça marche pas et ça plante.
    Sinon le niveau de gris max de mon image est 1 et le niveau min est 0.

    J'ai pas tres bien compris cette methode yan si tu peux donner plus d'explication stp sur la maniere de remplir les pixels dans l'image.
    Merci d'avance

  19. #59
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 237
    Points : 131
    Points
    131
    Par défaut
    Sinon ce sur quoi j'ai travaillé aujourd'hui est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
      char* image = (char*) malloc(isize);
     
       file.read ( image,rows*columns * 4);//Chaque pixel est codé sur 32 bits donc je multiplie par 4.
     
        for (int i = 0; i < rows; i++)
       {
           for (int j = 0; j < columns; j++)
           {
               *(image + (i*columns + j)) = ((MaxSignalLevel - MinSignalLevel) * *(image +(i*columns + j)))/(QuantLevels) ;
                // w = *(image + (i*columns + j)) ;
           }
       }
     
       QImage uneImage((uchar*)image , rows, columns, QImage::Format_ARGB32) ;
     
       //Jusqu'ici je peux afficher l'image mais en RGB, et ensuite j'essaie de transformer l'image en niveaux de gris.
     
      // std::vector<float> buffer(rows*columns);
     
      QVector<QRgb> table(256) ;
       uneImage.setColorTable(table) ;
     
       for (int l = 0; l < 256 ; l++)
       {
           table[l] = qRgb(l, l, l) ;
     
           uneImage.setColorTable(table) ;
       }
     
     
       ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage));

    Ceci ça marche , j'arrive à afficher l'image mais elle est en RGB et j'ai des problémes au niveau de la convertion en niveau de gris (cf voir code).
    merci

  20. #60
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Le code de yan sert a lire dans ton fichier binaire et remplace le file.read().
    Il a repris ton code de depart avec le QDataStream et il utilise à la place de
    char* buff=malloc(rows*columns); ça std::vector<float> buffer(rows*columns);
    En gros je répete les etapes:

    1 - tu lis les pixel de ton fichier comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::vector<float> buffer(rows*columns);
    for (int id = 0 ; i < rows*columns ; ++i)
    {
        in >> buffer[id];
    }
    2- Ici tu as donc tous tes pixels dans la varaible buffer et tu dois remplir ton image maintenant avec setPixel()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    QImage uneImage(rows, columns, QImage::Format_RGB32);
     
    for (int x = 0; x < rows; x = x + 1)
       {
     
        for (int y = 0; y < columns; y = y + 1)
        {
     
          value = qRgb( buff[x*columns+y] * 255, buff[x*columns+y] * 255, buff[x*columns+y] * 255);
          uneImage.setPixel(x,y,value);
     
     
          }
     }
     
    ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage));
    Je suis partie du principe que tu as des pixel entre 0 et 1 et que tu as juste a faire une multiplication par 255 comme on ne sait pas exactement ce quie représentent tes float...
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

Discussions similaires

  1. Lire et afficher une image
    Par pretyy dans le forum Débuter
    Réponses: 6
    Dernier message: 01/02/2012, 12h22
  2. Lire et afficher une image au format pgm
    Par didi_di dans le forum C++
    Réponses: 4
    Dernier message: 17/12/2009, 15h19
  3. Lire et afficher une image 3D (RGB)
    Par 77Camille dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/06/2007, 12h09
  4. Lire et afficher une image (format TIFF)
    Par nuans dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 30/04/2007, 15h33
  5. [Débutante]Lire et afficher une image IRM sous C++ builder
    Par larimoise dans le forum C++Builder
    Réponses: 13
    Dernier message: 04/12/2006, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo