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 :

QImage et nuances de gris


Sujet :

Qt

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut QImage et nuances de gris
    Bonjour à tous,
    me revoilà encore avec un problème. Donc j'ai ma fenêtre principale dans laquelle il y a un QGraphicsView, l'image qui va s'y afficher provient d'une Qimage puis QPixmap puis QGraphicScene puis (et enfin) QGraphicsView.
    Dans ma QImage, je passe l'image en données brutes avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        image = QImage((uchar *)picture, width, height, QImage::Format_Indexed8);
        image = image.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
    donc comme vous le voyez, 8 bits = 1 pixel de couleur.
    Mon image est en nuance de gris et grace au "Qt::SmoothTransformation" j'ai une image en nuance de gris, par contre si je mets "Qt::FastTransformation", j'ai des points de toutes les couleurs.
    Enfin bref ça fonctionne.
    Je viens de créer une autre fenetre avec une autre QGraphicsView, et à un moment j'ouvre cette fenetre pour afficher la même image, et l'affichage et un copier coller de la fenetre principale. Par contre, pour cette nouvelle fenetre mon image n'est plus en nuance de gris mais avec des points de toutes les couleurs comme si j'avais utilisé "Qt::FastTransformation".
    Quelqu'un sait pourquoi, et comment je peux régler le problème ?
    Merci

  2. #2
    Membre actif
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Points : 287
    Points
    287
    Par défaut
    ça vient peut être de là:

    Note: Drawing into a QImage with QImage::Format_Indexed8 is not supported.
    => http://qt.developpez.com/doc/latest/...ml#format-enum

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    alors pourquoi dans un cas ça marche et pas dans l'autre ?
    sinon comment faire

  4. #4
    Membre actif
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Points : 287
    Points
    287
    Par défaut
    Généralement quand une fonctionnalité est indiquée comme non supportée, son utilisation reste possible mais le résultat n'est pas garanti. Sans être formel c'est surement ce qui t'arrive et c'est pour ça que le résultat de ton opération est complétement incertain.

    Je te conseillerai de passer par un autre format si tu en as la possibilité;

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    bah non, c'est ça le problème, parce que j'ai des données brutes, et je serais dans l'obligation de modifier donnée par donnée (c-a-d pixel par pixel) et ce n'est pas faisable.

    Ca fait ch _ _ _

  6. #6
    Membre actif
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Points : 287
    Points
    287
    Par défaut
    Je ne connais pas tes contraintes au niveau des données en entrée, ni ce que tu veux en fait. Mais tu peux peut être passer par un autre objet que le QImage. Il existe plusieurs classes de gestion des images dans Qt, il doit y en avoir une qui correspond à ton besoin. Essaye de fouiller la doc de ce coté là.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    je ne trouve pas, j'ai essayé QPainter mais lui aussi ne supporte pas le format "Format_Indexed8".

  8. #8
    Membre actif
    Avatar de GreatTux
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Points : 287
    Points
    287

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    A part Qimage et Qpixmap, je ne vois pas trop ce qui pour aller dans mon cas.

  10. #10
    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
    As tu associé une lut à ta QImage ?
    http://qt.developpez.com/doc/latest/...#setcolortable

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    j'ai trouvé, il faut redéfinir une table de couleur, comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QVector<QRgb> tableColor(256);
    for (int i = 0; i < 256; i++)
    {
        tableColor[i] = qRgb(i, i, i);
    }
    image.setColorTable(tableColor);
    par contre je ne comprend pas pourquoi dans le doc, ils disent que le format 8 bits n'est pas supporté.

    Mais ça marche, merci à tous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 23
    Dernier message: 12/02/2014, 13h27
  2. Afficher des images en niveaux de gris avec QImage
    Par aminems dans le forum Débuter
    Réponses: 1
    Dernier message: 30/03/2011, 18h22
  3. Afficher <QImage::Format_RGB16> en gris
    Par doukha dans le forum Qt
    Réponses: 5
    Dernier message: 15/04/2010, 14h33
  4. modification de nuance de gris de image
    Par Invité dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 30/05/2008, 19h01
  5. Conversion de l'image en nuance de gris
    Par tlemcenvisit dans le forum C++Builder
    Réponses: 11
    Dernier message: 11/04/2005, 03h15

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