Red de conocimiento informático - Conocimiento de la instalación - Buscando código c++ para detección y seguimiento de peatones en vídeo opencv

Buscando código c++ para detección y seguimiento de peatones en vídeo opencv

La estructura de todo el proyecto:

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

*//

// 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