OpenCV
Ph.Leroy
2015-04-26
La librairie OpenCV permet de réaliser de nombreux traitements d'image et de s'interfacer à des équipements d'acquisition vidéo de manière portable. |
Cette librairie est trés puissante et mérite de pouvoir être appellée depuis sisal, cette page montre comment enregistrer des images dans une base de données de production.
La librairie opencv.sch décrit cinq types d'objets, ils sont tous préfixés par cv pour garder une certaine cohérence.
Tpe d'objet | Fonction |
---|---|
cvCapture | Equipement physique d'acquisition d'image |
cvImage | Une image capturée par un équipement et/ou pouvant être modifiée |
cvWindow | Fenêtre de visualisation de données |
cvMatrice | Matrice permettant de représenter des tableaux de valeurs en particulier de pixels |
cvVector | Vecteur de données élémentaires |
Le script serveur va acquérir une image à chaque événement, par exemple le test d'un produit manufacturé, mais ici toutes les secondes.
Include "opencv.sch"; Use test; Var cpt; cap cvCapture; // La camera img as cvImage; // Une image sur laquelle on travaille m1 cvMatrice; m2 cvMatrice; monimage; // Variable sisal contenant une image Server( _APPLICATION_) Var i; begin On do begin cap.openCam( 0); // Initialisation, ouverture de la camera 0 end On horloge.ToutesLesSecondes do begin img = cap.retrieve(); // Acquisition d'une image openCV m1.set( img); m2 = m1.cvtColor( CV_BGR2RGB); // Traitment d'image -> Conversion de BGR en RGB setimage( monimage, m2.cols, m2.rows, m2.data); // Transfert dans une variable sisal Prods.new(); // Creation d'un enregistrement dans la base de traà§abilité Prods.WriteImage( Prods.photo, monimage); // Association de l'image du produit Prods.Add(); // Enregistrement du produit end end
L'exploitation peut se faire ainsi dans un synoptique:
Object il ImageList,"Default.png",...; ... Function AfficheImage( x) begin if x >= 0 and x < prods.records() then begin prods.read( x); if prods.ReadImage( prods.photo, image) then begin il.image = image; end else il.image = defimage; end end
C'est pas plus compliqué que cela.