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 :

dessin d'un histogramme


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut dessin d'un histogramme
    je voudrais savoir comment pouve-je affiché un histogramme sachant que tout est fait sauf que l'affichage des ordonnées et des abcissses j'ai pas pue le visualiser nben plus exactement j'ai pas sue comment dessiner ces derniers pour avoir un histogramme.
    merci pour votre reponse

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    ben puisque y'a aucune réponse je vais etre plus claire.j'aimerai savoir s'il ya une fonction pr le dessin d'un histogramme couleur ou plus de précision pou ca et merci.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut
    Citation Envoyé par l_seringa Voir le message
    ben puisque y'a aucune réponse je vais etre plus claire.j'aimerai savoir s'il ya une fonction pr le dessin d'un histogramme couleur ou plus de précision pou ca et merci.

  4. #4
    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 !
    Tu peu utiliser le composant TChart, ajoute lui une TSerie de type Line, et voila comment faire pour afficher l'histogramme de la couleur rouge par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Chart->Series[0]->Clear();
     
    Chart->Series[0]->SeriesColor=clRed;
     
    for(int i=0;i<255;i++)   Chart->Series[0]->AddXY(i,HistoR[i],"");
    C'est un aperçu très minimalisé, j'éspère que ça t'aidera.



    A+

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    ce que je voulé c'est que je doit choisir une image et puis appuyer sur un bouton et avoir son histogramme(RGB)couleur .merci pour vous mais d'apres ce que vous m'aviez donné avec le "Chart" je ne peut pas choisir une image voulue .merci

  6. #6
    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 !

    Il te faut connaitre ces 4 trucs pricipaux :

    1- Charger une image.
    2- Accéder aux pixels d'une image.
    3- Calculer les histogrammes.
    4- Afficher ces histogrammes.

    Je suis sûre que tu trouvera ton bonheure dans ce forum...


    A+

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    Merci pour ton explication mais je sait chargé une image et je sait la lire pixel pas pixel en utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TColor col=Image1->Canvas->Pixels[x][y];
    R=GetRValue(col);
    V=GetGValue(col);
    B=GetBValue(col);
    mais ce qui me gene c'est son affichage
    si vous pouvez m'aider ben merci

  8. #8
    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
    Peux tu me montrer la partie calcule des histogrammes ?

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    voila
    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
    char R,V,B;
    if(OpenDialog1->Execute() )
    {
     
    Image1->Picture->LoadFromFile(OpenDialog1->FileName);
    for(int x=0;x<Image1->Picture->Bitmap->Width;x++)
    {
    for(int y=0;y< Image1->Picture->Bitmap->Height;y++)
    {
    TColor col=Image1->Canvas->Pixels[x][y];
    R=GetRValue(col);
    V=GetGValue(col);
    B=GetBValue(col);
     
    }}  }
    ben je sait comment lire ca mais je doit aussi enregister les valeur eu dans R,G,B dans des tableaux chaqu'un un tableau pour pouvoir apres y affiché.merci
    je vous ajoute que je suis pas assez bonne avec la programmation en c++builder,j'essaye de faire de mon mieu avec.merci pour votre aide

  10. #10
    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
    On va le modifier :
    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
     
     
    //"int" parceque je veux pas que tu tombe dans de overflows  :p
    int HistoR[256],HistoV[256],HistoB[256];
    if(OpenDialog1->Execute() )
        { 
        Image1->Picture->LoadFromFile(OpenDialog1->FileName);
        for(int x=0;x<Image1->Picture->Bitmap->Width;x++)
            {
            for(int y=0;y< Image1->Picture->Bitmap->Height;y++)
                {
                TColor col=Image1->Canvas->Pixels[x][y];
                HistoR[GetRValue(col)]++;
                HistoV[GetGValue(col)]++;
                HistoB[GetBValue(col)]++;
                }
            }  
        }
     
    //A ce stade t'as tes histogramme des trois couleur sauvegardé
    T'as tous ce qu'il te faut de DVP


    ++

  11. #11
    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
    Ah oui, faut pas oublier d'initialiser les valeurs des trois tableaux à 0

    ++

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    OK
    merci tres tres pour votre aide mais maintenant pour l'affichage.es-ce que je doit utilisé MOVETO et LINETO
    sinon s'il y'a une autre facon je suis ici pour apprendre.merci

  13. #13
    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
    C'est pas bien d'avoir des boucles dans la vie

    Citation Envoyé par Interruption13h Voir le message
    Salut !
    Tu peu utiliser le composant TChart, ajoute lui une TSerie de type Line, et voila comment faire pour afficher l'histogramme de la couleur rouge par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Chart->Series[0]->Clear();
     
    Chart->Series[0]->SeriesColor=clRed;
     
    for(int i=0;i<255;i++)   Chart->Series[0]->AddXY(i,HistoR[i],"");
    C'est un aperçu très minimalisé, j'éspère que ça t'aidera.



    A+

  14. #14
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    j'aimerai bien si vous me faite comprendre ce code la merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Chart->Series[0]->Clear();
     
    Chart->Series[0]->SeriesColor=clRed;
     
    for(int i=0;i<255;i++)   Chart->Series[0]->AddXY(i,HistoR[i],"");

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

Discussions similaires

  1. [IDE] Dessiner un histogramme dans un autre TForm
    Par SmileSoft dans le forum C++Builder
    Réponses: 32
    Dernier message: 20/02/2010, 01h19
  2. comment dessiner un histogramme avec C++
    Par rajaa09 dans le forum C++
    Réponses: 4
    Dernier message: 15/12/2009, 21h40
  3. Dessiner un histogramme
    Par lisco dans le forum Qwt
    Réponses: 2
    Dernier message: 17/08/2009, 09h07
  4. Dessiner un Histogramme
    Par kurtalis dans le forum Graphisme
    Réponses: 4
    Dernier message: 02/06/2009, 12h08
  5. dessiner histogramme avec JExcel API
    Par trin86 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 06/05/2009, 19h41

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