// Programme d'exemple de la librairie javacvPro // par X. HINAULT - decembre 2012 // Tous droits réservés - Licence GPLv3 // Exemple fonction detectCircles() import monclubelec.javacvPro.*; // importe la librairie javacvPro import java.awt.*; // importe la classe Rectangle, Point du langage Java // l'objet rectangle fournit les champs x,y du centre et hauteur/largeur (height/width) du rectangle PImage img; //Blob[] blobsArray=null; // tableau pour la détection des blobs (contour de forme) //Circle[] circlesArray=null; // tableau pour la détection des cercles Line[] linesArray=null; // tableau pour la détection des lignes String url="http://www.mon-club-elec.fr/mes_images/online/lines.png"; // 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()*2); // 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 //--- coordonnées de référence pour center l'image int xRef0=width/4; int yRef0=height/4; //--- affiche image de départ --- image(opencv.getBuffer(),xRef0+0,yRef0+0); // affiche le buffer principal OpenCV dans la fenêtre Processing //--- opérations sur image --- opencv.gray(); // passe en niveaux de gris println("debut =" + millis()); linesArray=opencv.detectLines ( // détection de ligne avec algorithme de Hough version Standard opencv.Buffer, // opencv_core.IplImage iplImgIn, // image source 1, // double rhoIn, // la résolution pour la longueur du vecteur normal 1, // double thetaIn, // la résolution angulaire reçue en degré - converti en radians pour la fonction native OpenCV 200,//float thresholdCannyIn, // ajout : 1er seuil du filtre Canny utilisé. Le second seuil Canny vaut seuilCannyIn/2 - Canny pas utilisé ici si =0 200,//int thresholdAccumulatorIn, // seuil pour l'accumulateur - droite sélectionnée seulement si nombre vote > seuil true //boolean debug // drapeau affichage messages ); /* for (int i=0; i