library images example java image-processing

images - procesamiento de imágenes de código abierto lib en java



pixel java (5)

¿Alguien puede sugerir una buena biblioteca de procesamiento de imágenes de código abierto en Java? Quiero desarrollar un lector OMR usándolo.


Hay una serie de opciones, cada una con sus propias características y desventajas. Si desea analizar sus necesidades con más detalle, puedo tocar los atributos específicos de cada biblioteca en lo que se refiere a su proyecto:

  • ImageJ - http://rsbweb.nih.gov/ij/index.html - Tenga en cuenta que ImageJ es principalmente una aplicación autónoma. Sin embargo, la API subyacente es muy fácil de usar en sus propias aplicaciones sin tener que invocar la GUI.
  • Fiji - http://pacific.mpi-cbg.de/wiki/index.php/Main_Page - Esto es ImageJ con varias características adicionales. No tengo experiencia personal con esta biblioteca, pero parece prometedora.
  • JAI - http://www.oracle.com/technetwork/articles/javaee/jai-142803.html - Esta es la oferta Java de procesamiento de imágenes de Sun. Funcionalidad limitada, pero se puede usar como base para bibliotecas más potentes.
  • jMagick - http://www.jmagick.org/index.html - Esto es solo un contenedor de Java alrededor de ImageMagick y usa JNI para interactuar con la API de ImageMagick
  • Apache Sanselan - http://commons.apache.org/imaging/ - Esta biblioteca principalmente hace IO de imagen, pero tiene un puñado de características que pueden facilitar el análisis de imágenes.
  • JIU (Java Imaging Utilities) - http://sourceforge.net/projects/jiu/ - Una biblioteca de Java para cargar, editar, analizar y guardar archivos de imágenes de píxeles.
  • Endrov - http://www.endrov.net/wiki/index.php?title=Main_Page - Endrov es un programa de análisis de imágenes multipropósito. Me da la impresión de que la API subyacente se puede utilizar fuera de la aplicación, pero también parece que no todo está implementado en Java. No tengo experiencia personal con esta biblioteca y solo la incluyo porque parece tener varias funciones útiles.


Sugeriría usar JAI, como se mencionó, para el lado de la imagen, pero para escribir una aplicación de OMR necesitará el registro de la plantilla. Esto se puede lograr usando OpenCv. Esto funciona con Java (así como con muchos otros lenguajes y plataformas).

Sin un buen registro de imagen, independientemente de la biblioteca de procesamiento de imágenes, terminará perdiendo algunas de las marcas en algunos escaneos, ya que encontrará que algunos escaneos se han modificado debido a la forma en que funcionan los escáneres.