View  Edit  Attributes  History  Attach  Print  Search


ACCUEIL | DOCUMENTATION | STRATEGIES | TESTS

Opencvblur

Main.Opencvblur History

Hide minor edits - Show changes to output

Changed lines 211-212 from:
** de 2 ms en mode "interprété"  soit une fréquence maximale potentielle de 50 fps.
** de 2 ms en mode "compilé" soit une fréquence maximale potentielle de 50 fps.
to:
** de 2 ms en mode "interprété"  soit une fréquence maximale potentielle de 500 fps.
** de 2 ms en mode "compilé" soit une fréquence maximale potentielle de 500 fps.
Added lines 117-203:

// Programme d'exemple de la librairie javacvPro
// par X. HINAULT - mars 2012
// Tous droits réservés - Licence GPLv3

// Exemple fonction blur

import codeanticode.gsvideo.*; // importe la librairie vidéo GSVideo qui implémente GStreamer pour Processing (compatible Linux)
// librairie comparable à la librairie native vidéo de Processing (qui implémente QuickTime..)- Voir Reference librairie Video Processing
// cette librairie doit être présente dans le répertoire modes/java/libraries du répertoire Processing (1-5)
// voir ici : http://gsvideo.sourceforge.net/

import monclubelec.javacvPro.*; // importe la librairie javacvPro

PImage img;

GSCapture cam; // déclare un objet GSCapture représentant une webcam
// L'objet GSCapture étend PImage - se comporte comme un conteneur des frames issues de la webcam

OpenCV opencv; // déclare un objet OpenCV principal

int widthCapture=320; // largeur image capture
int heightCapture=240; // hauteur image capture
int fpsCapture=30; // framerate de Capture

int millis0=0; // variable mémorisation millis()

void setup(){ // fonction d'initialisation exécutée 1 fois au démarrage

        //--- initialise fenêtre Processing
        size (widthCapture*2, heightCapture); // crée une fenêtre Processing de la 2xtaille du buffer principal OpenCV
        //size (img.width, img.height); // aalternative en se basant sur l'image d'origine
        frameRate(fpsCapture); // taux de rafraichissement de l'image

      //---- initialise la webcam ---
      cam = new GSCapture(this, widthCapture, heightCapture); // forme simplifiée
      //cam = new GSCapture(this, widthCapture, heightCapture,"v4l2src","/dev/video1", fpsCapture); // Initialise objet GSCapture désignant webcam - forme complète

        //--- initialise OpenCV ---
opencv = new OpenCV(this); // initialise objet OpenCV à partir du parent This
        opencv.allocate(widthCapture, heightCapture); // initialise les buffers OpenCv à la taille de l'image
       
      cam.start();  // démarre objet GSCapture = la webcam
     
}


void  draw() { // fonction exécutée en boucle

// Code capture GSVideo

  if (cam.available() == true) { // si une nouvelle frame est disponible sur la webcam

        background(0);  // fond noir entre 2 images
 
        //------ gestion image webcam par GSCapture ------
        cam.read(); // acquisition d'un frame
        //image(cam1, 0, 0); // affiche image
        //set(0, 0, cam); // affiche image - plus rapide
 
        //------- gestion image par Opencv ----------
 
        //imgSrc=cam1.get(); // récupère l'image GS video dans Pimage
        //opencv.copy(imgSrc); // charge l'image dans le buffer openCV

        millis0=millis(); // mémorise millis() 
        opencv.copy(cam.get()); // autre possibilité - charge directement l'image GSVideo dans le buffer openCV
        println("Durée chargement buffer OpenCV=" + (millis()-millis0)+"ms.");
       
        //--- affiche image de départ avant opération sur image ---       
        image(opencv.getBuffer(),0,0); // affiche le buffer principal OpenCV dans la fenêtre Processing

        //--- opérations sur image ---

        millis0=millis(); // mémorise millis() 

        opencv.blur(7); // applique effet flou sur le buffer principal OpenCV
       
        println("Durée traitement image par OpenCV=" + (millis()-millis0)+" ms.");
       
        //--- affiche image finale ---

        image(opencv.getBuffer(),widthCapture,0); // affiche le buffer principal OpenCV dans la fenêtre Processing       

  } // fin if available

} // fin draw
Added lines 113-119:

!! Exemple webcam

(:source lang=processing:)

(:sourcend:)

Changed lines 114-118 from:
to:
!! Durée d'exécution de la fonction

* La réalisation de 100 exécutions successives de la fonction dans Processing (sur un Intel Dual Core à 2.33Gz sous Ubuntu 10.04 LTS avec la version OpenCV 2.3.1) pour une image de 320x240 donne une durée moyenne pour chaque exécution de :
** de 2 ms en mode "interprété"  soit une fréquence maximale potentielle de 50 fps.
** de 2 ms en mode "compilé" soit une fréquence maximale potentielle de 50 fps.
Changed line 71 from:
import monclubelec.javacvProc.*; // importe la librairie javacvPro
to:
import monclubelec.javacvPro.*; // importe la librairie javacvPro
Changed lines 102-103 from:
      
to:
 
       noLoop(); // stop programme     
Changed line 61 from:
%center%%red% Cet exemple est à copier dans Processing et est exécutable imédiatement si vous êtes connectés à internet.
to:
%center%%red% L'exemple complet suivant est à copier dans Processing et est exécutable imédiatement si vous êtes connectés à internet :
Added lines 60-61:

%center%%red% Cet exemple est à copier dans Processing et est exécutable imédiatement si vous êtes connectés à internet.
Changed line 96 from:
       opencv.blur(); // applique effet flou sur le buffer principal OpenCV
to:
       opencv.blur(7); // applique effet flou sur le buffer principal OpenCV
Changed line 40 from:
* ksize : taille en pixels du noyau de convolution utilisé : le noyau a la taille ksize x ksize pixels. Utilise 3 par défaut. Valeurs possibles 3, 5, 7, 11.. (une valeur impaire. Plus ksize est grand, plus le flou est important.
to:
* ksize (int) : taille en pixels du noyau de convolution utilisé : le noyau a la taille ksize x ksize pixels. Utilise 3 par défaut. Valeurs possibles 3, 5, 7, 11.. (une valeur impaire. Plus ksize est grand, plus le flou est important.
Added lines 8-10:
%center%Path:/mes_images/javacvpro/javacvpro_exemple_blur.png
%center%Exemple fonction blur() avec un noyau 7x7.

Changed lines 40-41 from:
* ksize : taille en pixels du noyau de convolution utilisé : le noyau a la taille ksize x ksize pixels. Utilise 3 par défaut. Valeurs possibles 3, 5, 11.
to:
* ksize : taille en pixels du noyau de convolution utilisé : le noyau a la taille ksize x ksize pixels. Utilise 3 par défaut. Valeurs possibles 3, 5, 7, 11.. (une valeur impaire. Plus ksize est grand, plus le flou est important.
Added lines 45-48:

!! Utilisation type

* Il est fréquent d'utiliser un effet flou de noyau 3x3 sur une image avant l'application d'une détection de contour afin de s'affranchir du bruit.
Changed line 89 from:
       opencv.blur();
to:
       opencv.blur(); // applique effet flou sur le buffer principal OpenCV
Added lines 53-103:

(:source lang=processing :)

// Programme d'exemple de la librairie javacvPro
// par X. HINAULT - octobre 2011
// Tous droits réservés - Licence GPLv3

// Exemple fonction blur()

import monclubelec.javacvProc.*; // 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.copy(img); // 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); // aalternative 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.blur();
       
        //--- affiche image finale ---
        image(opencv.getBuffer(),opencv.width(),0); // affiche le buffer principal OpenCV dans la fenêtre Processing
       
       
}


void  draw() { // fonction exécutée en boucle

}

(:sourcend:)

Added line 50:
opencv.blur(opencv.Memory); // applique un effet flou avec un noyau de convolution 5 x 5 sur le buffer Memory
Changed lines 14-15 from:
to:
* Cette fonction est basée sur la fonction native OpenCV '''cvBlur()''' : http://opencv.itseez.com/modules/imgproc/doc/filtering.html#blur
Deleted line 16:
** Cette fonction est basée sur la fonction native OpenCV '''cvBlur()''' : http://opencv.itseez.com/modules/imgproc/doc/filtering.html#blur
Added lines 1-64:
(:notitle:)
(:include HautPageReference:)\\
[[Main.LibrairieJavacvPro|Librairie JavacvPro]]

! Classe OpenCV : blur()
----

!! Description

* Applique un effet flou au buffer principal ou à l'objet IplImage reçu en paramètre.

* Cette fonction utilise un noyau de convolution normalisé dont il est possible de fixer la taille. Le point d'ancrage utilisé est le centre du noyau.


* Voir également :
** Cette fonction est basée sur la fonction native OpenCV '''cvBlur()''' : http://opencv.itseez.com/modules/imgproc/doc/filtering.html#blur

!! Déclaration source java

(:source lang=java :)
public void blur()
public void blur(int ksizeIn)
public opencv_core.IplImage blur (opencv_core.IplImage iplImgIn)
public opencv_core.IplImage blur (opencv_core.IplImage iplImgIn, int ksizeIn)
(:sourcend:)

!! Syntaxe

(:source lang=processing :)
opencv.blur(ksize); // applique un effet flou avec un noyau de convolution ksize x ksize sur le buffer principal
(:sourcend:)


!! Paramètres

* opencv : un objet OpenCV déclaré avec le constructeur [[OpencvOpencv|OpenCV]].
* ksize : taille en pixels du noyau de convolution utilisé : le noyau a la taille ksize x ksize pixels. Utilise 3 par défaut. Valeurs possibles 3, 5, 11.

!! Valeur renvoyée

Aucune. Le buffer principal ou l'objet IplIMage passé en paramètre est modifié.

!! Exemple


(:source lang=processing :)

opencv.blur(3); // applique un effet flou avec un noyau de convolution 3 x 3 sur le buffer principal


(:sourcend:)


!! Commentaires utilisateurs

>>bgcolor=#dfd border='3px dotted green'<<

Aucun

>><<

(:include BasPageReference:)

Cette page est une création originale de Xavier HINAULT - Tous droits réservés - 2011