Wenn es um die Erkennung der Gesichts geht, müssen wir zunächst den Haar -Feature -Klassifizierer der Haar verstehen. Um es unverblümt auszudrücken, der Haar -Feature -Klassifikator von Haar ist eine Reihe von XML -Dateien, die die charakteristischen Werte verschiedener Teile des menschlichen Körpers wie Gesichter, Augen usw. beschreiben
haarcascade_eye.xml
haarcascade_eye_tree_eyeglasses.xml
haarcascade_frontalcatface.xml
haarcascade_frontalcatface_extended.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt_tree.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_default.xml
haarcascade_fullbody.xml
HAARCASCADE_LEFTEYE_2SPLITS.xml
haarcascade_licence_plate_rus_16stages.xml
haarcascade_lowerbody.xml
HAARCASCADE_PROFILEFACE.xml
haarcascade_righteye_2Splits.xml
haarcascade_russian_plate_number.xml
haarcascade_smile.xml
haarcascade_upperbody.xml
Durch das Laden verschiedener Feature -Dateien kann der entsprechende Erkennungseffekt erreicht werden.
Beschreibung des Parameters der DetectMultiscale -Funktion in OpenCV3.2.0:
detectMultiscale (MAT -Bild, Matofrect -Objekte, doppelter ScaleFactor, int minneighbors, int -Flags, Größe Minsize, Größe Maxsize)
Bild: Das zu erkennende Bild ist im Allgemeinen Graustufen (Verbesserung der Effizienz)
Objekte: Eine rechteckige Boxvektorgruppe von erkannten Objekten
SCALEFACTOR: Der Skalierungskoeffizient des Suchfensters in zwei aufeinanderfolgenden Scans. Die Standardeinstellung ist 1.1, dh jedes Suchfenster erweitert sich um 10%.
MINNEIGHBORS: Die minimale Anzahl benachbarter Rechtecke, die das Erkennungsziel ausmachen (Standard ist 3)
Flags: Verwenden Sie entweder den Standardwert oder verwenden Sie cv_haar_do_canny_pruning. Wenn Sie auf cv_haar_do_canny_pruning gesetzt sind, verwendet die Funktion die cany Edge -Erkennung, um Bereiche mit zu vielen oder zu wenigen Kanten auszuschließen, sodass diese Bereiche normalerweise nicht der Bereich sind, in dem sich das Gesicht befindet
Minsize: Der Mindestbereich des erhaltenen Zielbereichs
Maxsize: Der maximale Bereich des erhaltenen Zielbereichs
Probencode der Gesichtserkennung:
import org.opencv.core.core; import org.opencv.core.mat; import org.opencv.core.matofrect; import org.opencv.core.point; org.opencv.imgproc.imgproc; import org.opencv.objdeTect.cascadeClassifier; public class faceedEtect {public static void main (String [] args) {// todo auto-generierter Methode Stub-System.loadLibrary (core.native_library_name); System.out.println ("/Nrunning FacedTector"); CascadeClassifier -FaceTector = neuer Cascadeklassifier (); FaceDeTector.load ("C: // Programmdateien // opencv // Quellen // Daten // haarcascades // haarcascades // haarcascades_frontalface_alt.xml"); MAT Image = imgcodecs.imread ("f: //1114.jpg"); Matofrect faceedTections = new matofrect (); FaceDeTector System.out.println (String.Format ("Erkennete %s Faces", FaceDeTection.toArray (). Länge)); für (rect rect: faceDeTections.toarray ()) {imgproc.Rectangle (Bild, neuer Punkt (rect.x, rect.y), neuer Punkt (rect.x + rect.width, rect.y + rect.height), neuer Scalar (0, 255, 0)); } String Dateiname = "f: //ouput.jpg"; ImgCodecs.imwrite (Dateiname, Bild); }} Quellbild- und Ergebnisdiagramm:
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.