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

OpenCV Discussion :

Lire une matrice stockée dans un fichier texte et la convertir en cvMat


Sujet :

OpenCV

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Lire une matrice stockée dans un fichier texte et la convertir en cvMat
    Salut

    je suis en train de traiter des données sous matlab. J'ai sauvgardé mes résulats dans des fichiers txt ( des matrices). Je veus injecter ces données dans un programme C++ pour faire d'autres traitements, mon probléme c'est que je dois transformer ces données en une matrice sous open cv ( Cv:: mat) car dans le programme C++chaque fichier . txt devrait etre traiter comme une matrice. j'ai besion d'aide pour trouver le bout de code C++ qui me permettre de faire ça.
    en fait j'ai essayé ça et n'a pas donné ce que je veux.


    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
    cv :: Mat matrice ;
     
    string line;
      ifstream myfile ("fichier.txt");
      if (myfile.is_open())
      {
        while ( myfile.good() )
        {
          getline (myfile,line);
       matrice.push_back (line);
     
        }
        myfile.close();
      }
     
      else cout << "Unable to open file";
    Merci pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 58
    Points
    58
    Par défaut
    Salut,
    il faut commencer par savoir si tu connais d'avance la taille de ta matrice et quelle type de data tu compte stocker (int, double, char, ...) ?

    ça te permettra de définir ta matrice comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cv::Mat matrice(nombre_de_ligne, nombre_de_colonne, XXXX);
    et tu remplace XXXX le type qui t'intéresse
    CV_<bit depth><S|U|F>C<number of channels> , where S=signed, U=unsigned, F=float. For example, CV _ 8UC1 means the elements are 8-bit unsigned and the there is 1 channel, and CV _ 32SC2 means the elements are 32-bit signed and there are 2 channels.
    exemple pour des entiers : CV_32SC1
    pour des entiers strictement positif : CV_32UC1

    une fois ta matrice bien définie, il faut parcourir tes données pour les ajouter une par une.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matrice.at<ton_type>(index_ligne, index_colonne) = ta_valeur_lu_dans_ton_fichier;

Discussions similaires

  1. [Débutant] Écrire une matrice 3d dans un fichier texte
    Par maryem_kh dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/09/2012, 19h10
  2. Réponses: 26
    Dernier message: 20/06/2010, 18h24
  3. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  4. Importation d'une matrice stockée dans un fichier texte
    Par Contractofoued dans le forum C++
    Réponses: 4
    Dernier message: 21/05/2008, 18h21
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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