Outils pour utilisateurs

Outils du site


diy:projets:panorama

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
diy:projets:panorama [2018/05/24 12:20] gbouyjoudiy:projets:panorama [2018/05/24 13:07] (Version actuelle) gbouyjou
Ligne 3: Ligne 3:
 Le but de ce tutoriel sera d'effectuer un **panorama** utilisant le **raspberry pi** et sa **camera**.\\ Le but de ce tutoriel sera d'effectuer un **panorama** utilisant le **raspberry pi** et sa **camera**.\\
  
-On aurrait pu pour cela tourner la camera du raspberry pi à la main, ou utiliser plusieurs raspberry pi avec +On aurrait pu pour cela tourner la camera du raspberry pi **à la main**, ou utiliser **plusieurs** raspberry pi avec 
-leurs camera pour pouvoir avoir une vue panoramique, mais c'est asser contraignant soit en temp ou en ressource.\\+leurs camera pour pouvoir avoir une vue panoramique, mais c'est asser **contraignant** soit en **temp** ou en **ressource**.\\
  
 La seule solution possible étant d'utiliser un **support** avec **double servo moteurs** photo //ci contre//\\ La seule solution possible étant d'utiliser un **support** avec **double servo moteurs** photo //ci contre//\\
Ligne 11: Ligne 11:
 {{ :diy:projets:supportservo.jpg?direct&200|support camera pi utilisant 2 servo moteurs}} {{ :diy:projets:supportservo.jpg?direct&200|support camera pi utilisant 2 servo moteurs}}
  
-En premier lieu on montrera comment [[diy:projets:panorama#Commencement avec python avec 2 images|fusionner]] 2 images sous **python**, puis je présenterais le code python nommé[[https://github.com/hiergaut/unix/blob/master/raspbian/bin/servo.py|servo.py]] permettant de bouger la camera dans toutes les directions\\+En premier lieu on montrera comment [[diy:projets:panorama#Commencement avec python avec 2 images|fusionner]] 2 images sous **python**, puis je présenterais le code python nommé[[https://github.com/hiergaut/unix/blob/master/raspbian/bin/servo.py|servo.py]] permettant de bouger la camera dans toutes les directions.\\
 \\ \\
-ensuite j'expliquerais aussi le [[diy:projets:panorama#Montage électrique |montage électrique]] asser simple à faire mais  il faudra quand meme utiliser une **source 5v externe** et non celle du raspberry pi car l'utilisation des+Ensuite j'expliquerais aussi le [[diy:projets:panorama#Montage électrique |montage électrique]] asser simple à faire mais  il faudra quand meme utiliser une **source 5v externe** et non celle du raspberry pi car l'utilisation des
 **servo moteurs** peuvent tirer beaucoup d'ampere et risquerais de terminer le raspberry pi.\\ **servo moteurs** peuvent tirer beaucoup d'ampere et risquerais de terminer le raspberry pi.\\
 +
 +Initialisation des rapports cycliques (servo utilisant les gpio PWM) graces a un [[diy:projets:panorama#Expliquation du PWM (utilisation des servos)|code]] python.\\
  
 Puis apres ça je présenterais un petit [[diy:projets:panorama#Prendre des photos en mode panoramique|code shell]] nommé [[https://github.com/hiergaut/unix/blob/master/raspbian/bin/fishEye.sh|fishEye.sh]] qui utiliserera la commande python faite précedement et qui prendra plusieurs photo avec une vue 360 degré.\\ Puis apres ça je présenterais un petit [[diy:projets:panorama#Prendre des photos en mode panoramique|code shell]] nommé [[https://github.com/hiergaut/unix/blob/master/raspbian/bin/fishEye.sh|fishEye.sh]] qui utiliserera la commande python faite précedement et qui prendra plusieurs photo avec une vue 360 degré.\\
Ligne 20: Ligne 22:
 Puis pour finir l'utilisation d'un [[diy:projets:panorama#Utilisation de stitching.cpp|programme opencv]] pour créer le panorama avec les photos prises, Puis pour finir l'utilisation d'un [[diy:projets:panorama#Utilisation de stitching.cpp|programme opencv]] pour créer le panorama avec les photos prises,
 on pourra spécifier le mode de rendu du panorama : on pourra spécifier le mode de rendu du panorama :
-  * Cylindrique +  * **Cylindrique** 
-  * Sphérique (par default+  * **Sphérique** (__par default__
-  * Stéréographique +  * **Stéréographique** 
-  * et pleins d'autres (taper en ligne de command `./stitching -h` pour voir tous les autres modes+  * et pleins d'autres 
 +\\ 
 +//Tapez dans un terminal la commande pour voir les autres options// 
 +<code shell> 
 +./stitching -h 
 +</code>
  
 \\ \\
Ligne 46: Ligne 53:
  
 {{:diy:projets:panorama_0.jpg?direct&400 |}} {{:diy:projets:panorama_0.jpg?direct&400 |}}
-{{ :diy:projets:panorama_1.jpg?direct&400 |}}+{{ :diy:projets:panorama_1.jpg?direct&400 |}}\\
  
 \\ \\
Ligne 66: Ligne 73:
 </code> </code>
  
-{{ :diy:projets:screen5.png?direct&400 |}}+{{ :diy:projets:screen5.png?direct&400 |}}\\ 
 \\ \\
 //Avant de faire la **fusion** il faut trouver les **points** qui se trouve sur les 2 images, on peut visionner cela avec ce code// //Avant de faire la **fusion** il faut trouver les **points** qui se trouve sur les 2 images, on peut visionner cela avec ce code//
Ligne 94: Ligne 102:
 \\ \\
 //On visionne les **points** repere entres les 2 images, on peut voir qu'il y en a beaucoup// //On visionne les **points** repere entres les 2 images, on peut voir qu'il y en a beaucoup//
 +
 {{ :diy:projets:screen6.png?direct&400 |}} {{ :diy:projets:screen6.png?direct&400 |}}
  
Ligne 101: Ligne 110:
  
  
- +\\ 
 +\\
 ---- ----
 ===== Utilisation des servo moteurs avec python (lib GPIO) ===== ===== Utilisation des servo moteurs avec python (lib GPIO) =====
Ligne 112: Ligne 121:
  
 ==== Montage électrique ==== ==== Montage électrique ====
- 
 \\ \\
 //Presentation du montage maison avec le support double servo attaché sur le boitier du raspberry pi avec des tyraps.// //Presentation du montage maison avec le support double servo attaché sur le boitier du raspberry pi avec des tyraps.//
 +
 {{ :diy:projets:double_servo.jpg?direct&600 |}} {{ :diy:projets:double_servo.jpg?direct&600 |}}
  
 \\ \\
 //Presentation du montage électrique (utilisation de **source 5v externe**)// //Presentation du montage électrique (utilisation de **source 5v externe**)//
 +
 {{ :diy:projets:servoelec.png?direct&600 |}} {{ :diy:projets:servoelec.png?direct&600 |}}
 {{ :diy:projets:servoschema.png?direct&600 |}} {{ :diy:projets:servoschema.png?direct&600 |}}
  
 +\\
 ==== Expliquation du PWM (utilisation des servos) ==== ==== Expliquation du PWM (utilisation des servos) ====
 [[https://mespotesgeek.fr/fr/variation-de-puissance-electrique-via-raspberry/|Cliquer pour voir une expliquation détaillé]] [[https://mespotesgeek.fr/fr/variation-de-puissance-electrique-via-raspberry/|Cliquer pour voir une expliquation détaillé]]
Ligne 143: Ligne 153:
 pwm.start(20) pwm.start(20)
 </code> </code>
 +
  
 Le problème et que on ne connait pas à l'avance les rapport cycliques pour permettre aux 2 servo moteurs Le problème et que on ne connait pas à l'avance les rapport cycliques pour permettre aux 2 servo moteurs
Ligne 207: Ligne 218:
 </code> </code>
  
 +\\
 Avant de lancer le panorama, il faut preparer un programme python pour diriger la camera selon n'importe quel inclinaison.\\ Avant de lancer le panorama, il faut preparer un programme python pour diriger la camera selon n'importe quel inclinaison.\\
 Je décide de créer une fonction prenant 2 argument [-180..180] pour autour de l'axe vertical, [0..90] autour de l'axe horizontal. Je décide de créer une fonction prenant 2 argument [-180..180] pour autour de l'axe vertical, [0..90] autour de l'axe horizontal.
Ligne 255: Ligne 266:
 tout autour de l'axe vertical d'un pas de 45 degre avec le code suivant, en n'oubliant pas d'importer le code precedent. tout autour de l'axe vertical d'un pas de 45 degre avec le code suivant, en n'oubliant pas d'importer le code precedent.
  
 +\\
  
 ==== Prendre des photos en mode panoramique ==== ==== Prendre des photos en mode panoramique ====
- +\\ 
-Voici le **script shell** utilisant le programme python pour prendre des photos en mode panoramique.+//Voici le **script shell** utilisant le programme python pour prendre des photos en mode panoramique.//
  
 <code shell> <code shell>
Ligne 277: Ligne 289:
 J'utilise raspistill au lieu d'utiliser VideoCapture de opencv, en n'oubliant pas de tourner l'image avec l'option vf et hf de raspistill J'utilise raspistill au lieu d'utiliser VideoCapture de opencv, en n'oubliant pas de tourner l'image avec l'option vf et hf de raspistill
  
 +\\
  
 ==== Video pour résumer ==== ==== Video pour résumer ====
 Utilisation de la commande servo.py et fishEye.sh Utilisation de la commande servo.py et fishEye.sh
 +
 \\ \\
 //Vous pouvez télécharger les sources directement sur le raspberry de cette façon// //Vous pouvez télécharger les sources directement sur le raspberry de cette façon//
Ligne 287: Ligne 301:
 </code> </code>
  
 +\\
 +// Video résumant le init pwm, et le fishEye.//
 {{youtube>S3QNFzmFdqs?medium}} {{youtube>S3QNFzmFdqs?medium}}
  
  
  
 +\\ 
 +\\
 ---- ----
 ===== Utilisation de stitching.cpp  ===== ===== Utilisation de stitching.cpp  =====
Ligne 302: Ligne 319:
 ./stitching --features orb --warp cylindric picture*.jpg ./stitching --features orb --warp cylindric picture*.jpg
 </code> </code>
-maintenant reste plus qu'a fusionner les images recement capturées, pour cela+ 
 +\\ 
 +Maintenant reste plus qu'a fusionner les images recement capturées, pour cela
 telechargeons le code cpp sur github telechargeons le code cpp sur github
 [[https://github.com/opencv/opencv/blob/master/samples/cpp/stitching.cpp]] [[https://github.com/opencv/opencv/blob/master/samples/cpp/stitching.cpp]]
Ligne 309: Ligne 328:
 </code> </code>
  
 +\\ 
 +==== Divers mode (features) de fusion des images ====
  
   * mode **cylindrique**:   * mode **cylindrique**:
Ligne 318: Ligne 338:
 \\ \\
 //prise de vue salle de cours, team be traitement d'image sous rpi:// //prise de vue salle de cours, team be traitement d'image sous rpi://
 +
 {{ :diy:projets:result.jpg?direct&600 |}} {{ :diy:projets:result.jpg?direct&600 |}}
  
 +\\
  
   * mode **stereographique**:   * mode **stereographique**:
Ligne 328: Ligne 349:
  
  
 +
 +\\
 +\\
 +----
 ===== Timelapse en mode stéréographique ===== ===== Timelapse en mode stéréographique =====
  
diy/projets/panorama.1527164415.txt.gz · Dernière modification : 2018/05/24 12:20 de gbouyjou