Detectar rostros con Opencv Java y Netbeans

El principio para lograr avanzar en el campo de la visión artificial, inicia con el procesamiento de imagines ya que como se sabe un video consiste en una serie de imagenes (frames) que se muestran en serie a una velocidad alta, la librería Opencv en su versión para Java nos ofrece estas posibilidades.

En el siguiente video se muestra una forma muy sencilla de detectar uno o varios rostros en una determinada imagen.

Aquí esta el código fuente:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;

//
// Deteccion de rostro(s)
//
class DetectFaceDemo {
public void run() {
System.out.println(“\nRunning DetectFaceDemo”);

// Instancia detector de rostros mediante archivo de confiacion xml
// Obtiene como recurso una imagen en la ruta especificada
CascadeClassifier faceDetector = new CascadeClassifier(“C:/Users/jefferson/Documents/NetBeansProjects/vision/src/lbpcascade_frontalface.xml”);
Mat image = Highgui.imread(“C:/Users/jefferson/Documents/NetBeansProjects/vision/src/peoples.jpg”);

// Detecta rostros en la imagen cargada
// MatOfRect es un contenedor especial para rect
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format(“Rostros detectados: %s “, faceDetections.toArray().length));

// Dibujar cuadro en cada rostro detectado
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}

// Nombre de la imagen (copia) con rostros señalados
String filename = “deteccion2.png”;
//Escritura de la imagen anterior
Highgui.imwrite(filename, image);
}
}

public class image {
public static void main(String[] args) {
// Load the native library.
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
new DetectFaceDemo().run();
}
}

Anuncios

One Response to Detectar rostros con Opencv Java y Netbeans

  1. estoy usando las librerias de javacv y mi proyecto no encuentra las referencias de la clase MatOfRect, no estoy usando las librerias de OpenCv.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: