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 :

Un projet de traitement d'image


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Un projet de traitement d'image
    Voila, je suis actuellement en stage, et je vien tout juste de découvrir Borland C++ builder 6, mon outil de travail!

    Pour mon projet, je doit amélioré un programme (peut-etre même le réecrire completement).

    La première modification consiste a augmenter la capacité de prise en charge des images, passant de seulement l'acceptation des Bitmap, à l'acceptation des Bitmap, Jpeg et tiff (principaux format de travaux).

    J'ai réussi la prise en charge des jpeg (en passant par la recherche de l'extension de fichier et des pointeurs -A voir-).

    Mais maintenant, mon plus grand problème qui se pose, c'est l'acceptation des Tiff, que je doit convertir en bmp (conversion intern au programme : pas de demande d'enregistrement des images en bmp car le traitement des images intervien dans la suite su processus).

    Alors, si quelqu'un pouvait m'expliquer comment faire pour convertir un TIFF en BMP, je le remerci^^

    La suite au prochain épisode

  2. #2
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Bienvenu dans le forum !

    Comme t'es nouveau ici,premiere chose à te conseiller si tu me le permet,
    c'est d'utiliser l'option "Rechercher"

    voila quelques résultat interressants pour toi :

    http://www.developpez.net/forums/sho...highlight=TIFF

    http://www.developpez.net/forums/sho...highlight=TIFF


    Bonne continuation !

  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
    Merci, mais je voulais savoir si j'était obligé d'utiliser une librairie externe a BCB6 pour traiter les TIFF.

    Je vais essayer avec cximage ou imagemagick, mais lequel est le plus préférable pour un gain d'espace?

    En regardant de plus pres les liens, j'ai essayé de mettre les fichiers GraphicEx.hpp et GraphicCompression.hpp avec mon projet, mais j'ai un problème qui vien, c'est que je n'arrive pas a faire convertir les tif en bmp (internement)

    voici le code, que je pense completement faux, car je ne sais pas me servir du LoadFrom Strema, alors si qjuelqu'un pouvai m'eclaire!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ((FileExt1 == ".tiff")||(FileExt1 == ".tif"))
                    {
                            Application->MessageBox("Image TIFF détecté","Chargement effectué",MB_OK|MB_ICONINFORMATION);
                            Graphics::TBitmap *bmp = new Graphics::TBitmap();
                            TTIFFGraphic *tiff = new TTIFFGraphic();
                            TFileStream *stream = new TFileStream(FileImage1,fmOpenRead);
                            tiff->LoadFromStream(stream);
                            bmp->Assign(tiff);
                            Image1->Picture->Assign(bmp);
                            delete tiff;
                            delete bmp;
                    }

  4. #4
    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
    Bon, bah je croi avoir resolu mon problème, j'avais oublié d'ajouter les deux fichier *.pas a mon projet.

    Maintenant, j'ai reussi a ouvrir des *.tiff dans mon programme, et ensuite, j'ai reussi a les enregistrer en format bmp, comme je le souhaitait.

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ((FileExt1 == ".tiff")||(FileExt1 == ".tif"))
                    {
                            Application->MessageBox("Image TIFF détecté","Chargement effectué",MB_OK|MB_ICONINFORMATION);
                            Graphics::TBitmap *bmp = new Graphics::TBitmap();
                            Graphicex::TTIFFGraphic * tiff = new Graphicex::TTIFFGraphic();
                            tiff->LoadFromFile(FileImage1);
                            bmp->Assign(tiff);
                            Image1->Picture->Assign(bmp);
                            delete tiff;
                            delete bmp;
                    }
    pour ceux qui sont in teresserpra ce code, il faut ajouter a votre projet les fichiers GraphicEx.pas, GraphicEx.hpp, GraphicCompression.pas et GraphicCompression.hpp

  5. #5
    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
    Avec quelque reflections supplementaire, j'en suis arrivé au code suivant pour les fichiers TIFF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ((FileExt1 == ".tiff")||(FileExt1 == ".tif"))
                    {
                            Application->MessageBox("Image TIFF détecté","Chargement effectué",MB_OK|MB_ICONINFORMATION);
                            Graphicex::TTIFFGraphic * tiff = new Graphicex::TTIFFGraphic();
                            tiff->LoadFromFile(FileImage1);
                            Image1->Picture->Assign(tiff);
                            delete tiff;
                    }

    Et pour les fichiers JPEG :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    if ((FileExt1 == ".jpeg")||(FileExt1 == ".jpg"))
                    {
                            Application->MessageBox("Image JPEG détecté\nConversion en Bitmap en cours","Chargement effectué",MB_OK|MB_ICONINFORMATION);
                            TJPEGImage *jpg = new TJPEGImage();
                            jpg->LoadFromFile(FileImage1);
                            Image1->Picture->Assign(jpg);
                            delete jpg;
                    }

  6. #6
    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
    Bon, me revoila, avec un autre problème, plus simple cette fois (enfin, la solution me pend au nez, mais je n'arrive pas a la trouver)

    J'explique : par un procédé autre, j'ai obtenu un tableau de pourcentage. Ces pourcentages, représentent des intensitées lumineuses.
    Je doit maintenant transcrire ce tableau de valeur dans une image en bmp (dans un premier temps).
    J'ai reussi a envoyer les donnees dans un objet TImage, mais je n'arrive pas a redimensionner cet objet, pour qu'il se mette a la taille de l'iamge (qui est variable).
    Les dimensions de l'image sont connues et contenues dans des variables (HeightImage1 et WidthImage1).
    J'ai essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Image1->Height = HeightImage1;
    Image1->Width = WidthImage1;
    Mais sans succes. avec ces deux lignes, l'objet TImage disparait de ma Form.

  7. #7
    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
    Et voici le second problème de la journée, je n'arrive pas a enregistrer les fichiers images en format tiff, alors qu'en bmp et jpeg, j'en suis capable.

    Code Enregistrement JPEG : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FileExt1 = ExtractFileExt(FileName1);
                    //Traitement des images JPEG
                    if ((FileExt1 == ".jpeg")||(FileExt1 == ".jpg"))
                    {
                            Graphics::TBitmap *bmp = new Graphics::TBitmap();
                            TJPEGImage *jpg = new TJPEGImage();
                            bmp->Assign(Image1->Picture);
                            jpg->Assign(bmp);
                            jpg->SaveToFile(FileName1);
                            delete bmp;
                            delete jpg;
                    }

    Code enresistrement TIFF avec GraphicEx : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                    //Traitement des images TIFF
                    else if ((FileExt1 == ".tiff")||(FileExt1 == ".tif"))
                    {
                            Graphics::TBitmap *bmp = new Graphics::TBitmap();
                            Graphicex::TTIFFGraphic * tiff = new Graphicex::TTIFFGraphic();
                            bmp->Assign(Image1->Picture);
                            tiff->Assign(bmp);
                            tiff->SaveToFile(FileName1);
                            delete bmp;
                            delete tiff;
                    }

    le code pour les tiff ne fonctionnent pas.

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

Discussions similaires

  1. Idée pour un projet dans le traitement d'images
    Par krolis dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 23/02/2012, 12h20
  2. projet traitement d'images
    Par Ludo_360 dans le forum Images
    Réponses: 1
    Dernier message: 27/11/2007, 16h21
  3. projet en language C: traitement d images
    Par jibss dans le forum C
    Réponses: 1
    Dernier message: 25/03/2007, 13h20
  4. Projet de traitement automatique d'image
    Par sonsons dans le forum Images
    Réponses: 8
    Dernier message: 25/01/2007, 12h37

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