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 :

script C réalisable ?


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 0
    Points
    0
    Par défaut script C réalisable ?
    Bonjour,
    Je suis débutant en programmation. J'ai commencé par le C ( et je viens d'atteindre un niveau qui me parait correct pour commencer mon projet).
    J'ai le projet de développer une application, ainsi je vous renvois sur ce poste si vous voulez plus d'infos ( la lecture du post n'est pas nécessaire pour répondre à ma question).
    http://www.developpez.net/forums/d16...n/#post8880213

    En clair, pour commencer mon projet j'ai besoin de me constituer une base de données des nœuds d'une ville ( les intersection et changement de direction de chaque route, les ronds points étant gérés comme des hexagones, si on zoom sur google map c'est ca).
    Pour cela, j'ai pensé à mettre en place le dispositif suivant :

    Une fonction (qui prend en argument une position géographique type GPS(un couple de 2 double), un zoom (un double en%))
    On notera que la position GPS entrée est au pixel extrême en haut a gauche de l'écran utilisateur.
    La fonction parcourt chaque pixel de l'image, et y associe un int correspondant à sa couleur.
    Elle renvoi donc un tableau[taille nombre de pixel /image] de structure (coordoné GPS x, coordoné GPS y, couleur)
    couleur étant un int qui correspond a une couleur (un peu comme les 'a' pour les lettres).
    Quand elle arrive a la fin d'une image, elle va à la coordonnée en haut a droite de l'image (c'est calculable et ca dépend de la taille du pixel et de l'echelle de la page donc du zoom), déplace l'écran afin de mettre ce point en haut à gauche et recommence.
    Donc, on choisit la zone a cartographier, et ça cartographie tout seul.

    Si cette fonction est écrivable en C, alors j'ai le bagage math et les connaissances suffisantes en C pour calculer tout les noeuds d'une image, j'ai déja écrit l'algorithme mathématiquement parlant sur papier, me manque juste l'acquisition des couleurs ( <=>en nombre) de tout les pixels, et de pouvoir utiliser une table de correspondance nombre <=> couleur.

    Si c'est faisable, de quelles bibliothèque aurais-je besoin ?
    Au plaisir de vous lire

    EDIT : PS :

    Par contre le programme n'étant pas destiné à être portable, ça ne sert à rien d'automatiser tout : par exemple l'ouverture de google map, le choix du zoom on peut l'enlever en argument. Par contre on peut imaginer de mettre en argument la zone de l'écran ou la carte est, afin d'éviter de faire l'acquisition de pixel ne représentant rien géographiquement parlant, et mettre une deuxième sécurité sur le nombre d'itération réalisées sur une image.


    Si C n'est pas possible, alors à quoi penseriez vous ( sachant que ca m'aiderai bien que ca soit sous C, du point de vu des connaissances et du point de vu des performances, je veux faire des cartes, donc faire surchauffer mon PC ) comme langage ?7


    EDIT Bis : Je ne parle pas du même algorithme que celui dans le post qui a été linké.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Bonjour et bienvenue,

    C'est faisable « en soi » en langage C. Par contre, je n'ai pas très bien saisi où tu voulais en venir. En gros, tu veux scanner automatiquement les cartes de Google Maps pour y reconnaître les routes et intersections puis, de là, tu veux en faire un graphe sur lequel tu vas appliquer des algos style voyageur de commerce pour refaire ce que font les GPS personnels, ou pour réécrire un Mappy amélioré, c'est bien ça ?

    Dans l'absolu, c'est possible mais loin d'être simple. Tout d'abord, il faudra t'assurer que ce genre de chose est permis par les licences d'exploitation de Google sur les données qu'il propose. Ensuite, il faudra vérifier que la colorimétrie des cartes est toujours la même, sinon tu auras besoin de faire du traitement d'images par dessus (postérisation, suppression des annotations, etc.). Il te faudra tenir compte de l'échelle (altitude) de la carte concerné et, enfin, il va falloir convertir en vecteurs les plages de couleurs correspondant aux routes. Autrement dit, faire de la détection de forme en isolant tout ce qui est plus long que large.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    réponse par MP.

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu veux reconstruire les données cartographiques à partir d'une image déjà constituée ? Ouch.

    Fucking ouch.


    Tu sais que les données d'origine (topographie, hydrographie, réseaux routier, ferroviaire, de distribution d'eau, cadastre, etc..) sont récupérables telles quelles depuis les bases distantes via des API RESTful ? Il existe des solutions payantes (auprès d'un fournisseur commercial comme Google Maps, Bing Maps, Mapquest ou autre) et gratuite grâce à OpenStreetMap.

  5. #5
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Si ce dont tu as besoin pour commencer c'est une collection d'images avec des cartes dessus,
    voici une petite suggestion pour te simplifier la vie (et ce ne sera ps du luxe !)

    Avec ton navigateur préféré tu visites google maps (ou autre site de carto en ligne, il y en a plein).
    Quand tu as la carte qui te plait, avec un petit outil de capture d'écran tu la sauvegardes dans un fichier.
    Et tu recommences jusqu'à ce que tu aies la base de cartes qui te convient.

    Ensuite, dans ton code C, il ne te reste plus qu'à accéder à ces images : freeimage fait ça très bien !

    Ce t'évitera d'avoir à piloter la navigation sur google maps depuis ton code...
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Pour Matt Houston :
    Ok, ca pourrait m'arranger, avec open street map, mais du coup je suis allé sur leurs site et comment on fait pour faire ca ? Je dois trouver une API Rest qui fait ca moi même, et la reconfigurer pour avoir ce que je veux ?

    Pour Captain :
    Bonne idée, freeimage c'est bien une bibliothèque C ? Est elle compatible avec C++ (on m'a conseillé de plutôt aller vers ce langage car il me serait alors plus simple de programmer l'algorithme du point de vue des maths) ?
    Si c'est bien une bibliothèque, alors tu sais si il y a des fonctions qui peuvent parcourir des pixels et tester leurs couleurs ?


    Autre question : connaissez vous une bibliothèque qui fournit des outils de calculs en géométrie euclidienne et en fonctions (2D) ? Comme par exemple la distance d'un point à une droite, la regression linéaire ou la gestion des ensembles de définition pour les fonctions ?
    Je vais pouvoir tester si la méthode des pixels en créant moi même des cartes a peu de pixels et en testant. Du coup si j'arrive pas a avoir de résultats sur des images genre 10x10 je ne continuerai pas dans l'idée d'automatiser la création des nodes, je creuserai l'idée d'aller voir openstreetmap etc..

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    @CaptainFLam : merci pour FreeImage je ne connaissais pas cette lib elle va m'être utile

Discussions similaires

  1. Réaliser un install pour un script python
    Par mcarluec dans le forum Déploiement/Installation
    Réponses: 13
    Dernier message: 15/04/2008, 08h14
  2. Réponses: 1
    Dernier message: 11/10/2007, 13h24
  3. [MySQL] Réaliser un script de statistiques : vos conseils pour l'architecture de la table ?
    Par MaTHieU_ dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/08/2006, 00h46
  4. Réponses: 2
    Dernier message: 20/06/2006, 22h58
  5. débutant perl: petit script à réaliser
    Par KymZen dans le forum Langage
    Réponses: 3
    Dernier message: 13/04/2006, 20h41

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