/*
* Um diese Schablone zu ändern, Werkzeuge beschließen | Schablonen
* und die Schablone im Herausgeber öffnen.
*
Paket facedetection;
/**
* (. /) FaceDetection.java, 03/05/08
* (vorbei) cousot Stephane @ http://www.ubaa.net/
* (cm) irgendein rechtes reserviertes
*
* Programmbeispiel für „OpenCV“ Projekt.
* ESC-Schlüssel verwenden, um das Programm richtig zu schließen.
*
* Diese Probe wird unter einer kreativen Lizenz der Common-Zuerkennungs-3.0 freigegeben
* â⠂¬Â ¹ http://creativecommons.org/licenses/by/3.0/ â⠂¬Âº
*
Import java.awt.*;
Import java.awt.event.*;
Import java.awt.image.MemoryImageSource;
Import hypermedia.video.OpenCV;
Import JMyron.*;
Import processing.core.*;
Import java.lang. String.*;
//import processing.video.*;
allgemeine Kategorie FaceDetection verlängert die jagdbaren Feldwerkzeuge {
//-Ablauf- des Programmsrahmenrate (Millisekunde)
abschließender int FRAME_RATE = 1000/30;
OpenCV Lebenslauf = Null; Gegenstand //-OpenCV
Gewinde t = Null; // das Beispielgewinde
// das Bild des videostromes des Einganges
Bildrahmen = -null;
allgemeines PImage myImg;
allgemeines JMyron m;
//-Liste alles Gesicht ermittelten Bereichs
Viereck [] quadriert = neues Viereck [0];
/**
* Einstellungs-Rahmen und Gegenstände.
*
FaceDetection () {
Super („Gesichts-Abfragungs-Probe“);
Einstellung //-OpenCV
Lebenslauf = neues OpenCV ();
//cv.capture (320, 240);
cv.allocate (320, 240);
myImg = PApplet.createImage (320, 240, PConstants.ARGB);
//myImg = createImage (320, 240);
m = neues JMyron ();
m.start (320, 240);
m.findGlobs (0);
System.out.println („Myron“ + m.version ());
cv.cascade (OpenCV.CASCADE_FRONTALFACE_ALT);
//-Rahmeneinstellung
this.setBounds (100, 100, cv.width, cv.height);
this.setBackground (Color.BLACK);
this.setVisible (zutreffend);
this.addKeyListener (
neues KeyAdapter () {
Öffentlichkeitslücke keyReleased (KeyEvent e) {
wenn (e.getKeyCode () == KeyEvent.VK_ESCAPE) {// ESC: OpenCV Betriebsmittel freigeben
cv.dispose ();
System.exit (0);
}
}
});
//-Anfangslaufendes Programm
t = neues Gewinde (dieses);
t.start ();
}
/**
* Videorahmen des abgehobenen Betrages und jeder ermittelte Gesichtsbereich.
*
leere Farbe der Öffentlichkeit (Grafiken g) {
//-Betragbild
g.drawImage (Rahmen, 0, 0, Null);
//-Betragquadrate
g.setColor (Color.RED);
für (Viereck rect: Quadrate) {
g.drawRect (rect.x, rect.y, rect.width, rect.height);
}
}
/**
* Diese Probe durchführen.
*
Öffentlichkeitslücke laufen gelassen () {
während (t! = ungültiger && Lebenslauf! = Null) {
Versuch {
t.sleep (FRAME_RATE);
m.update ();
//System.arraycopy (m.cameraImage (), 0, PImage (myImg), 0, (m.cameraImage ()).length);
PApplet.arrayCopy (m.cameraImage (), myImg.pixels); //copy Pixel vom Jmyron Obj
cv.copy (myImg); //copy PImage in opencv Gegenstand
//-Zupackenbild vom videostrom
cv.read ();
// verursachen ein neues Bild von den Lebenslauf-Pixeldaten
MemoryImageSource mis = neues MemoryImageSource (cv.width, cv.height, cv.pixels (), 0, cv.width);
Rahmen = createImage (mis);
// ermitteln Gesichter
Quadrate = cv.detect (1.2f, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 20, 20);
// selbstverständlich, streichen neu
neu streichen ();
} Fang (InterruptedException e) {;}
}
}
/**
* Hauptmethode.
* @param Schnur [], das eine Liste der Argumente des Benutzers von der Konsole zu diesem Programm überschritt
*
allgemeine Staticlücke hauptsächlich (Schnur [] args) {
System.out.println („\ nOpenCV Gesichtsabfragungsprobe \ n“);
neues FaceDetection ();
}
}
|