Buscando código c++ para detección y seguimiento de peatones en vídeo opencv
Escriba DetectFaceDemo.java, el código es el siguiente:
vista [java]
plaincopyprint?
paquete com.njupt.Point;
importar org.opencv.core.Rect;
importar org.opencv.core.Scalar;
importar org. .opencv.highgui. org.opencv.objdetect.CascadeClassifier;
//p>
//Detecta la cara en la imagen, dibuja un cuadro alrededor y convierte el resultado
//Escribe "faceDetection.png".
//
clase pública DetectFaceDemo {
public void run() {
System.out.println("\nEjecutando DetectFaceDemo ");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource( "lbpcascade_frontalface.frontalface.xml").getPath());
/Crear un detector de rostros a partir de un archivo en cascada
/getPath());
//Nota: La ruta al programa fuente imprimirá un "/" adicional, por lo que se producirá el siguiente error
/*
* 0 caras detectadas escriben faceDetection png libpng advertencia. : imagen
* el ancho es cero en IHDR advertencia de libpng: el alto de la imagen es cero en IHDR
* error de libpng: datos IHDR no válidos
*// p>
// Entonces, eliminemos el primer carácter
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().subring (1); p>CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath() .substring(1)); p>
// Detecta rostros en imágenes.
// MatOfRect es una clase contenedora Rect especial.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(imagen, faceDetections);
System.out.println(String.toArray(). length));
// Dibuja un cuadro delimitador alrededor de cada cara.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle( imagen, nuevo Punto(rect. x, rect.y), nuevo Punto(rect.x , rect.y), nuevo Punto(rect.x, rect.y), nuevo Punto(rect.x, rect.y), nuevo Punto(rect.x, rect.y), nuevo Punto(rect.x + rect .width, rect.y + rect.height), new Scalar(0, 255, 0));
}
//guarda la detección visualizada.
String filename = "faceDetection.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detectar la cara, dibuja un cuadro alrededor y escribe el resultado
//en "faceDetection.png"
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nEjecutando DetectFaceDemo");
System.out.println(getClass(). getResource("lbpcascade_frontalface.xml ").
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.frontalface.xml").getPath());
/Crear detector de rostros desde archivo en cascada
/directory getPath());
//Nota: La ruta del programa fuente imprimirá un "/" adicional, por lo que se produce el siguiente error
/*
* 0 caras detectadas write faceDetection.png libpng ADVERTENCIA: Imagen
* el ancho es cero en IHDR libpng advertencia: La altura de la imagen es cero en IHDR
* Error de libpng: datos IHDR no válidos
*//
// Entonces, eliminemos los primeros caracteres
String xmlfilePath=getClass().getResource ("lbpcascade_frontalface.xml").getPath().
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("nosotros .jpg").getPath().substring(1));
// Detecta caras en la imagen.
// MatOfRect es una clase contenedora Rect especial.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detectado %s faces", faceDetections. toArray().length));
// Dibuja un cuadro delimitador alrededor de cada cara.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle( imagen, nuevo Punto(rect.x, rect.y), nuevo Punto(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
// Guarda la detección visual.
String filename = "faceDetection.png";
System.out.println(String.format("Escribiendo %s", nombre de archivo));
Highgui.imwrite( nombre de archivo, imagen);
}
}
3 Escribir clase de prueba:
vista [java]
plaincopyprint?
paquete com.njupt.zhb.test;
clase pública TestMain {
public static void main(String[] args) {
System.out.println("Hola, OpenCV");
//Cargar biblioteca local: lbpcascade_frontalface.xml
//Se detectaron 8 caras
//Escribiendo faceDetection.png
paquete com.njupt.zhb.test;
clase pública TestMain {
public static void main(String [] args) {
System.out.println("Hola, OpenCV");
// Carga la biblioteca local. p>
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
// Resultados de la ejecución:
// Hola, OpenCV xml
//Se detectaron 8 caras
//Escribiendo faceDetection.png