Classe OpenCV : copyTo()![]() Description
Déclaration source javapublic void copyTo(opencv_core.IplImage iplImgSrc, opencv_core.IplImage iplImgDest) public void copyTo(PImage imgSrc, opencv_core.IplImage iplImgDest) Syntaxeopencv.copyTo(img, iplImg); // copie le PImage vers le IplImage ou le buffer opencv.copyTo(iolImgSrc, iplImgDest); // copie le IplImage ou buffer source vers le IplImage ou le buffer destination Paramètres
NB : Chaque buffer est un objet IplImage. Voir Les buffers image? pour plus de détails. Valeur renvoyéeAucune. L'objet IplImage destination contient l'image ou le buffer source. Exempleopencv.copyTo(opencv.Buffer, opencv.Memory2); // copie le Buffer principal dans le buffer Memory2 opencv.copyTo(img,opencv.Buffer); // charge le PImage dans le buffer OpenCV L'exemple complet suivant est à copier dans Processing et est exécutable immédiatement si vous êtes connectés à internet : // Programme d'exemple de la librairie javacvPro // par X. HINAULT - octobre 2011 // Tous droits réservés - Licence GPLv3 // Exemple fonction copyTo() import monclubelec.javacvPro.*; // importe la librairie javacvPro PImage img; String url="http://www.mon-club-elec.fr/mes_images/online/lena.jpg"; // String contenant l'adresse internet de l'image à utiliser OpenCV opencv; // déclare un objet OpenCV principal void setup(){ // fonction d'initialisation exécutée 1 fois au démarrage //-- charge image utilisée --- img=loadImage(url,"jpg"); // crée un PImage contenant le fichier à partir adresse web //--- initialise OpenCV --- opencv = new OpenCV(this); // initialise objet OpenCV à partir du parent This opencv.allocate(img.width, img.height); // initialise les buffers OpenCv à la taille de l'image opencv.copyTo(img,opencv.Buffer); // charge le PImage dans le buffer OpenCV //--- initialise fenêtre Processing size (opencv.width()*2, opencv.height()); // crée une fenêtre Processing de la 2xtaille du buffer principal OpenCV //size (img.width, img.height); // alternative en se basant sur l'image d'origine //--- affiche image de départ --- image(opencv.getBuffer(),0,0); // affiche le buffer principal OpenCV dans la fenêtre Processing //--- opérations sur image --- opencv.copyTo(opencv.Buffer, opencv.Memory2); // copie le Buffer principal dans le buffer Memory2 //--- affiche image finale --- image(opencv.getMemory2(),opencv.width(),0); // affiche le buffer Memory2 OpenCV dans la fenêtre Processing } void draw() { // fonction exécutée en boucle } Durée d'exécution de la fonction
La version javacvPro 0.4 apporte une amélioration significative du transfert du PImage vers le buffer OpenCV, divisant d'un facteur 10 à 20 les délais précédemment obtenus :
Ces nouvelles valeurs permettent d'obtenir des fréquences maximales potentielles de traitement de 60 fps à 200 fps selon la machine. Dans tous les cas, une fréquence de traitement d'image de 30 fps est réellement atteinte même sur des machines modestes ! Commentaires utilisateurs
Cette page est une création originale de Xavier HINAULT - Tous droits réservés - 2011 |