Deteccion-de-Rostros-en-java-con-Opencv-JonathanMelgoza.png

Deteccion de Rostros en Java con OpenCV – Primer Programa

En este Articulo veremos como crear una Deteccion de Rostros en Java con OpenCV, crearemos nuestro primer programa con estos dos lo que nos servira de base para futuros proyectos de vision por computadora en java. Cabe decir que OpenCV tiene interfaces tambien para C++, C y python pero por ahora nos centraremos en Java, pero mas adelante veremos su implementacion en otros lenguajes de programacion como C++ y Python. Comenzemos…

Requerimientos:

Desarrollo

Para comenzar lo primero sera abrir eclipse y crear un nuevo proyecto para esto vamos a File -> New -> Java Project

Deteccion de rostros en java con opencv 1

escribimos un nombre de proyecto, en mi caso lo llamare HolaMundoOpenCV-Java y finalizamos
Crearemos un nuevo paquete, lo llamaremos como queramos yo lo llame visionporcompuadora
Crearemos una nueva clase dentro de este paquete, yo la llame Main, y nos quedara asi:

Deteccion de rostros en java con opencv 2

Ahora Vamos a agregar la libreria de OpenCV a nuestro proyecto para lo que hacemos click derecho sobre nuestro proyecto en el workspace y seleccionamos
Properties, nos cambiamos a Java Build Path

Deteccion de rostros en java con opencv 3

Damos Click en Add Library, seleccionamos user Library y seleccionamos next

Deteccion de rostros en java con opencv 4

Damos click a User Libraries y seleecionamos New

Deteccion de rostros en java con opencv 5

Escribimos un nombre y aceptamos

Deteccion de rostros en java con opencv 6

Ahora agregaremos el jar de la libreria de OpenCV, damos click en Add External Jar -> y vamos a buildjava y seleccionamos opencv-246.jar en mi caso es «C:opencvbuildjavaopencv-256.jar»

Deteccion de rostros en java con opencv 7

Nos queda esta pantalla
Ahora damos dos click sobre «native Library Location» y seleccionamos la siguiente ruta buildjavax86 esto en caso de que tu sistema sea de 32 bits en caso
contrario selecciona x64, en mi caso seleccione la ruta «C:opencvbuildjavax86»
Te deberia quedar asi

Deteccion de rostros en java con opencv 8

Ahora solo aceptamos todas las ventanas hasta volver a la interfaz de eclipse que ahora luce asi:

Deteccion de rostros en java con opencv 9
Vamos a abrir la carpeta de nuestro proyecto y agregaremos una carpeta llamada resources (puedes llamarla como quieras) y dentro guardare los siguiente:

  • Imagen a utilizarDeteccion de rostros en java con opencv grace
  • Archivo llamado «lbpcascade_frontalface.xml» localizado en tu carpeta de opencv en datalbpcascades

Una vez que cuentas con estos archivos escribe el siguiente codigo fuente en tu clase en eclipse

Recuerda que debes cambiar algunas cosas como:

  • el nombre de tu paquete en «package visionporcomputadora;» si es que no pusiste ese nombre
  • la rutas a lbpcascade_frontalface.xml
  • la rutas a grace.jpg

Ejecutando este programa deberias ahora tener una imagen nueva en tu carpeta de proyecto:

Deteccion de rostros en java con opencv 11

que tiene la deteccion de rostros correctamente

Deteccion de rostros en java con opencv grace2
Visto – Deteccion de Rostros en Java con OpenCV – Primer Programa

Clic para valorar esta información
[Total: 0 Promedio: 0]

16 comentarios en “Deteccion de Rostros en Java con OpenCV – Primer Programa”

  1. hola jhonatan muy bueno tu blog, quiero saber q puedo hacer con el siguiente error
    the import org.opencv.highgui cannot be solved. gracias

    Responder
  2. Hola Jonathan, antes que nada quiero darte las gracias por compartir estos tutoriales, están muy bien explicados y vaya que son de gran ayuda.

    He estado investigando y no encuentro la manera de como recortar el rostro detectado en una imagen nueva para así solo manejar la cara de la persona y no toda la imagen. Qué métodos de OpenCv debo de utilizar??? O como me recomiendas que lo haga. De antemano muchas gracias, saludos!!!

    Responder
    • Hola! estoy buscando la misma respuesta y no encuentro de que forma hacerlo, si lo lograste, me podrias decir el script que usaste?

  3. Hola Jonathan¡ excelentes tus tutos¡¡
    me han salvado de unos apuros gracias y felicidades¡
    Quisiera saber si me puedes orientar?

    Lo que pasa es que necesito detectar las caras en una serie de imagenes y no se como puedo modificar tu código para que en vez de que lea solo una imagen lea toda una carpeta y las guarde con el numero de rostros que detecto.
    Si me pudieras ayudar seria de gran ayuda.
    Nuevamente gracias y felicidades por tu trabajo. n.n

    Responder
  4. Hola Jonathan la verdad son muy buenos tus tutoriales gracias por compartirlos, mira tengo un pequeño problemita con OpenCv cuando trato de ejecutar tu aplicaciones me sale esto:
    Exception in thread «main» java.lang.UnsatisfiedLinkError: unsupported JNI version 0xFFFFFFFF required by C:UsersnokiaDesktopopencvopencv_java248.dll
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:992)

    He intentado de todo… espero me puedas ayudar

    Responder
  5. Hola que tal

    Al ejecutar el programa me aparece el sigte error:

    Exception in thread «main» java.lang.UnsatisfiedLinkError: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1(Ljava/lang/String;)J

    lo que he averiguado es que debo inicializar la librería, espero me puedas ayudar

    Responder
  6. Saludos muy buen aporte mi colega solo que tengo la duda de :
    Archivo llamado “lbpcascade_frontalface.xml” localizado en tu carpeta de opencv en datalbpcascades
    Donde lo encuentro ya que no lo encuentro el archivo por acá

    Responder

Deja un comentario