View  Edit  Attributes  History  Attach  Print  Search


ACCUEIL | DOCUMENTATION | COOKBOOK | TESTS?

Page d'accueil de la documentation de la librairie pyqtcv

pyqtcv, librairie Python pour PyQt de traitement d'image et de vision par ordinateur en "temps-réel"

News

  • Octobre 2013 : début de codage de la librairie pyqtcv, en remplacement de la librairie JavacvPro

Présentation

  • La librairie pyqtcv est une librairie personnelle opensource et libre pour PyQt (librairie graphique) qui implémente des fonctions avancées de traitement d'image et de reconnaissance visuelle basée sur la librairie OpenCV : l'objectif ici est de reprendre les quelques 100 fonctions de traitement d'image de base ou avancé de la librairie JavacvPro (dont je stoppe le développement) permettant en quelques lignes de réaliser des suivis d'objets ou des reconnaissances de formes avancés en temps réel.

IMPORTANT : Bien qu'utile en phase d'initiation à la programmation d'interfaces graphiques, j'estime que Processing montre vite ses limites dès lors que l'on souhaite réaliser de "vraies" interfaces graphiques système (ou GUI). D'autre part, Processing est trop gourmand en ressources système et est inutilisable sur une plateforme telle que le RaspberryPi, pcDuino ou autre mini-PC. J'utilise donc à présent et je conseille d'utiliser plutôt le langage Python associé à la librairie graphique Qt (appelée PyQt).

Tout en offrant les mêmes fonctionnalités que Processing (réseau, série, OpenCV, OpenGL, etc..), cette solution de niveau professionnel, libre, multi-plateforme et mature s'avère bien plus puissante sous bien des aspects. C'est également un apprentissage ayant une portée bien plus polyvalente que Processing. Voir ma rubrique dédiée : Développer avec Python?+]
X. HINAULT - Avril 2013

C'est donc très logiquement que j'ai décidé de transposer la librairie Javacvpro dans l'univers PyQt : ainsi est née la librairie Pyqtcv.
X. HINAULT - Octobre 2013

Téléchargement / installation

Pré-requis et dépendances

  • La librairie Pyqtcv est prévue pour un système Gnu/Linux, typiquement un miniPC embarqué ou tout autre système Gnu/Linux (Ubuntu..)
  • Les dépendances sont :
    • Python 2.7.x
    • PyQt : paquet python-qt4
    • OpenCV : paquet python-opencv
    • Numpy : paquet python-numpy
    • Gstreamer 0.10 : paquet python-gst0.10

Comparativement à l'installation d'OpenCV pour Processing, c'est particulièrement simple à installer !

Téléchargement

Installation

Soit dans un répertoire de son choix :

  • L'installation se fait alors avec :
cd /dir/to/use/
sudo wget -4 -N https://raw.github.com/sensor56/pyqtcv/master/pyqtcv.py
sudo wget -4 -N https://raw.github.com/sensor56/pyqtcv/master/bufferscv.py

L'appel se fait alors dans le code sous la forme :

sys.path.insert(0,'/dir/to/use/') # si pas path système
from pyqtcv import * # importe librairie perso comportant fonctions utiles pour utiliser opencv avec pyqt
import bufferscv as buffers

Soit dans répertoire Python système :

cd /usr/lib/python2.7/dist-packages
sudo wget -4 -N https://raw.github.com/sensor56/pyqtcv/master/pyqtcv.py
sudo wget -4 -N https://raw.github.com/sensor56/pyqtcv/master/bufferscv.py

L'appel se fait alors dans le code sous la forme :

from pyqtcv import * # importe librairie perso comportant fonctions utiles pour utiliser opencv avec pyqt
import bufferscv as buffers

Performances obtenues pour le traitement d'un flux vidéo en temps réel (real time image processing)

Ressources utilisées

  • La librairie pyqtcv est compatible pour système Gnu/Linux.
  • La librairie pyqtcv requiert les dépendances suivantes :
    • langage Python
    • la librairie PyQt : paquet python-qt4
    • la librairie OpenCV : paquet python-opencv


Galerie vidéo

()

Pré-requis

Pyqtcv nécessite un système Gnu/Linux opérationnel

  • La librairie pyqtcv a été testée et est développée sous Ubuntu 12.04 LTS.
  • A priori, elle est utilisable sous Windows, Mac, Linux. Les retours d'expérience sont les bienvenus.

JavacvPro nécessite la librairie OpenCV

pyqtcv nécessite le langage Python

Pyqtcv est à utiliser de préférence avec GSVideo pour la capture Vidéo

Pour info, voici la liste des dépendances nécessaires sous Ubuntu 12.04 LTS :

  • gir1.2-gstreamer-0.10
  • gstreamer0.10-alsa
  • gstreamer0.10-ffmpeg
  • gstreamer0.10-fluendo-mp3
  • gstreamer0.10-gnomevfs
  • gstreamer0.10-gnonlin
  • gstreamer0.10-nice
  • gstreamer0.10-plugins-bad
  • gstreamer0.10-plugins-base
  • gstreamer0.10-plugins-base-apps
  • gstreamer0.10-plugins-good
  • gstreamer0.10-plugins-ugly
  • gstreamer0.10-pulseaudio
  • gstreamer0.10-tools
  • gstreamer0.10-x
  • libgstreamer-perl
  • libgstreamer-plugins-bad0.10-0
  • libgstreamer-plugins-base0.10-0
  • libgstreamer-plugins-base0.10-dev
  • libgstreamer0.10-0
  • libgstreamer0.10-dev

Détails des versions

La suite à venir

  • Transposition progressive des fonctions Javacvpro

Historique des versions

Support

  • J'utilise quotidiennement les fonctions de ma librairie : elles sont donc régulièrement testées et mises en situation réelle.
  • Pour tous les retours, questions, suggestions,utiliser l'adresse suivante : support_at_mon-club-elec_point_fr

Librairie et documentation de la librairie pyqtcv créés et maintenus par X. HINAULT - 2013 - www.mon-club-elec.fr - Tous droits réservés - Contenus sous licence GPL v3