Polytech'Clermont Ferrand Génie Electrique
Projet GE2-GE3 2011
Sujet N°P 11A09
Entreprise / Client : Yannick DICHAMPT
Responsable Projet : M. Jacques LAFFONT
Tuteurs industriels : M. Thierry JOUANNET, M. Pascal FIKINGER
Auteurs : Bienaimé AMOUSSOU, Ndack THIAM, Yousri ABID
Le projet intitulé "Génération d'alerte par traitement d'images" a été proposé par Yannick DICHAMPT dans le cadre de la surveillance et de l'assistance des personnes âgées à distance. Il s'agit de surveiller la personne dans une salle par une caméra IP, transmettre la scène filmée à une unité de traitement (ordinateur) par câble Ethernet ou par wifi, et générer une alerte si la personne est détectée dans une zone d'intérêt pendant une durée déterminée.
Les travaux précédents réalisés dans le cadre du projet ont été d'une part l'identification de la personne dans une scène filmée et la classification de sa posture, d'autre part le choix d'une caméra appropriée, son installation et sa configuration. Le programme final fourni a de meilleurs performances de détection dans un environnement éclairé par une lumière artificielle (lampes).
Dans la continuité du projet, notre travail consiste à rendre le programme apte à acquérir un flux vidéo d'une scène filmée à partir de la caméra, détecter la présence de la personne dans les conditions de jour avec la lumière du soleil ou de nuit, définir des zones d'intérêt et générer des alertes. Pour cela nous avons refait le programme d'acquisition du flux vidéo, élaboré un programme en C++ qui permet de détecter la présence d'une personne dans une zone d'intérêt avec l'aide de la librairie OpenCV et pour un usage assez convivial pour l'utilisateur nous avons réalisé et mis en place une interface graphique dans un environnement Qt Creator qui lui permettra de visualiser la scène filmée, définir et paramétrer ses propres zones d'intérêt.
Mots clefs
- Caméra IP
- Unité de traitement
- Connexion Ethernet et WIFI
- Génération d'alertes
- Zones d'intérêts
- OpenCV, Qt Creator
The project entitled "Generating alert by images processing" was proposed by Yannick DICHAMPT in distant monitoring and assisting for elderlies.
This is to monitor the person in a room with a camera, to transmit the filmed scene in a computer via ethernet cable or wifi, and generate an alert if the person is detected in an off-limits area during a time.
This project has been started last year and the works which were completed are the identification of the person in a filmed scene and classification of posture and choosing an appropriate camera(its installation and configuration). The final program provided has better detection performance in bright surroundings.
In this regard, our job is to make the program able to acquire a video stream of a scene shot from the camera, to detect the presence of the person in terms of days with sunlight or at night define off-limits area and generate alerts. To do that, we redid the acquisition program of the video stream, developed a program in C + + so as to detect the presence of a person in an off-limits area using the OpenCV library and for use-friendly for users we have achieved and created a user interface in Qt Creator that will allow to view the filmed scene, define and set their own off-limits areas.
Key words
- Camera IP
- Pocessing unit
- Ethernet and WIFI connexion
- Alerts generation
- Off-limits area
- OpenCV, Qt Creator
Face au nombre grandissant de personnes âgées en France, on assiste à une forte admission des personnes âgées dans les maisons de retraite. Leur assistance par le personnel soignant devient donc de plus en plus lourde.Afin d'aider le personnel soignant dans leurs tâches, monsieur Yannick DICHAMPT se propose de mettre en place un système de surveillance à distance et d'assistance.
Dans ce cadre, il nous est proposé le projet intitulé "Génération d'alerte par traitement d'images". L'objectif de notre projet est de définir des zones d'intérêt (partie de la salle où la personne ne doit pas se situer par exemple), de détecter la présence de la personne dans ces zones et de générer une alerte en cas de présence de la personne dans ces zones pendant une certaine durée.
Pour ce faire, suite à une étude de faisabilité, nous avons réparti l'ensemble des travaux en trois grandes parties. La première partie est consacrée à l'acquisition d'images de la scène filmée, sous le logiciel Ubuntu, par une caméra. La seconde partie est consacrée au traitement des données, à la définition et au paramétrage des zones d'intérêt, à la détection de présence dans ces zones, et à la génération d'alerte. Et la dernière partie est consacrée à la mise en place d'une interface utilisateur pour utiliser toutes les fonctionnalités du système de surveillance. Le développement ci_dessous suivra cet ordre chronologique.
Le projet "Génération d'alerte par traitement d'images" (figure 1) se propose de surveiller les personnes âgées à distance et de générer une alerte en cas de présence dans une zone d'intérêt. Pour ce faire, la personne sera surveillée par une caméra IP. Les vidéos de la scène filmée seront transmises à une unité de traitement par une liaison WIFI ou par câble Ethernet. L'unité de traitement développée doit pouvoir détecter la présence de la personne dans la salle et déclencher une alarme lorsqu'elle est dans la zone d'intérêt. Une interface utilisateur est aussi créée pour permettre à l’utilisateur de définir des zones d'intérêt qui seront des zones que la personne ne doit pas franchir ou ne doit pas rester pendant une certaine durée. Une assistance sera portée à la personne suite à l'alerte.

Figure 1 : Synoptique du système
A l'issu de l'étude de faisabilité, nous avons établit le cahier des charges ci-dessous que nous avons validé avec le client Après avoir défini ses exigences du projet.
Acquisition de flux vidéo
- Système d’exploitation : Linux
- Connexion caméra – PC par câble Ethernet et/ou WIFI
- Acquisition du flux image par image
- 3 images par secondes
Détection de présence dans la pièce
- Condition d’éclairage artificielle
- Condition d’éclairage naturelle (les reflets, les nuances de luminosité, …)
- Condition de faible luminosité (de nuit)
Prise en compte des zones d’intérêt
- Calcul du taux d’occupation de la zone
- Calcul du temps d’occupation dans la zone
GUI : Interface utilisateur graphique
- Visualisation de la vidéo
- Création, suppression de zones de type rectangulaire
- Affectation de propriétés des différentes zones (Temps d’occupation, Taux d’occupation)
- Mise en place d’un système de génération d’alertes (présence dans une zone d’intérêt pendant une durée prédéfinie par l’utilisateur)
Performance du programme
- Taux d’erreurs du programme
Avant de développer en détails les différentes solutions techniques qui ont été retenues, nous allons identifier les problématiques du projet.
Pour répondre aux spécifications du client, les programmes existants sont étudiés et testés sur une banque de vidéos qui nous a été remise. Nous avons remarqué une bonne performance du programme de traitement sauf dans quelques cas où, avec un changement brusque de luminosité ou de l'influence du soleil, la détection est erronée.
Concernant l'acquisition du flux vidéo, nous disposons déjà d'un programme Capture des images que nous avons testé et qui fonctionne bien. Cependant, ce programme doit être intégré au programme de détection afin d'avoir un traitement en temps réel.
Dans un deuxième temps, une interface graphique est créée dans le but de rendre le système accessible à tout utilisateur. Par la suite, tous les programmes (acquisition du flux de la caméra, détection de présence et interface graphique) sont regroupés dans un seul programme afin d’avoir le système en entier. Et pour finir, un programme de performance est développé permettant ainsi d'évaluer les performances du système résultant.
Figure 2 : Caméra IP
La première partie du projet concerne l’acquisition du flux de la camera par l’unité de traitement. Sur la figure 2 une aperçue de la caméra que nous disposons. Le choix de la caméra étant déjà fait dans les travaux antérieurs, nous avons établi un tableau des caractéristiques de celle-ci sur lesquelles nous nous sommes basés pour réaliser cette partie.
Figure 3 : Caractéristiques de la caméra
D’après les caractéristiques ci-dessus (Figure 3), la caméra n'est configurable que sous le système d'exploitation Windows. Cependant, nous travaillons sous le système d’exploitation Linux pour éviter les problèmes de compatibilité des versions OpenCV et Qt Creator que nous avons besoin pour la suite du projet. Ainsi, la caméra et le PC doivent pouvoir communiquer sous linux.
Nous distinguons deux parties : la communication entre la caméra et l’unité de traitement (PC) et la récupération du flux de la caméra.
Pour la communication Caméra – PC sous linux, nous avons d’abord fixé une adresse IP à la caméra sous le système d’exploitation Windows : 192.168.151.240. Ensuite, du côté du PC, une connexion a été créée pour la caméra avec une adresse IP différente de celle de la caméra mais les deux adresses IP doivent appartenir au même réseau, autrement dit, ils doivent être de même segment. Nous avons donc choisi l’ adresse IP connexion 192.168.151.242. Afin de vérifier la connectivité entre les deux entités, l’utilisateur peut envoyer un ping (commande permettant d’envoyer une requête ICMP Echo d’un ordinateur à un autre) via le terminal. Une fois que la communication est établie, nous pouvons commencer à récupérer le flux de la caméra.
Cette fonction permet de récupérer un flux d'images ou de vidéo en « temps réel » et le mécanisme de communication entre ces deux entités est de type réseau.
La caméra peut être assimilée à un serveur qui répond à un client (PC). La caméra choisie est une entité http, donc pour pouvoir faire la communication avec le PC, nous devons utiliser le mode connecté TCP (Figure 4).
Figure 4 : Communication caméra/PC
Nous avons deux possibilités pour récupérer le flux de la caméra : l’acquisition du flux d’images et l’acquisition du flux de vidéo.
- Acquisition du flux d’images
Cette fonction permet de récupérer le flux de la caméra image par image.
Elle a été déjà développée par les étudiants de la promotion antérieure. Voir Analyse automatique de posture.
- Acquisition du flux de vidéo
D’après les caractéristiques de la caméra, nous avons remarqué que celle-ci est compatible avec le protocole RTSP.
- Le protocole RTSP (Real Time Streaming Protocol)
RTSP (Real Time Streaming Protocol) a été développé et publié en 1998 par Real Networks, Netscape et l'Université de Columbia. C'est un protocole de niveau applicatif (niveau 7 du modèle OSI) prévu pour fonctionner sur des protocoles tels que RTP (Real-time Transport Protocol), RTCP (Real-time Transport Control Protocol) et RSVP (Resource ReSerVation?. Protocol). Il permet de contrôler la distribution de flux multimédias (streaming) sur un réseau IP. Le Streaming consiste à découper les données en paquets dont la taille est adaptée à la bande passante disponible entre le client et le serveur. Quand le client a reçu suffisamment de paquets (bufferring), l'application client commence à jouer un paquet, décompresse un autre et reçoit un troisième. Ainsi l'utilisateur peut avoir le flux multimédia sans avoir à télécharger tout le fichier.
- Le transfert des données
On a deux étapes :
1ère étape
Pour récupérer le flux de vidéo de la caméra, il est nécessaire de lui faire une demande d’envoyer le flux. Ainsi, il faut établir la communication entre les deux entités et trouver la requête exacte à envoyer à la caméra. Pour ce fait, nous avons décidé de tester d’abord le protocole RTSP avec le lecteur multimédia VLC en indiquant juste l’adresse IP de la caméra et le format de la vidéo. Ceci nous permet de visualiser le flux de vidéo et d’établir une communication entre la caméra et le lecteur.
Figure 5 : RTSP avec VLC
Enfin, pour trouver la requête exacte à envoyer, nous avons décidé d’utiliser WIRESHARK (un logiciel d’analyse de protocole et de réseaux) qui nous a permis, en « espionnant » ce qui se passe entre les 2 entités, de retrouver la bonne requête.
Figure 6 : Requête exacte
2ème étape
Après avoir trouvé la requête exacte à envoyer, nous avons créé une fonction qui permet de récupérer le flux de vidéo de la caméra. Cette fonction est réalisée en C++ avec la librairie OpenCv.
Une fois que programme est compilé et exécuté, nous constatons que la vidéo ne s’affiche pas et que l’exécution bloque au niveau de l’instruction contenant la requête : capture = CvCreateCameraCapture?("rtsp://192.168.151.240/mpeg4"). Par la suite, WIRESHARK nous a permis de constater la communication entre les entités passe et que le flux de la caméra est envoyé. Ce qui nous confirme bien que la requête trouvée est la bonne.
Cependant, nous ne connaissons pas l’origine du problème. D’après nos recherches sur internet, nous avons trouvé que le protocole RTSP seul ne fournit pas le flux vidéo qui est à la charge d’un autre protocole RTP. Par manque de temps, nous n’avons pas exploité cette piste afin de trouver les informations nécessaires pour achever l’acquisition du flux vidéo.

Figure 7 : Synoptique de traitement des données
Dans cette partie, nous allons nous focaliser sur les fonctionnalités de l'unité de traitement de notre système de vidéo surveillance. D'une part l'unité de traitement recevra un flux vidéo ou d'images de la caméra, et d'autre part il y aura un échange entre l'utilisateur et l'unité de traitement par le biais d'une interface graphique. L'utilisateur pourra définir des zones d'intérêt dans la scène filmée et les paramétrer par un taux d'occupation et une durée. Le taux d'occupation étant la valeur à partir de laquelle on peut juger qu'une personne est présente dans une zone, et la durée est le temps de présence dans la zone pendant lequel on génère une alerte. Par exemple l'utilisateur pourra créer une zone et dire que la personne sera jugée présente dans la zone s'il l'occupe à 10%, et s'il y reste pendant plus de cinq secondes on génère une alerte.
Les deux grandes fonctions que réalise l'unité de traitement sont la détection de personne dans une scène filmée, la gestion de zones d'intérêt et la génération d'alerte que nous allons élucider dans la suite de ce rapport.
Les deux grandes fonctions que réalise l'unité de traitement sont la détection de personne dans une scène filmée, la gestion de zones d'intérêt et la génération d'alerte que nous allons élucider dans la suite de ce rapport.
Figure 8 : Détection de silhouette
La détection de la silhouette d'une personne dans une scène a été abordée par les étudiants de la promotion précédente ayant travaillé sur ce projet : « Analyse automatique de posture. ». Nous avons repris les travaux réalisés concernant l'extraction de silhouette, que nous avons adapté à notre projet.
La détection d'une personne passe par une modélisation d'un fond dynamique, une soustraction de fond, le nettoyage de bruit, et la détection des composantes connexes (Figure 8).
Cette opération consiste à définir un arrière plan qui sera le fond de la scène. Afin d'avoir un arrière plan qui s'adapte à un changement durable dans le fond, nous utilisons la méthode de mixture gaussienne, qui nous permet d'avoir un fond dynamique et dont le principe est le suivant :
- Détection des pixels variant au delà d'un certain seuil entre la frame courante et la frame précédente,
- Mise à jour d'une matrice dynamique historique de la variation entre des pixels sur N frames,
- Mise à jour du nouveau fond dynamique en fonction de l'historique de la variation des pixels, « si un pixel n'a pas varié depuis N frames, alors il devient élément du fond ».
La détection de la silhouette de la personne passe d'abord par une soustraction de fond dynamique. Cette opération consiste à soustraire d'une nouvelle image obtenue le fond dynamique modélisé. Par la suite on procède à une segmentation d'images. La segmentation étant une opération qui consiste à diviser une image en plusieurs classes. Lorsque la segmentation comporte deux classes (ce qui est notre cas) on parle de binarisation. Par ce procédé on obtiens une image binaire, avec un fond noir et la silhouette de la personne est représentée par l'ensemble des pixels en blanc, qui sera nettoyée par la suite.
Le nettoyage d'une image consiste à transformer les pixels que l'on considère comme marginaux. Un exemple de pixel marginal sera un pixel blanc au milieu de pixels noirs. Le but du nettoyage est de remplacer la valeur de ce pixel par une valeur plus appropriée en fonction de son contexte. Il s'agit dans notre cas de remplacer le pixel blanc par un pixel noir.
Une fois l'image binaire obtenue, par une méthode de détection de contour des pixels en blanc, on détecte la silhouette de la personne que l'on encadre par un rectangle que nous allons désigner dans la suite par la boîte englobant.
Conformément à notre cahier des charges, nous travaillons avec des zones de types rectangulaires et faisons un traitement 2D des images filmées. Les zones d'intérêt sont des endroits de la pièce filmée et donc des portions de l'image obtenue où on s'intéresse au comportement de la personne notamment la présence et le temps passé dans ces zones. La présence de la personne dans une zone d'intérêt sera affirmée à partir du taux d'occupation de la zone. Nous avons travaillé dans un premier temps sur l'occupation des zones rectangulaires et ensuite sur la délimitation et l'occupation des zones quelconques.
Figure 9 : Gestion des zones rectangulaires
Nous définissons les zones rectangulaires à partir de deux points diagonaux (A et B). De même la silhouette de la personne détectée est englobée par un rectangle et donc assimilée à celui-ci, dont nous avons des coordonnées (P1 et P2). Nous pouvons dès lors évaluer la surface de la zone d'intérêt S1 = (B.x - A.x)*(B.y - A.y), la surface de jonction des deux rectangles S2 = (B.x - P1.x)*(B.y - P1.y), et le taux d'occupation de la zone d'intérêt (taux = (S2/S1)*100). Les deux rectangles pouvant occuper diverses positions l'une par rapport à l'autre et avoir des tailles variables, nous avons imposé des contraintes sur les coordonnées cartésiennes des quatre points cités ci-dessus pour gérer les différents cas de figure.
Le but ici est de pouvoir définir ou cibler des endroits de la pièce filmée de manière beaucoup plus précise à partir d'une association de plusieurs rectangles. Pour ce faire nous avons adopté une méthode pour délimiter ces zones et évaluer le taux d'occupation dans ces zones qui est la suivante :
étape 1 : Délimitation de zone d'intérêt
- Segmenter la zone à définir en plusieurs rectangles
- Associer une image binaire à chaque rectangle
- Faire le produit scalaire des images binaires pour obtenir une images résultante (image 1)
- Appliquer la fonction de détection de composantes connexes à l'image binaire résultante
- Afficher les contours obtenus
étape 2 : Évaluation du taux d'occupation
- Associer une image binaire à la boîte englobant (image 2)
- Faire le produit scalaire des images binaires (image 1 et image 2) pour obtenir l'image 3
- Faire le rapport de la somme discrète des valeurs des pixels de l'image 1 et de l'image 3 pour obtenir le taux d'occupation.
Pour mieux comprendre cette méthode nous allons nous donner pour objectif de réaliser une zone d'intérêt de la forme ci-dessous :

Figure 10 : zone quelconque
On peut s'apercevoir que trois rectangles suffiraient à réaliser cette zone.

Figure 11 : Segmentation en rectangles
Avec l'étape 1 de la méthode décrite ci-dessus on a les résultats suivants :

Figure 12 : Realisation de zone
Une fois la zone délimitée et la position de la personne connue, avec l'étape 2, on évalue la surface de jonction des deux zones par une somme discrète des valeurs des pixels de l'image obtenue ci-dessous. Ce qui permet d'évaluer par la suite le taux d'occupation.

Figure 13 : Evaluation taux d'occupation
C'est une méthode que nous utilisons ici pour travailler avec des rectangles. La même méthode pourrait aussi être utilisée pour travailler avec des cercles, des ellipses et des triangles, et par association des quatre on pourra définir des figures géométriques beaucoup plus complexes.
On génère un message d'alerte lorsque la personne est présente dans une zone d'intérêt ou lorsque la personne y reste pendant une certaine durée. Pour ce faire nous avons élaboré respectivement une fonction qui indique la présence ou non de la personne dans la zone d'intérêt en fonction du taux d'occupation de cette dernière, une fonction d'horloge qui indique la durée de présence dans cette zone et une dernière fonction qui génère un message d'alerte si la personne y reste plus longtemps que l'utilisateur ne le souhaite.
Les figures ci dessous montrent respectivement le résultat de soustraction de fond dynamique, la détection de silhouette (en vert) englobée par le rectangle rouge. La zone définie est paramétrée avec un taux d'occupation de 10% et une durée de 5 secondes. Nous avons par la suite intégré ces fonctionnalités à l'interface graphique dont nous parlerons dans la suite.
Figure 14 : Soustraction de fond dynamique

Figure 15 : Detection dans zone d'intérêt

Figure 16 : Detection dans zone d'intérêt et génération d'alerte
Étant donné que les futurs utilisateurs du système ne sont pas censés avoir de connaissance en informatique, il nous a été demandé de réaliser une interface graphique dans le but de faciliter l’utilisation du système.
Cette interface a été réalisée en C++ à l’aide des bibliothèques QT sous QtCreator? qui est un environnement de développement intégré multiplate-forme faisant partie du framework Qt (Figure 17).


Figure 17 : Logo Qt Créator
Il intègre directement dans l'interface un débogueur, un outil de création d'interfaces graphiques pouvant fonctionner (sans être modifié) sur les systèmes Windows, Linux et MacOSX?.
Nous pourrons donc intégrer toutes les parties (traitements d’image et récupération des images) à l’interface graphiques. En effet, elles sont toutes programmées en C++. Cependant chacune d’entre elle utilise des bibliothèques différentes qui devront être incluses pour un bon fonctionnement.
Comme nous l’avons vu dans le cahier des charges l’interface graphique devra permettre :
• Visualisation de la vidéo,
• Création, suppression de zones de type rectangulaire,
• Affectation de propriétés des différentes zones (Temps d’occupation, Taux d’occupation),
• Mise en place d’un système de génération d’alertes (en cas de présence dans une zone d’intérêt pendant une durée prédéfinie par l’utilisateur).
On peut avoir un aperçu de l'interface graphique sur la figure ci-dessous (Figure 18).• Création, suppression de zones de type rectangulaire,
• Affectation de propriétés des différentes zones (Temps d’occupation, Taux d’occupation),
• Mise en place d’un système de génération d’alertes (en cas de présence dans une zone d’intérêt pendant une durée prédéfinie par l’utilisateur).
Figure 18 : Interface graphique
Légende :
1 : Visualisation de la scène filmé (avec un retard d’une 1s) et délimitation des zones.
2 : Création, suppression et paramétrage des zones (temps d’occupation).
Les différentes zones créées sont enregistrées dans un fichier lorsqu’on arrête l’application ce qui permet lors du démarrage de restaurer ces zones automatiquement.
3 : Coordonnées de la zone sélectionnée.
Les assemblages des 3 parties :
• Liaison Caméra / PC
• Traitement des images
• GUI
Nous a permis de pouvoir réaliser deux applications.• Traitement des images
• GUI
Cette application nous permet de lire et traiter les vidéos préenregistrées ce qui a pour principal but de quantifier le taux de performance des algorithmes de traitement.
Caractéristiques :
Taille de l’exécutable : 800 Ko
Temps de traitement :
• Environ 14 images/s pour 10 zones
• Environ 13,6 images/s pour 100 zones
• Environ 13,6 images/s pour 100 zones
Rappel du Cahier des charges : 3 images /s
Le CDC est donc bien respecté.
Cette application permet de visualiser (avec 1s de retard) et traiter les images capturées par une caméra IP branchée en Ethernet (RJ45) ou WIFI.
Caractéristiques :
Taille de l’exécutable : 800 Ko
Temps de traitement :
En Ethernet:
• Environ 3,5 images/s pour 10 zones
• Environ 3,36 images/s pour 100 zones
• Environ 3,36 images/s pour 100 zones
En Wifi :
• Environ 3,33 images/s pour 10 zones
• Environ 3,16 images/s pour 100 zones
• Environ 3,16 images/s pour 100 zones
Rappel Cahier des charges : 3 images /s
Le cahier des charges est donc bien respecté.
Figure 17 : planning de GANTT
A l’issue de ce projet, auquel nous avons consacré 48 heures d’étude de faisabilité et 192 heures de réalisation technique encadrée par un tuteur technique et un tuteur industriel, nous arrivons à établir une liaison filaire et une connexion wifi avec la caméra pour récupérer les images filmées. Nous sommes parvenus également à définir des zones d’intérêt dans la pièce filmée, à les paramétrer et à générer une alerte en cas de présence dans ces zones pendant une certaine durée. Pour finir, nous avons mis en place une interface graphique pour un usage convivial de notre système de vidéo surveillance. Cependant nous ne sommes pas parvenus à détecter dans des conditions de très faibles luminosité, et le programme de détection de personne reste encore perfectible.
Ce projet nous a permis d’approfondir nos connaissances dans le domaine de traitement d’images, la programmation en langage C++, les protocoles de communication entre un client et un serveur, et de découvrir les richesses de la librairie OpenCV et de l’outil de conception graphique QtCreator?.
Dans la continuité du projet, nous proposons une récupération d’un flux vidéo, un traitement 3D pour mieux cibler les zones d’intérêt dans une pièce filmée. La combinaison des travaux précédents sur le projet concernant l’analyse automatique de postures et les travaux actuels sur la durée de présence dans une zone d’intérêt pourront permettre de mettre en place des techniques de détection de chute.
Utilisation d'openCV dans un environnement QT
- ABID Yousri Procédure de mise en oeuvre d'une application OpenCv sous Qt avec camera Ip
- AMOUSSOU Bienaimé Aquisition d'image d'une camera Ip sous Qt
- THIAM Ndack - Introduction à OpenCV
date de consultation : 27/01/2012
- Utilisation d'OpenCV
date de consultation : 27/01/2012
- Procédure d'installation d'OpenCV
date de consultation : 27/01/2012
- Documentation en C++ et QtCr?éator
date de consultation : 27/01/2012
Il y a 2 commentaires sur cette page.
[Afficher commentaires/formulaire]













