Procesar y Guardar una Imagen con OpenCV en Java jonathanmelgoza

Procesar y Guardar una Imagen con OpenCV en Java

En este Articulo veremos como procesar y guardar una imagen con opencv en java a traves de algunas funciones para el procesamiento de imagenes para la aplicacion de filtros como grayscale, binario, blur, erosion de una imagen, dilatacion de una imagen, todo esto haciendo uso de la libreria opencv de vision por computadora. En articulos anteriores de OpenCV en java hemos visto como cargar y mostrar una imagen lo cual nos servira de base en este articulo para realizar el siguiente paso, que sera como hemos dicho, aplicar estos filtros a una imagen y poder guardarla a nuestro disco duro, asi que veamos pues como procesar y guardar una imagen con opencv en java, comencemos…

Requerimientos

Desarrollo

Como hemos visto en articulos anteriores somos capaces de cargar una imagen y mostrarla en una interfaz grafica, ahora veamos como procesarla, esto es, realizar algun cambio en la imagen original, y posteriormente como guardar los cambios en nuestro disco duro. En este Articulo damos por hecho que ya has cargado una imagen y la tienes guardada en un objeto de tipo Mat, sino sabes como hacerlo te recordamos…

[help]Si tienes problemas con realizar lo anterior te recomendamos darte una vuelta por los articulos anteriores.
[/help]Ahora, teniendo la imagen que queremos modificar vamos a revisar algunos codigos para procesarla, aplicaremos algunos diferentes filtros para esta imagen

Procesar y Guardar una Imagen con OpenCV en Java 1

  • Escala de Grises (grayscale)
  • Procesar y Guardar una Imagen con OpenCV en Java grayscale

    Este Filtro tan solo convierte una imagen de color en una imagen en escala de grises.

  • Binario
  • Procesar y Guardar una Imagen con OpenCV en Java binario

    En este filtro convertiremos la imagen original en otra en la que el color sera o blanco o negro, sin escalas, para lo cual primero necesitamos convertirla a grayscale.

  • Blur(desenfoque)
  • Procesar y Guardar una Imagen con OpenCV en Java blur

    Este efecto es el de desenfocar la imagen, poco que decir, solo que utilizamos el metodo medianblur en lugar de el blur tradicional o cualquier otro como el gaussianblur.

  • Erosionar
  • Procesar y Guardar una Imagen con OpenCV en Java erosionar

    Este filtro puede ser definido como el proceso de «engordar» cada elemento.

  • Dilatar
  • Procesar y Guardar una Imagen con OpenCV en Java dilatacion

    Este filtro puede ser definido como lo contrario de erosionar, consiste en «adelgazar» cada elemento.

    [note]El metodo «establecerImagen(dst)» es un metodo en el que la imagen resultante se coloca en algun componente de la interfaz grafica para ser mostrado al usuario, como puede ser un JLabel en el cual se coloca la imagen en su icono, como por ejemplo:

    Donde area_imagen es ese JLabel en el que se establece un icono con la imagen resultante.
    [/note]

  • Guardar una Imagen Procesada a Disco
  • Donde nombre es el nombre como quieres guardar la imagen con su extension, por ejemplo «imagen.jpg».

    Video

    Visto – Procesar y Guardar una Imagen con OpenCV en Java

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

    25 comentarios en “Procesar y Guardar una Imagen con OpenCV en Java”

    1. Hola, muchas gracias por compartir y los excelentes tutoriales, podrías por favor compartir el proyecto completo de este ejemplo. Te lo agradecería muchísimo.

      Responder
    2. hola, tengo un proyecto en java, OpenCV y de gestión de base de datos mysql .it estudiantes universitarios con la detección y reconocimiento de rostros.
      Luego he creado la base de datos (aplicación) y guardé imágenes (BLOB) en la base de datos y logré (insertar / cambiar / eliminar)
      y yo tengo otro proyecto (ReconnVisage), el reconocimiento se hace por carpeta (no la base de datos) y muestra el nombre de la imagen (la cara) en el directorio (con la extensión).
      usted me puede ayudar con ese reconocimiento se hace por la base de datos y mostrar el nombre del estudiante (que se almacena en la base de datos).
      gracias por adelantado

      Responder
    3. existe la forma como detectar áreas dentro de una imagen que no sean rostros sino que yo pueda detectar un objeto en un stand y contar cuantos objetos iguales hay en el stand.

      agradezco mucho su colaboración, links y códigos donde me pueda documentar

      Responder
    4. hola me pregunto si al alguna manera de poder cambiar el color de nuestra imagen original donde los campos en blanco los cambie por ejemplo a rojo como se podria hacer eso con opencv de java

      Responder
    5. Hola Jonathan,

      Muy buenos sus tutoriales, le comento que me funciona el reconocimiento del rostro con mi webcam, pero el problema es ¿cómo le hago para guardar la imagen en el pc?, he estado utilizando

      ighgui.imwrite(«procesada_»+nombre, imagen_actual_mat);

      pero me genera un error en +nombre.

      Le agradezco mucho su colaboración

      Por otro lado lo en realidad es que necesito guardar la imagen en MySQL o PostgreSQL

      Responder
      • Hola enicma,

        Perdona por la demora, area_imagen es una etiqueta JLabel la cual contendra la imagen mediante la instruccion setIcon, el metodo updateUI sirve para volver a pintar el control.

        Saludos!

    6. Que tal!!! De casualidad ¿conocerás alguna función de OpenCV para dar más color a una imagen? ¿Y para reducir el brillo??

      Responder
    7. Hola Jonathan , mira yo quiero alinear la imagen (operacion de transformacion supongo) en base a un marcador , usand opencv con java claro esta. Tienes alguna idea o algun metodo que me pueda ayudar para hacer ese tipo de trabajo. Gracias de antemano

      Responder
    8. Cordial saludo Jonathan,

      El tutorial está genial, aunque tengo problemas con la parte gráfica, existe la posiblidad de que compartas el proyecto de Netbeans?

      Disculpa el atrevimiento.

      Responder
      • Hola Gustavo,

        Gracias, aunque no se bien si aun tengo ese programa hehe soy malo para guardar informacion al formatear XD dejame lo busco mañan en otra PC que tengo a ver si lo encuentro.. de cualquier forma no es dificil siguiendo todos los tutos de la categoria computervision seguro la armas, cualquier duda aqui estoy de cualquier forma.

        Saludos!

      • Hola Gustavo,

        Lamento la tardanza en contestarte heh, lamentablemente ya busque el codigo completo y no pude encontrarlo pero como te digo antes en el tuto esta lo mas importante la parte grafica puedes hacerla muy facil con el asistente de Netbeans y simplemente conectar con el metodo establecerImagen() para mandar las imagenes a un JLabel y este sobre un panel..

        De cualquier forma puedes hacerme saber tus dudas.

        Saludos!

      • Muchas gracias Jonathan,

        Ya tengo el proyecto funcionando con la parte gráfica.
        Eres muy gentil, gracias por compartir el conocimiento.

    Deja un comentario