View  Edit  Attributes  History  Attach  Print  Search


ACCUEIL | DOCUMENTATION | STRATEGIES | TESTS


Librairie JavacvPro

Classe OpenCV : sum(), sumRGB(), sumR(), sumG(), sumB()


Description

  • Cette fonction réalise la somme des valeurs des pixels d'une image, pour tous les canaux ou pour chaque canal séparément.
  • Voir également :

Déclaration source java

public float sum()
public float sum(opencv_core.IplImage iplImgSrc)

public float[] sumRGB()
public float[] sumRGB(opencv_core.IplImage iplImgSrc)

public float sumR()
public float sumR(opencv_core.IplImage iplImgSrc)

public float sumG()
public float sumG(opencv_core.IplImage iplImgSrc)

public float sumB()
public float sumB(opencv_core.IplImage iplImgSrc)
 

Syntaxe


val=opencv.sum() ; // renvoie la somme des valeurs des pixels du buffer principal
val=opencv.sum(iplImgSrc) // renvoie la somme des valeurs des pixels de l'image OpenCV

valArray=opencv.sumRGB(); // renvoie un tableau de 3 valeurs, chacune étant la somme des valeurs des pixels de chaque canal du buffer principal
valArray=opencv.sumRGB(iplImgSrc); // renvoie un tableau de 3 valeurs, chacune étant la somme des valeurs des pixels de chaque canal de l'image OpenCV

val=opencv.sumR(); // renvoie la somme des valeurs des pixels du canal Rouge du buffer principal
val=opencv.sumR(iplImgSrc); // renvoie la somme des valeurs des pixels du canal Rouge de l'image OpenCV
 

Paramètres

  • opencv : un objet OpenCV déclaré avec le constructeur OpenCV.
  • val : variable float
  • valArray = tableau de 3 variables float
  • iplImgSrc : image OpenCV source.

Valeur renvoyée

  • soit une valeur float correspondant à la somme des pixels de toute l'image.
  • soit un tableau de 3 valeurs float correspondant à la somme des pixels de chaque canal séparé

Utilisation type

  • Dans le cas d'une soustraction du fond par absDiff(), la fonction sum() va permettre de détecter si une modification importante a eu lieu.

Exemple

L'exemple complet suivant est à copier dans Processing et est exécutable immédiatement :


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

// Montre exemple utilisation de la fonction sum() et variantes

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

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

int widthCapture=320;
int heightCapture=200;

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

        size(widthCapture*2,heightCapture);

        opencv = new OpenCV(this); // initialise objet OpenCV à partir du parent This
        opencv.allocate(widthCapture,heightCapture); // crée le buffer image de la taille voulue

        opencv.fill(0,0,0);

        float val=opencv.sum();
        println();
        println("Image RGB noire : La somme des pixels du Buffer principal vaut : "+val);

       image(opencv.getBuffer(), 0,0);  

        opencv.fill(255,255,255);

        val=opencv.sum();
        println();
        println("Image RGB blanche : La somme des pixels du Buffer principal vaut : "+val);

        println("Contrôle = " + widthCapture +" x "+heightCapture+" pixels x 3 x 255 =" +  (float)(widthCapture*heightCapture*3*255));

        float[] valArray=opencv.sumRGB();

        println();
        println("La somme des pixels du canal R du Buffer principal vaut : "+valArray[0]);
        println("La somme des pixels du canal G du Buffer principal vaut : "+valArray[1]);
        println("La somme des pixels du canal B du Buffer principal vaut : "+valArray[2]);
        println("La somme des 3 canaux vaut : " + (valArray[0] + valArray[1] + valArray[2]));

       image(opencv.getBuffer(), widthCapture,0);  

        noLoop(); // stop programme        
}


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

}
 

Commentaires utilisateurs

Aucun

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