Algorithme d'extraction de courbe - Divers - Programmation
Marsh Posté le 20-09-2010 à 13:46:32
si tu veux repcup qu le jaune, pourquoi tu parts pas du pixel à coté du 0,0 puis tu montes tant que le pixel n'est pas noir, quand tu y es, tu reviens à y=0, tu avances x d'un pixel etc etc..
Marsh Posté le 20-09-2010 à 15:35:28
J'avais pensé à la même technique.
Joel F -> sauf si dans ces graphiques, on est sûr que c'est impossible que ça commence par du jaune hachuré.
Par contre, je suis pas sûr que si on rencontre un pixel noir, on doive s'arrêter : en effet, si la partie verte est plus basse que la partie hachurée (ex : graphique 3). Cela dit, je suis pas sûr d'avoir bien compris comment était généré la courbe rouge. Les 3 premiers graphiques ont un lien avec le 4ième
Marsh Posté le 20-09-2010 à 17:44:09
Désolé si je n'ai pas été clair.
Non chacun des graphs est indépendant des autres, et en effet la solution de rengzehn ne marchera pas car il faut aussi que j'inclus le vert et que la division entre vert et jaune est noire.
Par contre je pourrais éventuellement trouver une manière de supprimer la limite entre vert et jaune (en la mettant jaune par exemple), puis repasser une 2ème fois pour detecter le bord.
Là je fais des tests de différents algorithmes que j'ai élaborés (et qui tentent de détecter la présence ou non de lignes verticales). Mais si vous avez des idées, n'hésitez pas..
merci
Edit : Même si c'est assez peu probable qu'on démarre dans le jaune hachuré (de part la nature des données et la signification de l'hachurage), ce n'est malheureusement pas interdit, je préférerais donc passer par une méthode qui parte pas de ce postulat
Marsh Posté le 21-09-2010 à 09:02:59
Une transformées de Hough de base, puis tu supprimes tous les points qui appartiennent à des lignes verticales.
Marsh Posté le 21-09-2010 à 09:06:31
Peut-être j'ai mal compris ce que tu entends, mais mon but n'est pas de supprimer les lignes verticales.. Du coup je vois pas à quoi me servirait la transf. de Hough
Marsh Posté le 21-09-2010 à 10:14:36
au fait, on écrit "Algorithme" (vire le Y, ça me fait mal au yeux)
Marsh Posté le 21-09-2010 à 10:19:16
Sorry, fixed
Marsh Posté le 22-09-2010 à 21:36:54
Curieux qu'on vous file des courbes mais pas les données...
Marsh Posté le 22-09-2010 à 21:40:09
ça fait partie d'un document PDF publié par une entitée de l'état. On pourrait leur demander les valeurs (à chaque année) mais ça risquerait de nous faire perdre plus de temps que redessiner la courbe à la main.
Marsh Posté le 20-09-2010 à 10:12:35
Bonjour,
Je suis en train d'essayer de créer un petit script qui puisse aider à automatiser le boulot qui a, pour le moment, été jeté sur les pauvres stagiaires de chez nous (moi même étant ex-stagiaire, je me sens assez concerné ).
Donc, nous recevons des graphiques sous forme de PDF, à partir desquels nous devons extraire une certaine courbe qui sera ensuite rentrée (sous forme d'image) dans un programme. Pour le moment, quand les graph arrivaient, on demandait au pauvre stagiaire de sortie paint et de nous sortir la courbe en question, ce qui n'est ni marrant ni intéressant.
Voici un example des graphs qu'on obtient, sur le dernier j'ai dessiné en rouge la courbe que nous voudrions obtenir :
La logique est la suivante :
- Tout ce qui est orange ne doit pas être pris en compte.
- Tout ce qui est hachuré verticalement, ne doit pas être pris en compte
La 1ère condition ne me pose aucun soucis (suffit de remplacer tout ce qui est orange par du blanc). La 2ème par contre, j'ai beaucoup de mal à voir.
J'ai pensé utiliser un algo utilisant la transformée de Fourier, vu que ces droites verticales sont périodiques mais à mon avis je vais avoir beaucoup de mal à m'en sortir vu la forme des graphs.
Vous avez une idée?
Merci d'avance
Message édité par esox_ch le 21-09-2010 à 10:19:01
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait