====== Projet participatif autour de Python et OpenCV ====== ===== Annonce ===== Nous profitons de la nouvelle année pour démarrer un projet participatif sur Python et OpenCV. Python est un langage de programmation efficace dans de nombreux domaines d’application, et dont l’apprentissage est relativement aisé. Il est bien sûr libre, et la documentation et les aides abondantes. OpenCV (pour Open Computer Vision) est une bibliothèque graphique libre, spécialisée dans le traitement d’images. Étudier, développer ensemble avec Python et OpenCV, c’est ce que nous vous proposons, avec de nombreuses applications possibles, via les innombrables capteurs d’images dont nous disposons. Chacun pourra évidemment le faire à son niveau, et en fonction de ses disponibilités ! ===== Lien Projet Picar-V - Ball track ===== https://github.com/sunfounder/SunFounder_PiCar-V/tree/master/ball_track ===== La librairie OpenCV ===== * [[https://fr.wikipedia.org/wiki/OpenCV|OpenCV]] est une bibliothèque graphique libre spécialisée dans le traitement d'images en temps réel * Le site officiel : [[https://opencv.org/]] ===== Le langage Python ===== * Le site officiel : [[https://www.python.org/]] * La version de base actuelle (janvier 2018) : 3.6.4 * [[https://www.anaconda.com/|Anaconda]] : un environnement complet multiplateforme bien adapté à l'utilisation conjointe de Python et openCV. * La version recommandée d'Anaconda : Anaconda3 5.0.1 64 bits pour GNU/Linux et processeur compatible Intel, incluant Python 3.6. Lien de téléchargement : [[https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh]] * Installation : se placer dans le répertoire du fichier et "bash ./Anaconda3-5.0.1-Linux-x86_64.sh". Ensuite accepter la license, l'update PATH, choisir yes, next,... * la commande conda permet de gérer l'installation des paquets (un peu comme apt-get, yum, npm,...). Mise à jour de conda et Anaconda : conda update conda (2 fois si utile) et conda update anaconda * L'environnement est géré également par l'interface graphique "Anaconda Navigator", qu'il faut démarrer au préalable, pour accéder à plusieurs outils. Pour débuter, **Spyder permet d'écrire et exécuter des programmes Python** ===== Python et OpenCV ===== * Installation de la librairie OpenCV pour Anaconda : "conda install -c menpo opencv3" * Documentation : [[https://docs.opencv.org/master/]] * OpenCV-Python Tutorials : * [[https://docs.opencv.org/master/d6/d00/tutorial_py_root.html]] * [[http://opencv-python-tutroals.readthedocs.io/en/latest/index.html|OpenCV-Python Tutorials]] (Read the Docs) * Gui Features in OpenCV : [[https://docs.opencv.org/master/dc/d4d/tutorial_py_table_of_contents_gui.html]] * Getting Started with Images : [[https://docs.opencv.org/master/dc/d2e/tutorial_py_image_display.html]] ==== Exemples d'applications ==== (en vrac) : * ImageJ-OpenCV comparison : [[http://stackoverflow.com/questions/30614448/explanation-of-histogram-between-opencv-and-imagej]] * tutoriel de "dewarping" de scans de page, redressement et b&w : [[https://mzucker.github.io/2016/08/15/page-dewarping.html]] * Optical Mark Recognition : [[http://www.pyimagesearch.com/2016/10/03/bubble-sheet-multiple-choice-scanner-and-test-grader-using-omr-python-and-opencv/]] * [[http://www.learnopencv.com/handwritten-digits-classification-an-opencv-c-python-tutorial/]] * Tracking : [[http://www.learnopencv.com/object-tracking-using-opencv-cpp-python/]] * [[http://www.learnopencv.com/embedded-computer-vision-which-device-should-you-choose/]] * [[http://www.learnopencv.com/automatic-red-eye-remover-using-opencv-cpp-python/]] * [[http://www.learnopencv.com/color-spaces-in-opencv-cpp-python/]] * codes barre/barcode, yc QRcode : [[https://www.learnopencv.com/barcode-and-qr-code-scanner-using-zbar-and-opencv/|Barcode and QR code Scanner using ZBar and OpenCV]] * proof of concept: detection of a train’s passing and direction from video (Jupyter) : [[https://opendatascience.com/blog/image-processing-in-python/]] + [[http://cmawer.github.io/trainspotting/trainspotting-blog.html]] * [[https://www.pyimagesearch.com/2018/01/01/taking-screenshots-with-opencv-and-python/]] : Taking screenshots with OpenCV and Python * cours : [[https://courses.learnopencv.com/p/opencv-for-beginners]] * [[https://courses.learnopencv.com/p/computer-vision-for-faces|Computer Vision for Faces]] Become an expert in Computer Vision for faces in just 12 weeks with this practical course for building applications using OpenCV + Dlib (C++ & Python) * [[https://medium.com/@LearnOpenCV/average-face-opencv-c-python-tutorial-3a89b5347bdd|Average Face : OpenCV (C++ / Python) Tutorial]] ===== Références générales sur Python, tutoriels, cours,... ===== * [[http://dvillers.umons.ac.be/wiki/floss:python|Python : quelques références, trucs et astuces]] * Cours en ligne (Mooc) en français sur Fun-MOOC, par l'INRIA : * [[https://www.fun-mooc.fr/courses/inria/41001S03/session03/about|Python : des fondamentaux à l'utilisation du langage]] * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about|Python 3 : des fondamentaux aux concepts avancés du langage]] * [[http://dvillers.umons.ac.be/wiki/teaching:progappchim:presentation_principes|Présentation et principes de base de la programmation en Python, avec quelques applications]], et autres liens [[http://dvillers.umons.ac.be/wiki/teaching:progappchim:start|ici]] * [[https://perso.limsi.fr/pointal/python:courspython3|Python : pour les nuls !]] * [[https://www.datacamp.com/courses/intro-to-python-for-data-science|Cours DataCamp "Intro to Python for Data Science"]] * Applications mobiles de DataCamp (Cours introductifs sur Python, R,...) * [[https://play.google.com/store/apps/details?id=com.datacamp|Application Android sur Google Play]] * [[https://itunes.apple.com/us/app/datacamp-learn-r-python/id1263413087|sur App Store for iOS devices]]