version française

english version

La Solution Logiciel en Vision Industrielle L'Offre de Savoir-faire et Compétences en Vision Artificielle Le Logiciel de Vision Industrielle Uracode Nos Etudes et Réalisations en Vision Industrielle Vision industrielle - Robotique mobile - Suivi de cibles - Détection d'incidents - Vidéo-Surveillance - Détection du regard - Biométrie - Réalité augmentée - Mouvements de l'oeil... Clients - Revue de Presse Coordonnées - Plan d'accès - Demande de devis

 

Le logiciel de vision industrielle URACODE
Présentation générale des exemples UCI
  • Introduction

  • Les exemples Uramove ont été développés pour montrer comment programmer le composant Uracode. Ces exemples sont au nombre de deux, un premier qui montre la programation du composant avec des vidéos (Movie_Uramove) et un second avec les périphériques de capture USB/FIREWIRE avec pilote WDM (Camera_Uramove). Il aurait tout à fait pu être envisagé de regrouper ces deux exemples en un seul car ils sont vraiment très similaire. Cependant cela aurait compliqué un peu la programation et la lisibilté du code.

    Remarques :
    • Tous les exemples UCI possèdent leur code source sous Visual C++ 6.0 et Borland C++ BUILDER 6.0.


  • Aperçu global de l'écran commun entre les deux exemples Uramove





  • Cette capture d'écran de la partie commune nous montre bien la similarité qui existe entre les deux exemples. En effet la différence entre ceux-ci ne se fait qu'avec un seul panneau ainsi que quelques variations au niveau du codage.

  • Le panneau Menu



  • Le menu permet de sortir du programme en cliquant sur le bouton "Quitter", ou alors d'afficher la boite de dialogue "A propos de...". Même s'il est possible de fermer l'exemple en appuyant sur la croix, il est tout de même conseillé d'utiliser le bouton "Quitter".


  • Le panneau Paramétrage d'Uramove



  • Ce panneau permet dans un premier temp de changer l'état du composant Uramove.
    Ensuite il permet de modifier de manière dynamique les paramètres d'entrée d'Uramove :
    • Threshold : qui permet d'augmenter ou de réduire la stabilité des contours dans l'image. Plus d'informations .
    • Tolerance : qui permet de faciliter ou compliquer la reconnaissance de la scene ou la reconstruction panoramique. Plus d'informations .
    • Method : qui permet de changer la méthode d'extraction des contours. Plus d'informations .
    • Max-Neuros : qui permet d'augmenter le nombre de neuronnes utilisés pour la reconnaissance. Plus d'informations .
    • Inverse : permet d'inverser l'image verticalement. Plus d'informations .
    • Fastcontours : augmente la rapidité d'extraction des contours. Plus d'informations .
    • Negative : change la polarité de l'image. Plus d'informations
    • Full : permet de changer l'image retournée par la fonction Uramove(). Passage d'une image basse résolution (320*240*8Bits) à une image haute résolution (640*480*8Bits) Plus d'informations .
    • Move : Permet de zoomer sur une partie de la reconstruction panoramique ou au contraire d'élargir de manière a pourvoir observer le panoramique complet. Plus d'informations .

  • Le panneau Résultats Uramove



  • Dans cette partie du programme il est possible de visionner les etats de sortie Uracode :
    • Reco - level : représente le niveau de reconnaissance de la scene. Plus il sera élevé et plus le recalage ou la reconstrution panoramique seront précis.
    • Nb - Neuros : c'est le nombre de neuronnes qu'Uramove utilise à un instant donné.
    • Xscene : coordonnée sur l'axe des X de la translation de la caméra par rapport à l'image d'origine.
    • Yscene : coordonnée sur l'axe des Y de la translation de la caméra par rapport à l'image d'origine.
    • Zscene : angle de rotation de la caméra.

  • Le panneau Graphique des phases



  • Le graphique donne une idée de l'évolution des coordonnées de la caméra. Ce graphique est de taille réduite, mais il est tout de même fortement exploitable puisqu'il permet de tracer 5 secondes de mouvements.


  • Le panneau Image



  • Si le paramètre UC_in->Full est activé alors l'image est celle retournée par la fonction Uramove() (haute résolution).
    Sinon l'image est synthétisée à partir du retour de la fonction Uramove() (basse résolution) situé en haut à gauche. En bas à droite l'image est celle donnée par le paramètre de sortie UC_out->ImageSceneOut . Enfin en haut à gauche est placé l'image acquise qui n'est jamais modifiée par les changement d'états. En revanche si la résolution de cette image dépasse 640*480 alors le redimensionnement (effectué par une fonction windows GDI32) pose des problèmes d'esthétisme.


  • Les spécificités de chaque exemple

    • Le panneau Navigation de Movie_Uramove :




    • La navigation dans l'image se fait automatiquement dans la bibliothèque UraVideoGrabber. L'appuie sur le bouton "Lecture" entraine l'appel à la fonction UVG_PLAY. Lorsque le bouton stoppe est pressé c'est la fonction UVG_STOP qui est appelée. Cependant pour pouvoir gérer les autres boutons ainsi que la barre de défilement, il faut utiliser une variable "nav" et un Timer. En effet, à chaque "top" du Timer, on va mettre le numéro de frame courant dans la variable "nav" et pouvoir ainsi mettre à jour le panneau de navigation, mais aussi pouvoir interagir avec la vidéo.


    • Le panneau "Réglages"




    • Cette partie permet de régler deux types de paramètres:
      • Le bouton "option " appelle la fonction UCG_VIDEO_PROPERTY. Cela permet d'ouvrir une fenètre de propriétés du périphérique de capture qui est soit celle de DirectShow par défaut, soit une fenêtre créée par le fabriquant du périphérique. Les réglages des options sont généralement l'éclairage, les couleurs, etc....
      • Le bouton "Format" lance la fonction UCG_FORMAT_CHANGE. Si ce bouton est pressé, une fenêtre par defaut de DirectShow s'ouvre et permet de changer la résolution de l'acquisition du périphérique, ainsi que d'autres réglages comme le nombre d'images par seconde. Pour pouvoir utiliser cette fonction, il faut impérativement stopper le Timer principal de l'exemple pour ne plus essayer de lire l'image acquise par le périphérique, puis arreter celui-ci. Après l'appel de cette fonction il est possible de redémarrer le périphérique et remettre en route le Timer, en ayant indiqué à Uracode 3.0 le changement de résolution.



    Le logiciel de vision industrielle Uracode