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

C++Builder Discussion :

Problème de traitement d'image tiff


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut Problème de traitement d'image tiff
    J'utilise une FileListBox. Ca tout est normal.

    Mais j'utilise un compteur qui pointe sur les fichiers dans le dossier ouvert dans cette FileListBox, qui sont dans ce cas, des images tiff., Pour les ouvrir, je dois utiliser la librairie GraphicEx.
    Code code de l'ouverture seloàn l'extension : 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
     
    //Extraction de l'extension du fichier image ouvert
                    FileExt1 = ExtractFileExt(FileName1);
                    //Traitement des images JPEG
                    if ((FileExt1 == ".jpeg")||(FileExt1 == ".jpg")||(FileExt1 == ".JPEG")||(FileExt1 == ".JPG"))
                    {
                            TxtExt->Caption = "*.jpeg";
                            Graphics::TBitmap *bmp = new Graphics::TBitmap();
                            TJPEGImage *jpg = new TJPEGImage();
                            jpg->LoadFromFile(FileName1);
                            bmp->Assign(jpg);
                            //Affichage a l'écran de l'image ouverte
                            Image1->Picture->Assign(bmp);
                            delete bmp;
                            delete jpg;
                    }
                    //Traitement des images TIFF
                    else if ((FileExt1 == ".tiff")||(FileExt1 == ".tif")||(FileExt1 == ".TIFF")||(FileExt1 == ".TIF"))
                    {
                            TxtExt->Caption = "*.tiff";
                            Graphics::TBitmap * bmp = new Graphics::TBitmap();
                            Graphicex::TTIFFGraphic * tiff = new Graphicex::TTIFFGraphic();
                            tiff->LoadFromFile(FileName1);
                            bmp->Assign(tiff);
                            //Affichage a l'écran de l'image ouverte
                            Image1->Picture->Assign(bmp);
                            delete bmp;
                            delete tiff;
                    }
                    //Traitement des images Bitmap
                    else if ((FileExt1 == ".bmp")||(FileExt1 == ".BMP"))
                    {
                            TxtExt->Caption = "*.bmp";
                            //Affichage a l'écran de l'image ouverte
                            Image1->Picture->LoadFromFile(FileName1);
                    }

    Apres, je fait un traitement de l'image, mais dans le cas d'une image en tiff, le traitement ne se déroule pas comme je le voudrais (alors que dans un autre programme, j'ai le même code, et qui fonctionne)
    Code code de traitement : 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
     
    //Analyse image
                    for (int y = 0; y < HeightImage1; y++)
                    {
                            ProgressBar1->Position++;
                            for (int x = 0; x < WidthImage1; x++)
                            {
                                    //Mise en mémoire des données de l'image
                                    Main->intensite->image1[x][y] = Image1->Canvas->Pixels[x][y];
                                    //Conversion des données en hexadecimal
                                    AnsiString ValCouleur1 = IntToHex(Main->intensite->image1[x][y],6);
                                    //Decomposition par couleur
                                    AnsiString ValBleu1 = ValCouleur1.SubString(1,2);
                                    AnsiString ValVert1 = ValCouleur1.SubString(3,2);
                                    AnsiString ValRouge1 = ValCouleur1.SubString(5,2);
                                    //Ajout des caractères "0x" devant le chiffre hexadecimal
                                    AnsiString HexBleu1 = "0x" + ValBleu1;
                                    AnsiString HexVert1 = "0x" + ValVert1;
                                    AnsiString HexRouge1 = "0x" + ValRouge1;
                                    //Conversion en decimal
                                    int DecBleu1 = StrToInt(HexBleu1);
                                    int DecVert1 = StrToInt(HexVert1);
                                    int DecRouge1 = StrToInt(HexRouge1);
                                    //Valeur de l'intensité finale
                                    int TotalRVB1 = DecBleu1 + DecVert1 + DecRouge1;
                                    //Mise en mémoire de la valeur trouvée
                                    Main->intensite->image1[x][y] = TotalRVB1;
                                    //Recherche des valeurs extrèmes
                                    if (max1-Main->intensite->image1[x][y]<=0)
                                    {
                                            max1=Main->intensite->image1[x][y];
                                    }
                                    if (min1-Main->intensite->image1[x][y]>=0)
                                    {
                                            min1=Main->intensite->image1[x][y];
                                    }
                            }
                    }
                    TxtInten->Caption = IntToStr(min1) + "/" + IntToStr(max1);
                    Analyse->Refresh();
                    Analyse->Caption = "Traitement du fichier" + IntToStr(NumImage + 1) + "/" + IntToStr(Ajout->FileListBox1->Count);
                    for (int y = 0; y < HeightImage1; y++)
                    {
                            ProgressBar2->Position+=1;
                            for (int x = 0; x < WidthImage1; x++)
                            {
                                    Main->pourcentage->image1[x][y] = (100*(Main->intensite->image1[x][y] - min1)/(max1 - min1));
                                    Image1->Canvas->Pixels[x][y] = CodeInt[(int)(Main->pourcentage->image1[x][y] * 1021 / 100)];
                                    Main->pourcentage->image1[x][y] = NULL;
                                    Main->intensite->image1[x][y] = NULL;
                            }
                    }
    ce code devrai permettre d'en faire sortir l'intensitée de chaque pixelde 0 a 765 et mise en pourcentage de 0 a 100 ensuite

  2. #2
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Points : 1 577
    Points
    1 577
    Par défaut
    Bonjour,

    est-ce que tu pourrais être plus explicite. Quel est vraiment ton problème ?

    @+

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    ah désolé si je n'etait pas, assez comprehenssible. mon probleme était que la gestion bmp et jpeg fonctionnaient, mais pas le tiff, alors que les demarchent sont les mêmes!!

    enfin, le probleme a été résolu!
    merci quand même

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

Discussions similaires

  1. Quelques problèmes de traitement d'image
    Par Murtagh dans le forum 2D
    Réponses: 0
    Dernier message: 12/04/2011, 16h51
  2. problème d'écriture d'image tiff rgb 16 bit
    Par Zhitoune dans le forum Images
    Réponses: 2
    Dernier message: 07/05/2010, 18h03
  3. Problème de traitement d'images
    Par EEALY dans le forum OpenCV
    Réponses: 2
    Dernier message: 07/03/2009, 13h41
  4. Traitement d'images TIFF
    Par Nates dans le forum Images
    Réponses: 3
    Dernier message: 07/12/2007, 17h13
  5. [Traitement d'image] problème avec les boutons animés
    Par robmoto dans le forum Webdesign & Ergonomie
    Réponses: 9
    Dernier message: 17/08/2007, 14h36

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