OpenCV
Préambule
La librairie OpenCv définit une structure d'image sur laquelle les principaux algorithmes de traitement d'image sont déjà implémentés. En ce qui nous concerne, nous nous focaliserons sur l'interface python.
Demandez une webcam pour réaliser ces tutoriaux.
OpenCV + webcam
Pour comprendre la manipulation d'images sous python via OpenCV, il vous faut connaître les tableaux numpy.
Lisez et essayez l'exemple invert.py. Vous pouvez ensuite essayer (et comprendre) le traitement de flux optique flow.py.
OpenCV + ROS
Nous allons reprendre sous ROS l'exemple invert.py. L'image ne proviendra plus d'une caméra, mais d'un topic d'image (compressé). En sortie, on ne demandera pas à opencv d'afficher l'image dans une fenêtre, mais on enverra des images compressées sur un topic de sortie.
Dans votre workspace, sous le dossier src, décompressez l'archive demo_cv_py.tar.gz. Regardez comment le noeud est codé. Tout doit vous paraître limpide (demandez sinon), en particulier l'usage de la notion de classe en python. Pour lancer la démo, lancez les commandes suivantes, à chaque fois dans un terminal différent.
roscore
rosrun usb_cam usb_cam_node
rosrun rqt_image_view rqt_image_view
rosrun demo_cv_py demo.py image_in/compressed:=/usb_cam/image_raw/compressed