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 :

Retouche d'images (probleme de format)


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut Retouche d'images (probleme de format)
    Voila, je cherche à faire un petit utilitaire qui unifierais la teinte de plusieurs images (pour unifier la luminosité d'un court métrage fait en stop motion)

    J'ai fait un premier jet qui marche pas mal sur les images en BMP (meme si il reste pas mal de chose a faire), mais lorsque je teinte de le lancer avec des image JPG (type d'image que j'aurais a modifier), ca ne marche plus tout...



    Bon, j'explique grosso modo ce que fais le prog, avant de mettre le code:
    Il prend une première image en référence, calcule vite fais la moyenne r,g,b qu'elle a, puis prend une deuxième image, recalcule la moyenne.
    Ensuite, on calcule la différence entre les deux, et on modifie chaque pixel de la deuxième image en additionnant avec cette différence. (il reste pas mal de chose a faire, genre proteger pour pas passer en couleurs négative, automatiser les tailles et tout, mais j'aimerais déja que ca marche pour des JPG)

    Bon, voila le 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    #include <iostream>
    #include <QString>
    #include <QImage>
    #include <QColor>
    #include <QMessageBox>
    #include <QApplication>
     
    int main(int argc, char* argv[])
    {
        int r, g, b; //couleur de reference
        int rn, gn, bn; //couleur de notre image en cour
        int rdif, gdif, bdif; //différence entre nos couleur de départ et les nouvelle
        int i, j, x; //i et j servent au boucle, x compte le nombre de passage dans la boucle
        int longueur, largeur; //taille de notre image
        QImage* image; //notre image
        QString nom; //variable servant a loader les images
        QRgb color; //sert a recuperer la couleure d'un pixel
     
     
     
    QApplication app(argc, argv);
        /*on recupere la premiere image. Permettre plus tard a l'utilisateur de donner le nom via une interface */
     
        nom = "DSCF2430.JPG";
        image = new QImage(nom);
     
     
        /************************************
        taille d'images fixées en dur. A automatiser
        ************************************/
        largeur = 3072;
        longueur = 2304;
     
        /*on calcul nos moyenne de r,g,b*/
        r = 0;
        g = 0;
        b = 0;
        x=0;
        for(i=0;i<largeur/2; i=i+50)
        {
            color = image->pixel(i,i);
            r = r + qRed(color);
            g = g + qGreen(color);
            b = b + qBlue(color);
            x++;
        }
        r = r/x;
        g = g/x;
        b = b/x;
     
     
     
        /**************************
        on load notre deuxieme image...
        a transformer en boucle plus tard pour faire toute les images du dossier
        *****************************/
        nom = "DSCF2429.JPG";
        image->load(nom);
        //on calcul la moyenne de la deuxieme image
        rn = 0;
        gn = 0;
        bn = 0;
        x=0;
        for(i=0;i<largeur/2; i=i+50)
        {
            color = image->pixel(i,i);
            rn = rn + qRed(color);
            gn = gn + qGreen(color);
            bn = bn + qBlue(color);
            x++;
        }
        rn = rn/x;
        gn = gn/x;
        bn = bn/x;
     
     
     
        /***********************************
        on calcul les différences
        ***********************************/
        rdif = r - rn;
        gdif = g - gn;
        bdif = b - bn;
    QMessageBox::information(NULL,"deplacement", QString::number(rdif));
     
        //on modifie la deuxieme image en fonction de nos variables dif
        for(i=0;i<largeur;i++)
        {
            for(j=0;j<longueur;j++)
            {
                color = image->pixel(i,j); //on recupere la couleur du pixel a mosifier
                color = qRgb(qRed(color)+rdif, qGreen(color)+gdif, qBlue(color)+bdif);
                image->setPixel(i,j,color);
            }
        }
     
        QMessageBox::information(NULL,"deplacement", "on va sauvegarder");
        //on sauvegarde l'image
        image->save(nom);
        QMessageBox::information(NULL,"deplacement", "j'ai fini");
     
    return app.exec();
    }


    Voila. Si je met des images BMP pas de soucis.
    Des que je tente avec des JPG, il marche pas du tout. C'est a dire que les variable de couleurs restent toujours a 0.

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    bonjour;
    Peut etre qu'une image JPG est compressé contrairement a une image BMPI serait-t-il possible de transformer la JPG en BMP avec Qt4?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    Citation Envoyé par buggen25 Voir le message
    bonjour;
    Peut etre qu'une image JPG est compressé contrairement a une image BMPI serait-t-il possible de transformer la JPG en BMP avec Qt4?

    a priori c'est possible, mais ca risque de vachement ralentir le logiciel de devoir réexporter chaque image, puis de les remettre en jpg apres traitement. Surtout que j'ai plusieurs milliers d'images à traiter.
    Et d'apres la doc de QT, le JPG est en lecture et écriture, tout comme le BMP

  4. #4
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Citation Envoyé par cerby Voir le message
    a priori c'est possible, mais ca risque de vachement ralentir le logiciel de devoir réexporter chaque image
    S'il y'a un autre moyen on va l'utiliser, sinon sa va prendre deux fois plus de temps qu'une DIB

    regarde ici si s'a peut t'aider notament QRgb color(int i) et setColor ( int i, QRgb c ) http://qt.developpez.com/doc/3.3/qimage.html

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    Apres quelques essais pour les transformer en BMP dans le script, je n'arrive toujours a rien.

    En fait, apparemment, QT refuse complètement de lire les images en JPG

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Salut
    Citation Envoyé par cerby Voir le message
    Apres quelques essais pour les transformer en BMP dans le script, je n'arrive toujours a rien.

    En fait, apparemment, QT refuse complètement de lire les images en JPG
    Tu manipule des QImage donc rien avoir avec de bmp ou jpeg.
    Tu as apparemment un problème pour charger le image jpeg...
    1- comment as tu installé Qt
    2- as tu le plugin jpeg dans le repertorie plugin de qt?
    3- comment ton appli trouve les dll de Qt?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    Pour l'installation, ca remonte a assez loin, je me souviens plus trop.


    Dans le dossier des plugins, j'ai libqjpeg4.a, ainsi que qjpeg4.dll (dans imageformat)

    J'ai aussi copier le dll dans mon dossier release au cas ou il en aurait besoin la (ainsi que les dll habituels genre QTCore4.dll)

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/11/2006, 11h08
  2. requete SQL et probleme de format de Date
    Par huon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/08/2005, 11h56
  3. probleme urgent format date
    Par donny dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/08/2005, 11h44
  4. [debutant][Image]probleme de placement
    Par ehmppowa dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 08/12/2004, 10h08
  5. [Image] Probleme de diminution de taille
    Par cameleon2002 dans le forum 2D
    Réponses: 2
    Dernier message: 08/07/2004, 09h32

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