/*
* Ten szablon, wybierać Narzędzie | Szablon
* i otwierać the szablon w the redaktor.
*
pakunek facedetection;
/**
* (. /) FaceDetection.java, 03/05/08
* (obok) cousot stephane @ http://www.ubaa.net/
* (cc) niektóre dobro rezerwować
*
* Próbka program dla "OpenCV" projekt.
* Używać ESC klucz the program stosownie.
*
* Ten próbka uwalniać pod Kreatywnie Błonie Atrybucja 3.0 Licencja
* â⠂¬Â ¹ http://creativecommons.org/licenses/by/3.0/ â⠂¬Âº
*
importowy java.awt.*;
importowy java.awt.event.*;
importowy java.awt.image.MemoryImageSource;
importowy hypermedia.video.OpenCV;
importowy JMyron.*;
importowy processing.core.*;
importowy java.lang. String.*;
//import processing.video.*;
społeczeństwo klasowy FaceDetection przedłużyć Ramowy narzędzie Ramowy {
// program egzekucja ramowy tempo (millisecond)
finał int FRAME_RATE = 1000/30;
OpenCV cv = null; // OpenCV Przedmiot
Nić t = null; // the próbka nić
// the wkład wideo strumień wizerunek
Wizerunek rama = null;
jawny PImage myImg;
jawny JMyron m;
// lista wszystkie twarz wykrywać teren
Prostokąt [] obciosywać = nowy Prostokąt [(0)];
/**
* Ustawianie Rama i Przedmiot.
*
FaceDetection () {
super ("Twarz Detekcyjny Próbka");
// OpenCV ustawianie
cv = nowy OpenCV ();
//cv.capture (320, 240);
cv.allocate (320, 240);
myImg = PApplet.createImage (320, 240, PConstants.ARGB);
//myImg = createImage (320, 240);
m = nowy JMyron ();
m.start (320, 240);
m.findGlobs ((0));
System.out.println ("Myron" + m.version ());
cv.cascade (OpenCV.CASCADE_FRONTALFACE_ALT);
// rama ustawianie
this.setBounds (100, 100, cv.width, cv.height);
this.setBackground (Color.BLACK);
this.setVisible (true);
this.addKeyListener (
nowy KeyAdapter () {
jawny pustka keyReleased (KeyEvent e) {
jeżeli (e.getKeyCode () == KeyEvent.VK_ESCAPE) {// ESC: uwolnienie OpenCV zasoby
cv.dispose ();
System.exit ((0));
}
}
});
// początek bieg program
t = nowy Nić (to);
t.start ();
}
/**
* Remis wideo rama i wideo wykrywać twarz teren.
*
jawny kawitacyjny farba (Grafika g) {
// remis wizerunek
g.drawImage (rama, (0), (0), null);
// remis kwadrat
g.setColor (Color.RED);
dla (Prostokąt rect: kwadrat) {
g.drawRect (rect.x, rect.y, rect.width, rect.height);
}
}
/**
* Wykonywać ten próbka.
*
jawny kawitacyjny bieg () {
podczas gdy (t! = nieobowiązujący && cv! = null) {
próba {
t.sleep (FRAME_RATE);
m.update ();
//System.arraycopy (m.cameraImage (), (0), PImage (myImg), (0), (m.cameraImage ()).length);
PApplet.arrayCopy (m.cameraImage (), myImg.pixels); //copy piksel od the Jmyron Obj
cv.copy (myImg); //copy PImage w opencv przedmiot
// chwyt wizerunek od wideo strumień
cv.read ();
// tworzyć nowy wizerunek od cv piksel dane
MemoryImageSource mis = nowy MemoryImageSource (cv.width, cv.height, cv.pixels (), (0), cv.width);
rama = createImage (mis);
// wykrywać twarz
kwadrat = cv.detect (1.2f, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 20, 20);
// oczywiście, odmalowywać
odmalowywać ();
} chwyt (InterruptedException e) {;}
}
}
/**
* Główny metoda.
* @param Sznurek [] lista użytkownik argument przechodzić od the konsola ten program
*
jawny statyczny kawitacyjny główny (Sznurek [] args) {
System.out.println ("\ nOpenCV twarz detekcyjny próbka \ n");
nowy FaceDetection ();
}
}
|