Sistema de caracterización de imágenes
Icono RSS Icono E-mail Icono Inicio
  • Comienza la siguiente fase

    Publicado el 26 26Europe/Berlin Enero 26Europe/Berlin 2009 Ricardo Juan Palma Durán Sin comentarios aún ...

    Tras estos tres primeros meses dándonos tortas contra el Eclipse RCP, JAI y Java2D, hemos llegado a un primer modelo de nuestra aplicación, dando ya por finalizado, salvo detalles menores, la parte relativa al tratamiento digital de imágenes.

    Actualmente, Cool Imaging es una aplicación que, dentro de un entorno bastante intuitivo, permite al usuario manipular imágenes mediante clásicos operadores de tratamiento de imágenes.

    Además, actualmente, la aplicación está diseñada de tal modo que el añadir nuevas operaciones de tratamiento de imágenes puede hacerse sin excesiva dificultad, y, mejor aún, sin necesidad de modificar los archivos binarios (es decir, puede hacerse de forma “externa”). Basta que el usuario proporcione el archivo binario .class de la clase que implementa dicha operación, y ésta es automáticamente añadida a la aplicación.

    El siguiente paso, que será el último y el más duro, es el relacionado con la caracterización de imágenes. Ahora toca diseñar todo aquello relativo a la caracterización de imágenes digitales. Ésta es, supuestamente, la parte más dura, pero partiendo de la base de que la arquitectura actualmente creada es bastante simple y flexible, no debería suponer un gran problema el llevarla a cabo.

    En este enlace se encuentra disponible la última versión de la documentación.

    Mostramos capturas de pantalla de la aplicación:


    Captura 1


    Captura 2


    Captura 3

  • Problemas creando una imagen con una región de interés asociada

    Publicado el 19 19Europe/Berlin Enero 19Europe/Berlin 2009 Luis Gonzalez 2 comentarios

    Tras ir creando la aplicación con bastante soltura a pesar de los problemas encontrados anteriormente, nos hemos topado con un problema que es crucial en el desarrollo de nuestra aplicación.

    El problema se ha encontrado en la selección de una región de interés en una imagen. La solución que habíamos decidido adoptar era la de seleccionar la región de interés sobre una imagen y que a partir de ésta imagen se generara una nueva imagen donde solo se mostrara la región de interés, y el resto de la imagen en negro (por ejemplo).

    Nos hemos encontrado que no éramos capaces de generar esta nueva imagen, o al menos generarla para cualquier tipo de imagen, no importando, por ejemplo, el sistema de color utilizado o el número de bandas que contenga un pixel.

    Viendo que los conocimientos sobre JAI y JAVA 2D no eran los adecuados, nos hemos dedicado a aprender como se almacena una imagen en JAI y como se utiliza ésta.

    Al final, hemos conseguido llegar a una solución que parece factible y generalizado a cualquier imagen (falta probar esta parte de forma exhaustiva), aunque pensamos que no es lo más óptimo a lo que podemos llegar, puesto que en nuestra aplicación es bastante importante el tiempo de respuesta al usuario.

    Ahora, estamos estudiando como mejorar esta parte e integrarla en el resto de la aplicación.

    Os mantendremos informado con nuevas noticias.

  • JAI-JDK integrado con Eclipse

    Publicado el 29 29Europe/Berlin Diciembre 29Europe/Berlin 2008 Luis Gonzalez Sin comentarios aún ...

    Tal y como comentamos la solución de usar JAI como una biblioteca linkada no nos parecía una solución aceptable pudiendo hacer que esta forme parte de la máquina virtual. Por ello, decidimos emplear el tiempo necesario para solucionar este problema.
    Al final y tras varios días de esfuerzo hemos conseguido utilizar JAI estando instalado en el JDK.

    También funciona teniendo JAI instalado en el JRE,  pero debido a que estamos desarrollando la aplicación,  nosotros lo hemos instalado en el JDK.

  • Combinando JAI

    Publicado el 28 28Europe/Berlin Diciembre 28Europe/Berlin 2008 Luis Gonzalez Sin comentarios aún ...

    Tal y como nos comentó un compañero del CUSL-3, Andreu Correa Casablanca, tenemos que rectificar la documentación debido a que JAI no está optimizada para todas las plataformas. En concreto no está optimizada para Mac, pero si para linux, windows y sun, incluso para unas plataformas presenta mejor optimización que para otras.

    Pero al documentarnos nos dimos cuenta que nosotros no estabamos usando la versión de JAI apropiada, por lo que optamos por instalar la versión optimizada para Windows. La opción elegida ha sido la instalación de JAI con el CLASSPATH por no encontrar una solución aceptable con la instalación de JAI en el JRE o en el JDK.

    Tanto al instalar JAI en el JRE como en el JDK, nos encontramos con el problema que al ejecutar la aplicación no encuentra las bibliotecas JAI, obteniendo un error del tipo “java.lang.NoClassDefFoundError” hemos intentando buscar información al respecto y probado diferentes soluciones, pero la información recopilada no ha sido suficiente para conseguir que funcionase la integración con Eclipse.
    Según hemos encontrado y hemos entendido, esto se puede deber a que la máquina virtual no encuentra donde se encuentran las bibliotecas, por lo que hay que añadir en el PATH la localización de las bibliotecas, pero ni cambiando el PATH hemos conseguido que todo funcione.

    Además de probar estas dos opciones, intentamos instalar JAI con el CLASSPATH, al principio conseguimos que funcionase al linkar las bibliotecas que forman parte de JAI (jai_core, jai_codec, mlibwrapper_jai) pero estas funcionaban dando un error donde no podía cargar la aceleración nativa (Error: Could not load mediaLib accelerator wrapper classes…). Al final esto se ha solucionado cambiando la variable PATH del sistema para que encuentre las bibliotecas .dll, las cuales están optimizadas para Windows (en este caso concreto).

    Al final hemos conseguido que todo funcione correctamente, pero la solución tomada no ha sido la más óptima, pensamos que es mejor que nuestra aplicación funcione tomando directamente las bibliotecas desde el JRE porque esta solución es más elegante.

  • Inicio del proyecto (documentacion)

    Publicado el 27 27Europe/Berlin Noviembre 27Europe/Berlin 2008 Luis Gonzalez 2 comentarios

    Explicaremos brevemente el estado en el que se encuentra el proyecto.  En estos momentos, tenemos practicamente todas las ideas claras de lo que queremos hacer y por qué. Por eso hemos hecho un primer documento con el software que vamos a utilizar, porque lo vamos a realizar con esas herramientas y una visión global del proyecto. Para más información de la documentación aquí.

    Ya también tenemos la forja operativa y hemos estado trabajando un poco con JAI y Eclipse RCP.
    El siguiente paso es pensar detenidamente el diseño de nuestra aplicación y perfilar algunos flecos como la ampliación de la funcionalidad con plug-in’s.

    Ponemos aquí la dirección de la forja: https://forja.rediris.es/projects/cusl3-coolimage/