¿Estoy usando tanto la API de medios JAI como ImageMagick?
ImageMagick tiene algunos problemas de escalabilidad y el JMagick basado en JNI tampoco es atractivo. JAI tiene resultados de baja calidad al realizar operaciones de cambio de tamaño en comparación con ImageMagick.
¿Alguien sabe de alguna herramienta excelente, ya sea de código abierto o comercial, que sea nativa de Java y ofrezca resultados de alta calidad?
java
image-processing
image-manipulation
Daniel Honig
fuente
fuente
java image processing library
pero cerrado ... como siempre. La moderación se está yendo por la borda en SO estos días.Respuestas:
Hay ImageJ , que se jacta de ser el
Se puede usar como biblioteca en otra aplicación. Su arquitectura no es brillante, pero realiza tareas básicas de procesamiento de imágenes.
fuente
Sé que esta pregunta es bastante antigua, pero a medida que sale un nuevo software, ayuda a obtener algunos enlaces nuevos a proyectos que podrían ser interesantes para la gente.
imgscalr es una biblioteca de redimensionamiento de imágenes de Java puro (y operaciones simples como relleno, recorte, rotación, brillo / atenuación, etc.) que es dolorosamente simple de usar: una sola clase consiste en un conjunto de operaciones gráficas simples, todas definidas como métodos estáticos que pasas una imagen y obtienes un resultado.
El ejemplo más básico de uso de la biblioteca se vería así:
Y un uso más típico para generar miniaturas de imágenes usando algunos ajustes de calidad y similares podría ser así:
Todas las operaciones de procesamiento de imágenes usan la canalización Java2D sin procesar (que es acelerada por hardware en las plataformas principales) y no introducirán el dolor de llamar a través de JNI como la contención de la biblioteca en su código.
imgscalr también se ha implementado en producciones a gran escala en bastantes lugares: la inclusión de la clase AsyncScalr lo convierte en un complemento perfecto para cualquier procesamiento de imágenes del lado del servidor.
Existen numerosos ajustes en la calidad de imagen que puede utilizar para intercambiar velocidad y calidad con el modo ULTRA_QUALITY más alto que proporciona un resultado escalado que se ve mejor que la implementación Lancoz3 de GIMP.
fuente
Otra buena alternativa: Marvin
fuente
No soy un chico de Java, pero OpenCV es ideal para mis necesidades. No estoy seguro si se ajusta al tuyo. Aquí hay un puerto Java, creo: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
fuente
El procesamiento es nuevo pero muy, muy bueno.
fuente
Intenta usar el Marco de Catalano .
Puntos clave:
Catalano Framework es un marco para la computación científica para Java y Android. El proyecto comenzó como un puerto inicial de las muchas características de los marcos AForge.NET y Accord.NET para .NET, pero está creciendo constantemente con características más avanzadas que ahora se comparten entre esos proyectos.
Ejemplo:
fuente
The best framework in Java is Catalano Framework
eso suena como si estuvieras anunciando tu propio producto. Su marco puede ser excelente, pero debe divulgar su afiliación con él, como se indica en las preguntas frecuentes .El mejor enfoque es usar GraphicsMagick Image Processing System con im4java como una interfaz de línea de comando para Java.
GraphicsMagick ofrece muchas ventajas, pero una para todos:
fuente
http://im4java.sourceforge.net/ : si está ejecutando Linux, bifurcar un nuevo proceso no es costoso.
fuente
Para herramientas comerciales, es posible que desee probar Snowbound.
http://www.snowbound.com/
Mi experiencia con ellos es algo anticuada, pero descubrí que su API de imágenes Java es mucho más fácil de usar que JAI y mucho más rápida.
Su atención al cliente y ejemplos de código también fueron muy buenos.
fuente
La lista de software de visión de RoboRealm menciona JHLabs y NeatVision entre muchas otras bibliotecas no basadas en Java.
fuente
No puedo decir que sea la "mejor" biblioteca, pero creo que puede probar esto: http://algart.net/java/AlgART/ Es una biblioteca Java de código abierto, que admite matrices y matrices "inteligentes" generalizadas con elementos de diferentes tipos (desde punto flotante de 1 bit a 64 bits), incluido el procesamiento de imágenes 2D, 3D y multidimensionales y otros algoritmos, trabajando con matrices y matrices. Desafortunadamente en este momento no consta de suficientes demostraciones y ejemplos, pero, por otro lado, contiene muchos JavaDocs. Se encuentra en la base del software comercial (SIMAGIS) durante varios años, pero ahora es de código abierto.
fuente