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 :

Associer chaque cellule de 10*10 pixels, une valeur entière dans un tableau à 2 dim


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Associer chaque cellule de 10*10 pixels, une valeur entière dans un tableau à 2 dim
    Bonjour !

    Je suis nouveau dans ce forum. J’ai un petit problème dans la programmation en builder c++ (version 6) étant donné que je suis un débutant. Alors voilà :

    J’ai une image de 600*550 Pixels en noir (valeur 0) et blanc (valeur 255). Cette image, je l’ai décomposée en cellules élémentaires de 10*10 Pixels ; ce qui me donne donc 60*55 cellules.
    Est-ce qu’il est possible d’associer pour chaque cellule (de 10*10 Pixels) une valeur entière dans un tableau[60][55] de façon à avoir par exemple :

    Tab[1][1]=20 (ce qui correspond à la première cellule)
    Tab[1][2]=21 (ce qui correspond à la deuxième cellule)
    …etc.

    Merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2007
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Hi.
    j'ai fais une foi une clase qui gere une matrice,voila les fichiers .h et .cpp
    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
     
    #include <alloc.h>
    #include <iostream.h>
    #include <string.h>
    #include <Controls.hpp>
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Dialogs.hpp>
    #include <ExtDlgs.hpp>
    #include <ExtCtrls.hpp>
    class mat{
    unsigned char *a;
    int I,J;
    public:
     
    mat(int i,int j);
    void set(unsigned char c,int i,int j);
    unsigned char get(int i,int j);
    int getI();
    int getJ();
    };
     
    void lecture(TImage *img,mat *m);
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    #include "K_means.h"
     #include <Controls.hpp>
     #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Dialogs.hpp>
    #include <ExtDlgs.hpp>
    #include <ExtCtrls.hpp>
     
     
     
    mat::mat(int i,int j){
    a=new unsigned char[i*j];
    I=i;
    J=j;
    }
     
     
    void mat::set(unsigned char c,int i,int j){
       a[i*J+j]=c;
    }
     
    unsigned char mat::get(int i,int j){
    return a[i*J+j];
    }
     
    int mat:: getI(){
    return I;
    }
    int mat:: getJ(){
    return J;
    }
    void lecture(TImage *img,mat *m){
    int tmp,a1,a2,a3;
    for (int i=0;i<m->getI();i++)
    for (int j=0;j<m->getJ();j++){
    tmp=ColorToRGB(img->Picture->Bitmap->Canvas->Pixels[i][j]);
    a1=tmp%256;
    tmp=tmp/256;
    a2=tmp%256;
    tmp=tmp/256;
    a3=tmp%256;
    tmp=(a1+a2+a3)/3;
    m->set((unsigned char)tmp,i,j);
    }
    }
    ça va peut etre t'aider.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Salut ! Tout d’abord je tiens à te remercier pour ta réponse. Mais je crois que tu m’as un peu mal compris. Alors voilà, je vais t’expliquer les raisons pour lesquelles je veux manipuler mon image comme étant un tableau dans lequel je peux modifier ses valeurs.

    En effet, c’est pour un projet de simulation de robot mobile qui doit suivre une trajectoire tout en évitant les obstacles !
    J’ai utilisé le logiciel « Paint » de Windows pour créer mon environnement. Donc, j’ai assimilé des obstacles à des triangles, rectangle…etc avec une couleur noir (donc de valeur 0) et le reste de mon environnement (zones sans obstacles) prennent la couleur blanche (donc de valeur 255).
    La méthode de planification de trajectoire du robot que je dois utiliser, exige d’abord une décomposition de mon environnement en cellules élémentaires (j’ai choisi 10*10 Pixels pour chaque cellule), ensuite, changer la valeur de l’obstacle et lui donner la valeur -1, et je dois changer aussi les valeurs de mes cellules.

    En clair, je dois pouvoir manipuler mon image de 600*550 Pixels par exemple, exactement comme si je manipule une matrice de 60*55 cellules.

    Je ne sais pas si cette possibilité existe, ou une autre possibilité serait la bienvenue !

    Merci beaucoup pour votre aide.

Discussions similaires

  1. Comment tester qu'une valeur est dans un tableau ?
    Par Pierrot92320 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/04/2009, 18h59
  2. Vérifier si une valeur est dans un tableau croisé dynamique
    Par psykodumarteau dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/07/2008, 13h39
  3. Tester si une valeur existe dans un tableau EXCEL
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2008, 12h07
  4. Réponses: 6
    Dernier message: 31/08/2007, 00h15
  5. test si une valeur existe dans un tableau
    Par Maria1505 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 15/08/2007, 17h10

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