Java DIP - Bibliotecas de código abierto

En este capítulo, exploramos algunas de las bibliotecas de procesamiento de imágenes gratuitas que se utilizan ampliamente y se pueden integrar fácilmente en el proyecto. Estas bibliotecas incluyen:

  • ImageJ
  • Fiji
  • Imágenes comunes
  • ImageMagick
  • Endrov
  • LeadTools
  • OpenCv

ImageJ

ImageJ es un programa de procesamiento de imágenes Java de dominio público inspirado en NIH Image para Macintosh. Puede mostrar, editar, analizar, procesar, guardar e imprimir imágenes de 8, 16 y 32 bits.

Algunas de las características básicas de ImageJ se describen a continuación:

No Señor. Característica y descripción
1

Runs Everywhere

ImageJ está escrito en Java, lo que le permite ejecutarse en Linux, Mac OS X y Windows, tanto en modo de 32 bits como de 64 bits.

2

Open Source

ImageJ y su código fuente Java están disponibles gratuitamente y son de dominio público.

3

Toolkit

Utilice ImageJ como un juego de herramientas de procesamiento de imágenes (biblioteca de clases) para desarrollar applets, servlets o aplicaciones.

4

Data Types

Escala de grises de 8 bits o color indexado, entero sin signo de 16 bits, punto flotante de 32 bits y color RGB.

5

File Formats

Abra y guarde GIF, JPEG, BMP, PNG, PGM, FITS y ASCII. Abra DICOM. Abra archivos TIFF, GIF, JPEG, DICOM y datos sin procesar mediante una URL.

6

Selections

Cree selecciones de áreas rectangulares, elípticas o irregulares. Cree selecciones de líneas y puntos.

7

Image Enhancement

Admite suavizado, nitidez, detección de bordes, filtrado de mediana y creación de umbrales en imágenes en color RGB y en escala de grises de 8 bits.

8

Color Processing

Divida una imagen en color de 32 bits en componentes RGB o HSV. Fusionar componentes de 8 bits en una imagen en color.

Fiyi

Fiji es un paquete de procesamiento de imágenes. Puede describirse como una distribución de ImageJ (e ImageJ2) junto con Java, Java3D y muchos complementos organizados en una estructura de menú coherente. Fiji se compara con ImageJ como Ubuntu se compara con Linux.

Además de las funciones básicas de ImageJ, a continuación se describen algunas de las funciones avanzadas de Fiji:

No Señor. Característica y descripción
1

Registering 3D images

Esto implica alineación y montaje elásticos, extracción de características, estabilizador de imagen, etc.

2

Segmenting images

Ofrece más de 35 tipos de segmentación.

3

Useful keyboard short cuts

Fuji tiene muchos atajos de teclado.

4

Scripting

Permita la creación de scripts con macros, en JavaScript, JRuby, Jython, Clojure y Beanshell.

5

Developing Plug-ins

Utilice el Editor de scripts para comenzar a desarrollar complementos y luego ejecutarlos.

6

ImageJ Tricks

ImageJ es fácil de usar, pero a veces desea alguna función que esté realmente implementada, pero no sabe cómo activarla.

Imágenes comunes

Apache Commons Imaging, anteriormente conocido como Apache Commons Sanselan, es una biblioteca que lee y escribe una variedad de formatos de imagen, incluido el análisis rápido de información de imagen como (tamaño, color, espacio, perfil ICC, etc.) y metadatos.

Algunas de las características básicas de ImageJ se describen a continuación:

No Señor. Característica y descripción
1

Java

Apache Commons Imaging está escrito en Java 100% puro. Se ejecuta en cualquier JVM y en cualquier plataforma, sin modificaciones.

2

Image Formats

Lee y escribe una amplia variedad de formatos de imagen y admite algunas variaciones y codificaciones que no se encuentran en todas o en la mayoría de las otras bibliotecas.

3

Metadata support

Admite la lectura y escritura de una variedad de metadatos de forma estructurada, incluidos los metadatos EXIF.

4

Network Friendly

Es compatible con la red. Commons Imaging solo lee los datos que necesita y almacena en caché lo que se lee para que no sea demasiado pesado en la red.

5

Easy to use

Está diseñado para ser muy fácil de usar. Tiene una interfaz simple y limpia. La mayoría de las operaciones son llamadas a un único método Imaging.

6

Transparent

Commons Imaging tiene como objetivo ser transparente. No hay búferes ocultos para eliminar, ni memoria nativa para liberar, ni hilos en segundo plano.

7

Open Source

Es Software Libre / Código Abierto. Está disponible bajo la licencia de software Apache.

8

Color Conversions

La clase ColorConversions ofrece métodos para convertir entre los siguientes espacios de color: CIE-L * CH, CIE-L * ab, CIE-L * uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ e YXY.

ImageMagick

ImageMagick es un paquete de software para crear, editar, componer o convertir imágenes de mapa de bits. Puede leer y escribir imágenes en más de 100 formatos, incluidos DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG y TIFF. Utilice ImageMagick para cambiar el tamaño, voltear, reflejar, rotar, distorsionar, distorsionar y transformar imágenes, ajustar los colores de la imagen, aplicar varios efectos especiales o dibujar texto, líneas, polígonos, elipses y curvas Bézier.

Algunas de las características básicas de ImageMagick se describen a continuación:

No Señor. Característica y descripción
1

Format conversion

Convierte una imagen de un formato a otro (por ejemplo, PNG a JPEG).

2

Transform

Puede cambiar el tamaño, rotar, recortar, voltear o recortar una imagen.

3

Transparency

Hace invisibles partes de una imagen.

4

Draw

Agrega formas o texto a una imagen.

5

Decorate

Agrega un borde o marco a una imagen.

6

Special effects

Puede desenfocar, enfocar, definir o teñir una imagen.

7

Animation

Puede crear una secuencia de animación GIF a partir de un grupo de imágenes.

8

Composite

Puede superponer una imagen sobre otra.

9

Morphology of shapes

Extrae características, describe formas y reconoce patrones en imágenes.

10

Encipher or decipher an image

Convierte imágenes ordinarias en un galimatías ininteligible y viceversa.

Endrov

Endrov es un programa de análisis de imágenes multipropósito. Está escrito de forma independiente y diseñado para abordar muchas de las deficiencias de otro software gratuito y muchos paquetes comerciales.

Algunas de las características básicas de Endrov se describen a continuación:

No Señor. Característica y descripción
1

View data

Visualiza datos, en 2D y 3D. Diseñado para manejar esquemas de datos 4D complejos y un número ilimitado de canales, donde cada canal puede tener su propia resolución X, Y y Z.

2

Annotate your images

Anota tus imágenes, de forma automática o manual, para entenderlas y obtener estadísticas.

3

Undo and Redo

Puede deshacer y rehacer para todas las operaciones.

4

Lazy Evaluation

Está diseñado desde el suelo para manejar grandes conjuntos de imágenes. Endrov utiliza la evaluación perezosa, un concepto disponible principalmente en lenguajes de programación de investigación.

5

Scripting language

Es compatible con el lenguaje de secuencias de comandos gráfico, así como con las secuencias de comandos tradicionales.

6

Java

Escrito en Java. La arquitectura de complementos permite una fácil extensión con nuevos complementos de Java. Puede interactuar con Matlab.

7

Formats

Accede a casi todos los formatos de archivo comerciales y abiertos utilizando Bio-formatos.

8

Microscopic Processing

Puede controlar todos sus microscopios con un programa y realizar análisis de imágenes sobre la marcha.

HERRAMIENTAS

LEADTOOLS proporciona más de 200 funciones de procesamiento de imágenes en varias categorías que incluyen limpieza de documentos, mejora de imágenes médicas, conversión y corrección de color, reducción de ruido, detección de bordes y más.

Algunas de las características básicas de LEADTOOLS se describen a continuación:

No Señor. Característica y descripción
1

Scanned Document Image Processing

Esta poderosa colección de funciones puede leer documentos escaneados de artefactos e imperfecciones como agujeros perforados, ángulos torcidos, bordes, motas de polvo y más.

2

Medical Image Processing

Mejore la imagen o resalte los detalles cambiando, seleccionando, restando y eliminando el fondo para obtener mejores imágenes.

3

Geometric Transformation

Estas funciones se pueden utilizar para limpiar, alinear, corregir imágenes o aplicar efectos artísticos en 3D.

4

Brightness and Contrast

Estas funciones se pueden utilizar para mejorar imágenes, aplicar efectos artísticos o ayudar en la evaluación diagnóstica de imágenes médicas.

5

Color Space Conversion

Pueden agregar funcionalidad de espacio de color de imagen a aplicaciones de un solo subproceso y de múltiples subprocesos, incluidas las aplicaciones alojadas en IIS y Windows WF.

6

Color Correction

Estas funciones se utilizan para corregir imágenes con canales de color intercambiados, equilibrar las intensidades de color o realizar diversas tareas de análisis de imágenes.

7

Image Enhancement

Estas funciones se utilizan para corregir errores comunes en la fotografía, como ojos rojos y colores desequilibrados, así como para ayudar en la evaluación diagnóstica de imágenes médicas.

8

Region of Interest

Estas funciones se utilizan para crear y modificar regiones de interés en imágenes para realizar funciones de procesamiento de imágenes en partes específicas de una imagen, ahorrar tiempo en código de barras y reconocimiento OCR o realizar diversas tareas de análisis de imágenes.

OpenCV

OpenCV se publica bajo una licencia BSD y, por lo tanto, es gratuito para uso académico y comercial. Tiene interfaces C ++, C, Python y Java y es compatible con Windows, Linux, Mac OS, iOS y Android. OpenCV fue diseñado para la eficiencia computacional y con un fuerte enfoque en aplicaciones en tiempo real. Escrita en C / C ++ optimizado, la biblioteca puede aprovechar el procesamiento de múltiples núcleos.

Algunas características básicas de OpenCV se describen brevemente:

No Señor. Característica y descripción
1

Smoothing Images

Esto implica aplicar Blur, GaussianBlur, medianBlur y Filtro bilateral.

2

Eroding and Dilating

Puede aplicar dos operadores de morfología muy comunes: dilatación y erosión.

3

Morphology Transformations

Morfología de la función OpenCV Ex para aplicar Transformación Morfológica como apertura, cierre, TopHat y BlackHat, etc.

4

Image Pyramids

Las funciones de OpenCV pyrUp y pyrDown para bajar o subir una muestra de una imagen determinada.

4

Basic Thresholding Operations

Realice operaciones básicas de umbral utilizando el umbral de la función OpenCV.

5

Adding borders to your images

La función de OpenCV copyMakeBorder se usa para establecer los bordes (relleno adicional para su imagen).

7

Remapping

En OpenCV, la función de reasignación ofrece una implementación de reasignación simple.

8

Histogram Calculation

Para propósitos simples, OpenCV implementa la función calcHist, que calcula el histograma de un conjunto de matrices (generalmente imágenes o planos de imagen). Puede operar con hasta 32 dimensiones.