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 :

afficher la matrice d'une image et calcule de ces histogrammes


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    /////
    Inscrit en
    Décembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : /////

    Informations forums :
    Inscription : Décembre 2009
    Messages : 32
    Par défaut afficher la matrice d'une image et calcule de ces histogrammes
    bonjour

    je suis debutante en C builder je veux creer une application avec C builder qui consiste a lire et afficher une image et afficher la matrice correspendante puis de calculer les histogrammes

    donc je veux savoir quels sont les fonctions qui peuvent faire ca, si quelqu'un peux m'aider
    merci

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    C'est un peu vague tout ça!

    Pour afficher une image, tu peux utiliser le composant TImage.
    Pour afficher une matrice à l'écran tu peux utiliser le composant TStringGrid.
    Pour réaliser des histogrammes graphiques tu peux utiliser le composant TChart.

    Tu trouvera de nombreux exemples de ces composant dans l'aide (F1) et sur Internet.

    Voici une discussion qui date d'il y a quelques jours qui traite également des histogrammes. Je ne sais pas si ca va t'aider, mais sait-on jamais!

  3. #3
    Membre averti
    Femme Profil pro
    /////
    Inscrit en
    Décembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : /////

    Informations forums :
    Inscription : Décembre 2009
    Messages : 32
    Par défaut meme Question
    mais le problème est que le TP dois etre fait avec une interface c-à-d des bouttons donc je ne peux pas le faire malheureusement

    alors tu peux m'expliquer un peu svp ?

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    As-tu regardé l'aide (F1) sur les composants que je t'ai cités et as-tu regarder sur Google ?

    Essaye d'avancer un peu dans ton projet et lorsque tu seras bloqué, reviens poster une question sur un problème précis en nous montrant où tu es bloqué.

    Bon courage.

  5. #5
    Membre averti
    Femme Profil pro
    /////
    Inscrit en
    Décembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : /////

    Informations forums :
    Inscription : Décembre 2009
    Messages : 32
    Par défaut
    Bonsoir

    jai demare avec mon application qui lu une image et l'afficher, puis jai etulisé la fonction Canvans pour calculer la matrice de l'image mais ca ne marche pas
    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
    #include <vcl.h>
    #pragma hdrstop
    #include <FileCtrl.hpp>
    #include "Uni.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    if(OpenPictureDialog1->Execute())
    Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
     
    {
      int t1,i,j;
      t1=*Image1->Canvas->Pixel[i][j];
    }
    //ca m'affiche une erreur :pixel is not a member of Tcanvas-----------------
    ----------------------------------------------------------
    je ne sais pas ou se trouve l'erreur

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Que l'orthographe te pose un problème ... ça on peut le comprendre et passer outre.
    Mais par contre, BCB lui, ne tolère aucune erreur de syntaxe !
    Donc : Pixels et non pas Pixel !
    Par ailleurs Pixels renvoie un objet du type TColor !

    J'ai l'impression qu'il va falloir te donner un gros coup de main !

    Comme j'ai déjà eu l'occasion de le dire, Pixels n'est pas l'idéal pour récupérer les composantes RGB d'un pixel ! On peut les récupérer beaucoup plus rapidement à l'aide de TBitmap::ScanLine à condition que la propriété PixelFormat du Bitmap ait été fixée sur pf24bit.

    Dans un premier temps, je peux te suggérer d'utilser un TPageControl !
    Tu disposeras ainsi de pages avec onglets pour passer d'une fonction à l'autre :
    - une page pour l'image
    - une page pour le TDrawGrid
    - une page pour représenter les histogrammes
    etc...

    A plus !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    salut,

    Utilises la librairie Opencv, c'est simple+easy+nette.

    l'histogramme se fait avec une fonction qui reçoit en entrée ton images.

    Sinon avec un TChart sa peut se faire.
    je vais voir dans mes archives car j'ai des sources

  8. #8
    Membre averti
    Femme Profil pro
    /////
    Inscrit en
    Décembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : /////

    Informations forums :
    Inscription : Décembre 2009
    Messages : 32
    Par défaut
    je vous remercie Hederson et Robotix pour vos reponses

    oui tu as raison Robotix pour la remarque et c'est vrai que personne ne peut savoir ce qui est dans ma tête j'ai lu ça en français et en anglais (Merci yel jazayri moi aussi je suis algerienne)
    merci

    salutation

  9. #9
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Salut,
    1- Parcours de l'image:
    en cas d'une image en niveau de gris tu n'as qu'une seule matrice à présenter sinon pour une image RGB, tu dois parcourir l'image pour extraire les couleurs R, G, B et affecter chacune dans une matrice séparée, donc t'auras 3 matrices: la matrice R, la matrice G et la matrice B présentant respectivement les couleurs Rouge, vert et Bleu pour cela t'as 2 choix de parcours,

    1- parcours pixel par pixel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    R[i][j]=GetRValue(Ton_Image->Canvas->Pixels[i][j]);
    2- parcours ligne par ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ton_Image->Picture->Bitmap->ScanLine[j]
    le parcours par le ScaneLine est plus rapide, je t'invite à lire cette discussion pour voir comment henderson me l'a apprit

    2- Affichage de la matrice:


    tu peux utiliser par exemple un StringGrid en adaptant respectivement son RowCount et ColCount au Height et Width de l'image.


    3- Affichage de histogramme

    t'as le choix d'utiliser le composant TChart ou de le dessiner par toi même.


    Bon courage.

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

Discussions similaires

  1. Réponses: 44
    Dernier message: 05/07/2012, 23h29
  2. afficher la matrice d'une image bmp
    Par Slash85 dans le forum C++
    Réponses: 1
    Dernier message: 14/05/2011, 11h41
  3. afficher la matrice d'une image dans une figure
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 04/12/2008, 15h20
  4. Afficher la matrice d'une image avec GUIDE
    Par kethmoon dans le forum MATLAB
    Réponses: 6
    Dernier message: 18/01/2008, 18h38
  5. [VB.NET] [WinForms] Afficher un rectangle sur une image
    Par Noodles dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/12/2004, 10h36

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