opencvUtilisation de classificateurs en cascade en Java


Syntaxe

  • CascadeClassifier cascade = new CascadeClassifier ("cascade.xml"); // Crée un classificateur en cascade à partir de cascade.xml
  • Mat image = Imgcodecs.imread ("image.png"); // Convertit image.png en un objet Mat (Matrix)
  • Détections MatOfRect = new MatOfRect (); // Crée un fichier MatOfRect (Matrix of Rectangles) vide, utilisé comme sortie pour nos classes de détection
  • detections.toArray (); // Retourne un tableau d'objets Rect pouvant être itéré sur
  • Imgproc.rectangle (image, nouveau point (rect.x, rect.y), nouveau point (rect.x + rect.width, rect.y + rect.height), nouveau scalaire (0, 255, 0)); // Dessine un rectangle à contour vert depuis les emplacements x et y du premier point vers l'emplacement x et y du second point sur l'objet Mat "image". "rect" est un objet Rect, généralement fourni par detections.toArray (). Utilise la classe de points OpenCV.
  • Imgcodecs.imwrite ("output.png", image); // Ecrit l'objet Mat modifié "image" dans le fichier "output.png"
  • CascadeClassifier.detectMultiScale (image, détections); // Détecte tout objet dans l'objet Mat "image" et affiche les détections dans l'objet MatOfRect "détections"
  • CascadeClassifier.detectMultiScale (image, détections, scaleFactor , minNeighbors , flags , minSize , maxSize ); // Effectue une détection avec des paramètres supplémentaires. Voir les détails ci-dessous.
  • Imgproc.ellipse (image, centre, axes , 0, 0, 360, nouveau Scalar (255, 0, 255), épaisseur , lineType , 0); // Dessine une ellipse sur l'image au center du point. Utilise la classe de points OpenCV.

Paramètres

Paramètre Détails
facteur d'échelle Combien la taille de l'image est réduite à chaque échelle d'image. Par défaut = 1.1
minNeighbors Combien de voisins un rectangle candidat doit avoir avant de le sélectionner comme objet détecté. Par défaut = 4
drapeaux Drapeaux hérités Dans la plupart des cas, cela devrait être mis à 0 . Par défaut = 0
minSize La taille minimale d'un rectangle candidat peut être. Cela utilise la classe de Size OpenCV. Peut être utilisé pour réduire le temps de détection et l'utilisation du processeur, ainsi que pour réduire les faux positifs.
taille max Taille maximale que peut contenir un rectangle candidat. Cela utilise la classe de Size OpenCV. Peut être utilisé pour réduire le temps de détection et l'utilisation du processeur, ainsi que pour réduire les faux positifs.
les axes Utilise la classe de taille OpenCV. Définit la largeur et la hauteur de l'ellipse.
épaisseur Épaisseur de la ligne, en pixels.
type de ligne A divers paramètres. 0 correspond à la ligne CV_AA , 8 ligne à 8 connexions, 4 ligne à 4 connexions et CV_AA à la ligne antialiasée. Par défaut = 8

Utilisation de classificateurs en cascade en Java Exemples Liés