Problème code C++ débutant watershed - C++ - Programmation
Marsh Posté le 22-10-2014 à 14:02:54
Bonjour,
Citation : Néanmoins, ce code comporte des erreurs, et étant débutante en C++, je n'arrive pas à les résoudre. |
Et il ne vous viendrait pas à l'esprit de poster lesdites erreurs afin qu'on puisse vous donner des indications sur ce qui les provoque. Il faut qu'on les devine en lisant 450 lignes de code?
A+,
Marsh Posté le 23-10-2014 à 17:14:54
gilou a écrit : Bonjour,
Et il ne vous viendrait pas à l'esprit de poster lesdites erreurs afin qu'on puisse vous donner des indications sur ce qui les provoque. Il faut qu'on les devine en lisant 450 lignes de code? |
En effet, je suis désolée j'étais fatiguée en postant.
voici les erreurs :
watershed.cxx03.cpp: In member function ‘bool color_one_neighbor::operator()(vertex_t, triangle_t, int)’:
watershed.cxx03.cpp:353:13: error: ‘frontier’ was not declared in this scope
frontier.push_back( vv );
^
watershed.cxx03.cpp: In member function ‘virtual AnyType WATERSHED_P1_Op::operator()(Stack) const’:
watershed.cxx03.cpp:427:74: error: no matching function for call to ‘color_one_neighbor::color_one_neighbor(KN<double>&, const fat_vertex_t&, std::vector<int>&, const color_t&, queue_t& )’
color_one_neighbor(tff, current, colors, current_color, queue)
^
watershed.cxx03.cpp:427:74: note: candidates are:
watershed.cxx03.cpp:330:8: note: color_one_neighbor::color_one_neighbor()
struct color_one_neighbor {
^
watershed.cxx03.cpp:330:8: note: candidate expects 0 arguments, 5 provided
watershed.cxx03.cpp:330:8: note: color_one_neighbor::color_one_neighbor(const color_one_neighbor& )
watershed.cxx03.cpp:330:8: note: candidate expects 1 argument, 5 provided
Marsh Posté le 24-10-2014 à 00:20:22
>> Néanmoins, ce code comporte des erreurs, et étant débutante en C++, je n'arrive pas à les résoudre.
C'est pas du code pour débutant...
Bon, il y a deux erreurs.
La première:
color_one_neighbor(tff, current, colors, current_color, queue)
mais la struct color_one_neighbor (une sorte de classe particulière en C++) n'a pas de constructeur, en particulier pas de constructeur a 5 arguments (le compilo a du en générer un a 0 argument), il va donc falloir rajouter un tel constructeur a color_one_neighbor.
La seconde erreur: frontier est utilis dans la struct color_one_neighbor sans être déclaré. il est déclaré dans Watershed_P1_Op:
vertices_t frontier;
Il va donc falloir déclarer un membre de plus dans color_one_neighbor, rajouter ce type de membre dans le constructeur (a 6 et non plus 5 paramètres) et ajouter ce parametre supplémentaire a l'appel (actuellement fautif) color_one_neighbor(tff, current, colors, current_color, queue)
C'est mon impression au vu du code, sans savoir ce qu'il est censé faire (et quelqu'un qui le comprends saura si c'est bon ou pas, mais la le code est trop opaque pour que je puisse en dire plus).
A+,
Marsh Posté le 22-10-2014 à 09:35:23
Bonjour,
Je travaille dans le cadre d'un stage de recherche sur la localisation des ondes sur une plaque de métal.
J'utilise le logiciel Freefem++ afin de résoudre mes équations aux DPP.
A partir de la fonction trouvée et de sa cartographie (voir la photo que je poste), je dois trouver les maxima (crêtes) de la fonction.
Comme il n'y a pas de méthode "watershed" sur Freefem++, je dois compiler un code C++.
Mon tuteur de stage m'a donné le code C++ que je devais utiliser pour réaliser la fonction "watershed".
Néanmoins, ce code comporte des erreurs, et étant débutante en C++, je n'arrive pas à les résoudre.
Pouvez-vous m'aider s'il-vous-plaît ?
Voici le code :
Et voici le genre de fonction dont je veux trouver les crêtes :