Laser Scanner 3D SkanDal Logiciel
Développé sous Linux Mint 15, python 3.3 et opencv 3.0.
Sommaire
Ressources python-opencv
- OpenCV-Python Tutorials
- Write Binary STL files from Python pour créer un PLY
- Here Comes Official OpenCV-Python Tutorials
- Le tuto d'Olivier pour débuter
- Le format de fichier STL
- Le Format de fichier de polygones PLY
FAQ
Pourquoi python ?
- Qu’est-ce qu’on peut faire avec Python ?
- Les scripts sont simples, facilement modifiables, un scan se fait en plusieurs étapes avec enregistrement de fichiers de sortie (images, textes, PLY) qui permettent de tester des modifications.
Pourquoi Zen ? Extrait du PEP 20:
- Préfèrer le beau au laid,
- ...
- Il doit y avoir une – et si possible une seule – façon évidente de procéder,
- même si cette façon n’est pas évidente à première vue, à moins d’être Hollandais.
- Mieux vaut maintenant que jamais,
- même si jamais est souvent mieux qu’immédiatement.
Le 21 ème:
- Venez sauver l'humanité lors des Open Atelier avec Labomedia.
Pourquoi python 3.3?
Pour être maintenable à long terme.
Simplement
Des scripts exécutables en console, une interface graphique simple, une Programmation Orienté Objet abordable. Pour que les scripts restent très simples, facilement compréhensible pour des novices en python, facilement testables, adaptables et modifiables. De toute façon, je ne sais pas faire compliqué.
L'interface graphique est un terminal, qui ouvre des fenêtres OpenCV avec des sliders.
Ce projet est destiné à être partagé.
Pourquoi Opencv ?
- OpenCV
- OpenCV sur Wikipédia OpenCV (pour Open Computer Vision) est une bibliothèque graphique libre, initialement développée par Intel, spécialisée dans le traitement d'images en temps réel. La société de robotique Willow Garage assure le support de cette bibliothèque depuis 2008.
Cette bibliothèque est distribuée sous licence BSD.
C'est puissant, rapide, parfaitement adapté au besoin.
Pourquoi numpy ?
OpenCV utilise des tableaux numpy qui sont optimisés en mémoires. Des tableaux python conduirait à faire les calculs en 2 heures au lieu de 20 secondes.
Installation pour python 2.7 et OpenCV 2.4.8
sudo apt-get install uvcdynctrl python-numpy python-serial python-opencv meshlab arduino
Installation pour python 3 et OpenCV 3.0
Dépendances
sudo apt-get install python3-numpy python3-serial uvcdynctrl meshlab arduino
Compilation Opencv 3.0
Arduino
Aller dans le dossier /skandal/sketchbook/skandal/ Ouvrir skandal.ino avec arduino, puis téléverser dans votre carte.
Ajout du user:
sudo usermod -a -G dialout votre_user
Redémarrer.
Sources avec python 2.7 et OpenCV 2.4.2
Tous les scripts sont en license GPL V2.
Sources avec python 3.3 et OpenCV 3.0
Cette version n'est pas actualisée actuellemnent Tous les scripts sont en license GPL V2.
Utilisation en terminal
Dans Skandalx.x-master, rendre éxécutable le fichier scan, le lancer en terminal.
Le nom du projet ne peut contenir que des lettres, les autres caractères seront supprimés.
Votre fichier ply sera dans work/ply/ et meshlab doit s'ouvrir automatiquement.
Numéro de device video
Il faut modifier le fichier skandal/scan.ini
video = 0
ou
video = 1
Bonus: Adapter les scripts python2.7 pour python3
config.py
- ligne 27 ConfigParser devient configparser
- ligne 72 ajouter une ligne 73 avec name = str(name)[1:] pour supprimer le u de unicode devant le string
skandal.py
- ligne 115 et 148 164 raw_input devient input
lanceur sh
- python3 au lieu de python