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 confirm�
    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
    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 Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par d�faut
    Bonjour,

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

    @+

  3. #3
    Membre confirm�
    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
    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, 15h51
  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, 17h03
  3. Probl�me de traitement d'images
    Par EEALY dans le forum OpenCV
    R�ponses: 2
    Dernier message: 07/03/2009, 12h41
  4. Traitement d'images TIFF
    Par Nates dans le forum Images
    R�ponses: 3
    Dernier message: 07/12/2007, 16h13
  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, 13h36

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