View  Edit  Attributes  History  Attach  Print  Search

PYQTLAB

PyQt Lab' : OpenCV : Informations utiles sur le module OpenCV pour Python

Par X. HINAULT - Juin 2013

Installation

  • Sous une distribution Gnu/Linux, telle que Ubuntu (ou l'une de ses variantes) ou Debian, l'installation est très simple : elle se résume à l'installation du paquet python-opencv :
$ sudo apt-get install python-opencv
  • A comparer à la complexité de l'installation d'OpenCV pour Processing...

Importation dans un code Python et structure du module OpenCV

  • Il faut savoir que le module OpenCV pour Python en contient en fait 2 :
    • le module principal cv2 qui contient à la version la plus récente des fonctions OpenCV
    • le sous-module cv, lui-même contenu dans le module cv2 et qui contient les fonctions OpenCV les plus anciennes, mais aussi les plus classiques.
  • Lequel choisir ? Grosso modo, savoir que :
    • le module cv2 manipule les images dans un format tableau numpy ce qui "standardise" la manipulation des images avec l'univers Python habituel, et intègre les dernières fonctions implémentées dans la librairies. Cependant cv2 peut s'avérer nettement plus lent dans certains cas...
    • le module cv utilise le format d'image natif OpenCV appelé iplImage, dispose des fonctions "classiques" pour lesquelles on trouve plus facilement des exemples.
  • Concrètement, il faudra faire le choix d'utiliser l'un ou l'autre pour éviter de mélanger les types, etc...
  • En pratique, on fera l'importation sous l'une ou plusieurs des formes suivantes :
from cv2 import * # importe les fonction cv2 en accès direct et les fonctions du sous-module cv sous la forme cv.fonction

import cv2 # importe les fonctions cv2 sous la forme cv2.fonction et les fonctions cv sous la forme cv2.cv.fonction

import cv2.cv as cv # importe les fonctions cv sous la forme cv.fonction
 

Structure générale de la librairie OpenCV

Si vous attaquez la doc brute, vous allez vous noyez !! Travaillez plutôt les exemples proposés sur ce site pour apprendre les choses pas à pas... et vous faire rapidement plaisir !

  • Les très très nombreuses fonctions de traitement d'image de la librairies OpenCV sont organisées en plusieurs catégories :
    • core. The Core Functionality
    • imgproc. Image Processing
    • highgui. High-level GUI and Media I/O
    • video. Video Analysis
    • calib3d. Camera Calibration and 3D Reconstruction
    • features2d. 2D Features Framework
    • objdetect. Object Detection
    • ml. Machine Learning
    • flann. Clustering and Search in Multi-Dimensional Spaces
    • gpu. GPU-accelerated Computer Vision
    • photo. Computational Photography
    • stitching. Images stitching
    • nonfree. Non-free functionality
    • contrib. Contributed/Experimental Stuff
    • legacy. Deprecated stuff
    • ocl. OpenCL-accelerated Computer Vision
    • superres. Super Resolution

Documentation

  • La documentation est disponible ici : http://docs.opencv.org/
  • ATTENTION : pour chaque fonction, la plupart d'entre-elles en tout cas, on dispose de la documentation Python des fonctions cv. et cv2. : FAIRE ATTENTION A UTILISER LA BONNE DOCUMENTATION en fonction du module cv ou cv2 que l'on utilise !