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++ Discussion :

Fonction qui renvoie un tableau


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lille
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Fonction qui renvoie un tableau
    Bonjour,

    Je suis relativement débutant en c++ mais je travaille actuellement sur le développement d'un outil de segmentation d'images scanner.
    Je suis donc amené à traiter des images (sous forme de tableaux contenants les valeurs des pixels de l'image).
    Je doit créer plusieurs fonctions qui vont êtres appelées dans la fonction main, chacune de ces fonctions prennent comme variable d'entrée une matrice et doivent retourner la matrice modifiée.
    Je pourrait ainsi écrire quelque chose comme ça:

    matriceB=fonction_de_modification(matriceA)

    Ma question est quelle doit être la structure de la fonction pour qu'elle retourne un tableau.

    Merci d'avance,
    Thomas

    EDIT: Je travaille sous visual studio 2010 Ultimate

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Je te conseille vivement de ne pas partir de zéro, et d'utiliser OpenCV pour tes matrices et opérations matricielles. C'est une lib très complète, bien documentée et simple à l'usage. Elle intègre même nativement certains algos de segmentation (Grabcut).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lille
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Je te conseille vivement de ne pas partir de zéro, et d'utiliser OpenCV pour tes matrices et opérations matricielles. C'est une lib très complète, bien documentée et simple à l'usage. Elle intègre même nativement certains algos de segmentation (Grabcut).
    Merci, j'ai commencé à lire la doc concernant les matrices, effectivement cela sera beaucoup plus simple pour manipuler des matrices.
    Par contre je n'ai pas vu comment il était possible de faire appel à une fonction qui retourne une matrice. Est-ce faisable?

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour et bienvenue sur le forum C++

    Tu peux jeter un coup d'oeil sur la FAQ C++, en particulier la partie sur les fonctions : http://cpp.developpez.com/faq/cpp/?page=fonctions

    Par contre, tu sembles avoir des grosses lacunes en C++ (voir un niveau proche de 0 ?) Si tu pars sur un gros projet directement, ça risque de te prendre plus de temps. Prend le temps d'apprendre la syntaxe du C++ (si tu connais d'autres langages objets) ou même d'apprendre plus complètement le C++ (si tu connais rien en programmation)

    Bon courage

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Bien sûr, ici f() retourne une matrice qui est une copie de l'argument, fois 2 :
    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
     
    // Définition de f()
     
    cv::Mat f(cv::Mat mat)
    {
      cv::Mat result;
      result = mat * 2;
      return result;
    }
     
    // Exploitation de f()
     
    cv::Mat mat(...); // mat contient [0 1; 1 0]
    cv::Mat mat2 = f(mat); // mat2 contient [0 2; 2 0]
     
    cv::Mat mat3 = mat; // ici, mat et mat3 désignent la même matrice [0 1; 1 0]
    // donc modifier mat modifiera mat3, et inversement.
    cv::Mat fonctionne comme un shared_ptr, si ça t'évoque quelque chose. Du coup, très souvent, on peut se passer des pointeurs et des références C++. Au lieu de ça on passe/retourne des cv::Mat par copie.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lille
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Bonjour et bienvenue sur le forum C++

    Tu peux jeter un coup d'oeil sur la FAQ C++, en particulier la partie sur les fonctions : http://cpp.developpez.com/faq/cpp/?page=fonctions

    Par contre, tu sembles avoir des grosses lacunes en C++ (voir un niveau proche de 0 ?) Si tu pars sur un gros projet directement, ça risque de te prendre plus de temps. Prend le temps d'apprendre la syntaxe du C++ (si tu connais d'autres langages objets) ou même d'apprendre plus complètement le C++ (si tu connais rien en programmation)

    Bon courage
    Merci pour le lien de la FAQ, je vais y faire un tour.
    Effectivement j'ai un niveau proche de zéro, j'ai commencé à apprendre ce langage tout seul il y a quelques mois. J'ai une connaissance basique de quelques langages (Mathematica, Matlab) mais aucune OO.
    Étant donné que j’ai un délai à respecter j'apprends un peu au fur et a mesure en fonction de ce que j'ai besoin de réaliser. Je sais bien que c'est loin d'être une bonne méthode mais je n'ai pas trop le choix!


    cob59 - Merci c'est exactement cela dont j'ai besoin, je vais le mettre en application dès que j'aurai réussi à compiler OpenCV (j'ai un peu de mal également :X)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lille
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Je vais bel et bien utiliser OpenCV car cela réponds à mon problème, je marque donc ce post comme résolu.

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

Discussions similaires

  1. fonction qui renvoie un tableau
    Par deubelte dans le forum C++
    Réponses: 24
    Dernier message: 26/05/2007, 01h51
  2. fonction qui renvoie un tableau
    Par GLSpirit dans le forum C++
    Réponses: 9
    Dernier message: 12/05/2007, 14h05
  3. fonction qui renvoie un tableau
    Par toto2022 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/01/2007, 16h11
  4. Comment faire une fonction qui renvoi un tableau.
    Par poly128 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 01h04
  5. Fonction qui renvoie un tableau?
    Par elm dans le forum C
    Réponses: 23
    Dernier message: 21/12/2005, 12h44

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