View  Edit  Attributes  History  Attach  Print  Search


ACCUEIL | DOCUMENTATION | STRATEGIES | TESTS

Opencvgray

Main.Opencvgray History

Hide minor edits - Show changes to output

Added line 203:
       opencv.gray();
Added lines 127-213:

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

// Exemple fonction gray

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() 

     
        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 121-126:

(:sourcend:)

!! Exemple webcam

(:source lang=processing:)
Changed line 73 from:
import monclubelec.javacvProc.*; // importe la librairie javacvPro
to:
import monclubelec.javacvPro.*; // importe la librairie javacvPro
Added lines 110-111:

      noLoop(); // stop programme
Changed line 109 from:
       image(opencv.getBufferGray(),opencv.width(),0); // alternative - affiche le buffer Grayl OpenCV dans la fenêtre Processing
to:
       image(opencv.getBufferGray(),opencv.width(),0); // alternative - affiche le buffer Gray OpenCV dans la fenêtre Processing
Changed line 71 from:
// Exemple fonction flip()
to:
// Exemple fonction gray()
Changed lines 43-44 from:
Aucune
to:
Aucune. Le buffer principal ou un objet IplImage est converti en niveaux de gris. Une copie de l'image en niveau de gris est gardée dans le buffer Gray (monocanal).
Changed line 47 from:
*
to:
* Après l'application d'une filtre de contour ou avant l'application d'un seuillage, il est nécessaire de disposer d'une image monocanal en niveaux de gris.
Changed lines 8-9 from:
%center%Path:
to:
%center%Path:/mes_images/javacvpro/javacvpro_exemple_gray.png
Added lines 65-117:


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

// Exemple fonction flip()

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 ---

        //-- toutes ces formes sont possibles :
        //opencv.gray(); // transforme le buffer principal OpenCV en niveau de gris - copie mise dans le buffer Gray
        //opencv.gray(opencv.Buffer); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
        //opencv.gray(opencv.BUFFER); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
        opencv.gray("BUFFER"); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
       
        //--- affiche image finale ---
        //image(opencv.getBuffer(),opencv.width(),0); // affiche le buffer principal OpenCV dans la fenêtre Processing
        image(opencv.getBufferGray(),opencv.width(),0); // alternative - affiche le buffer Grayl OpenCV dans la fenêtre Processing
       
}


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

}

Changed lines 53-56 from:
opencv.gray(); // applique la fonction gray() au buffer principal
opencv.gray(iplImg); // applique la fonction gray() à l'objet IplImage
opencv.gray(opencv.Memory); // applique la fonction gray() au
buffer Memory
opencv.gray("MEMORY2"); // applique la fonction gray() au buffer Memory2
to:
//--- toutes ces formes sont valables :
opencv.gray(); // transforme le buffer principal OpenCV en niveau de gris - copie mise dans le buffer Gray
opencv.gray(opencv.Memory); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
opencv.gray(opencv.MEMORY2); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
opencv.gray("BUFFER"); // transforme le buffer OpenCV désigné en niveau de gris - copie mise dans le buffer Gray
Changed lines 12-13 from:
* Transforme le buffer principal ou un objt IplImage en niveau de gris. Une copie de l'image en niveau de gris est gardée dans le buffer Gray (monocanal).
to:
* Transforme le buffer principal ou un objet IplImage en niveau de gris. Une copie de l'image en niveau de gris est gardée dans le buffer Gray (monocanal).
Changed lines 21-23 from:
to:
public void gray ()
public opencv_core.IplImage gray (opencv_core.IplImage iplImgIn)
public void gray (String stringIn)
Changed lines 29-31 from:
public void gray ()
public void gray (String stringIn)
public opencv_core.IplImage
gray (opencv_core.IplImage iplImgIn)
to:
opencv.gray(); // applique la fonction gray() au buffer principal
opencv.gray(iplImg); // applique la fonction gray() à l'objet IplImage
opencv.gray(str); // applique la fonction gray() au buffer identifié par la chaîne str
Changed lines 38-39 from:
*
to:
* iplImg : un objet IplImage
* str (String) : chaine de caractère identifiant le buffer. Voir la page "[[OpencvBuffers|Les buffers image]]" pour plus de détails.

Added lines 53-56:
opencv.gray(); // applique la fonction gray() au buffer principal
opencv.gray(iplImg); // applique la fonction gray() à l'objet IplImage
opencv.gray(opencv.Memory); // applique la fonction gray() au buffer Memory
opencv.gray("MEMORY2"); // applique la fonction gray() au buffer Memory2
Changed lines 27-29 from:
to:
public void gray ()
public void gray (String stringIn)
public opencv_core.IplImage gray (opencv_core.IplImage iplImgIn)
Added lines 1-70:
(:notitle:)
(:include HautPageReference:)\\
[[Main.LibrairieJavacvPro|Librairie JavacvPro]]

! Classe OpenCV : gray()
----

%center%Path:

!! Description

* Transforme le buffer principal ou un objt IplImage en niveau de gris. Une copie de l'image en niveau de gris est gardée dans le buffer Gray (monocanal).

* A noter : le buffer principal ou l'objet IplImage source reste un buffer 3 canaux (RGB) mais les 3 canaux deviennent identiques ce qui donne une image en niveau de gris.

* Voir également : extractRGB(), getBufferGray(), copyToGray()

!! Déclaration source java

(:source lang=java :)

(:sourcend:)

!! Syntaxe

(:source lang=processing :)

(:sourcend:)


!! Paramètres

* opencv : un objet OpenCV déclaré avec le constructeur [[OpencvOpencv|OpenCV]].
*

!! Valeur renvoyée

Aucune

!! Utilisation type

*

!! Exemple

(:source lang=processing :)


(:sourcend:)

%center%%red% L'exemple complet suivant est à copier dans Processing et est exécutable imédiatement si vous êtes connectés à internet :


(:source lang=processing :)


(: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