Aller au contenu


Photo
- - - - -

Projet Python 360°

360°

  • Veuillez vous connecter pour répondre
1 réponse à ce sujet

#1 Conrad Allain

Conrad Allain

    Membre

  • Membres
  • 26 messages

Posté 22 mars 2016 - 10:28

Bonjour, 

dans le cadre de mon projet d'ISN, je voudrais réaliser un système permettant de créer une sorte de Street View dans mon lycée, j'ai fait des prises de vue en panoramique, ainsi que plusieurs photos sur un axe de 360° (meilleure qualité). Maintenant viens la partie programmation, mais je ne sais pas du tout comment m'y prendre pour importer des photos dans Tkinter (mac), dois-je créer un canvas? De plus je dois pouvoir circuler dans cette "bulle de photos" grâce à la souris, et plus tard circuler dans des couloirs par exemple.

Comment dois-je faire ?

Comment dois-je programmer ?

Cordialement 

Allain



#2 djgsi

djgsi

    Nouveau membre

  • Membres
  • 3 messages
  • Gender:Male
  • Location:Ile de la réunion

Posté 21 avril 2016 - 08:16

Bonjour.

 

Tu as du pain sur la planche et entre nous, il sera difficile d'égaler street view. Ceci dit, avec un peu de logique, il me semble qu'il devient assez simple de programmer ce que tu cherches à faire. Du moins je peux t'expliquer un peu comment je ferais si je devais le faire (je ne suis pas un spécialiste).

Mais attention, je me base sur les images séparées par point de prise de vues, et non des images 360 degrés.

 

1 - Concernant python, oui, si tu utilises Tkinter, il faut utiliser des canvas pour afficher des images à l'éran. Ceci dit, attention : il semble que Tkinter ne gère que les gifs (à confirmer et il existe d'autres bibliothèques comme wxwidget qui sont plus intéressants). Pour te dire comment faire, il faudrait un tuto rien que pour ça. Voici un lien qui explique comment utiliser Tkingter en python : https://fr.wikibooks..._Python/Tkinter et entre autre, comment afficher des images.

 

2 - Maintenant, pour la partie circulation entre les images, je procéderais comme suit :

 

  2.1 - créer un tableau qui correspondrait à la cartographie de ton lycée vu de dessus

          un peu comme un cadrillage superposé sur la carte du lycée vu de dessus

          a toi de juger le nombre de cases que tu souhaites disposer en largeur et en hauteur.

          sur cette carte, il faudra décider de se positionner une case de départ et surtout une direction

          pour la direction, il faudra décider du nord, du sud, de l'est et de l'ouest.

 

  2.2 - regrouper les images par lieu de prises de vues et codifier le nom de celles-ci

          renommer les images en codifiant avec le numéro de la case X-Y de ton tableau

          et la direction (si tu as des images à 360 degrés, la première image en direction du nord devra toujours être

          l'image en direction du nord : zéro degré.

          puis un degré supplémentaire pour les autres images jusqu'à avoir fait le tour.

          exemple : mon départ est en case 20 col 18, le premier fichier aura pour nom : 020-018-000

                           et la suivante 020-018-001 : première image à gauche (ou à droite, mais il faut choisir une direction et s'y tenir)

                           puis viendra   020-018-002 : deux degrés à gauche par rapport à la première 

                           puis viendra   020-018-003 etc...

 

  2.3 Etablir des liens entre les différents points de vue :

        il faut décider pour chaque point de vue, des images qui te permettront d'aller au point de vue suivant (si possible)

        je ne pense pas que chaque image permettra de faire le lien, ça fera beaucoup trop à gérer.

        Tu peux aussi par exemple, pour ces images un peu "spéciales", créer un tableau qui fera la correspondance

        entre l'image en question, et les coordonnées du point de vue suivant.

        exemple : l'image 020-018-003 permettra d'aller à la case 020-015.

 

  2.3 - Faire ton programme pour ta souris, ou ton clavier pour lire la direction voulue et le déplacement.

 

          En gros : je suis sur la première image (on commence toujours au point de départ), je demande de tourner à gauche,

          je calcule alors le nom de l'image suivante j'affiche la deuxième (en gardant la partie gauche et en ajoutant 1 aux 3

          chiffres de droite et quand on arrive à 359, la suivante est l'image 000).

 

          Je suis sur une image, je demande d'aller en face, je vérifie si mon image est une image "spéciale" : 

          si il existe dans le deuxième tableau, alors c'est une image "spéciale" et je peux récupérer les coordonnées

          du point de vue suivant. En plus de ces coordonnées, il faut ajouter la direction en cours (les 3 derniers chiffres de l'image où j'étais)

          pour avoir le nom de l'image suivante.

          exemple : je suis sur l'image 020-018-090 : je cherche dans le tableau des images "spéciales" et je la trouve

          du coup, les coordonnées du point de vue suivant est le "017-018" : l'image suivante sera "017-018-090" : on garde la même direction

          pour donner l'impression de continuité dans l'affichage de la direction suivante.

 

Concernant les images prises directement en 360 degrés (en gros une seule image mais super large, il faut trouver un moyen pour afficher une portion de l'image à chaque fois et utiliser un peu le même principe que ci-dessus.

 

Voilà, j'espère t'avoir aidé au moins un peu, mais personne ne pourra faire les programmes à ta place, il faut bien que tu y mettes un peu du tien.

Bon courage et à bientôt !


Avec le temps, on y arrive.

Blog sur mon petit robot perso : https://djgsi974.wordpress.com






Aussi étiqueté avec au moins un de ces mots-clés : 360°

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users