Java DIP - Bibliotecas de código aberto

Neste capítulo, exploramos algumas das bibliotecas de processamento de imagens gratuitas amplamente utilizadas e que podem ser facilmente integradas ao projeto. Essas bibliotecas incluem -

  • ImageJ
  • Fiji
  • Commons Imaging
  • ImageMagick
  • Endrov
  • LeadTools
  • OpenCv

ImageJ

ImageJ é um programa de processamento de imagem Java de domínio público inspirado no NIH Image para Macintosh. Ele pode exibir, editar, analisar, processar, salvar e imprimir imagens de 8, 16 e 32 bits.

Alguns dos recursos básicos do ImageJ são descritos abaixo -

Sr. Não. Recurso e descrição
1

Runs Everywhere

ImageJ é escrito em Java, o que permite que seja executado no Linux, Mac OS X e Windows, nos modos de 32 bits e 64 bits.

2

Open Source

ImageJ e seu código-fonte Java estão disponíveis gratuitamente e em domínio público.

3

Toolkit

Use ImageJ como um kit de ferramentas de processamento de imagem (biblioteca de classes) para desenvolver applets, servlets ou aplicativos.

4

Data Types

Escala de cinza de 8 bits ou cor indexada, inteiro não assinado de 16 bits, ponto flutuante de 32 bits e cor RGB.

5

File Formats

Abra e salve GIF, JPEG, BMP, PNG, PGM, FITS e ASCII. Abra o DICOM. Abra TIFFs, GIFs, JPEGs, DICOMs e dados brutos usando um URL.

6

Selections

Crie seleções de área retangulares, elípticas ou irregulares. Crie seleções de linha e ponto.

7

Image Enhancement

Suporta suavização, nitidez, detecção de bordas, filtragem de mediana e limite em imagens em tons de cinza de 8 bits e em cores RGB.

8

Color Processing

Divida uma imagem colorida de 32 bits em componentes RGB ou HSV. Mescle componentes de 8 bits em uma imagem colorida.

Fiji

Fiji é um pacote de processamento de imagem. Ele pode ser descrito como uma distribuição de ImageJ (e ImageJ2) junto com Java, Java3D e vários plug-ins organizados em uma estrutura de menu coerente. Fiji se compara ao ImageJ assim como o Ubuntu se compara ao Linux.

Além dos recursos básicos do ImageJ, alguns dos recursos avançados de Fiji são descritos abaixo -

Sr. Não. Recurso e descrição
1

Registering 3D images

Isso envolve alinhamento e montagem elásticos, extração de recursos, estabilizador de imagem etc.

2

Segmenting images

Oferece mais de 35 tipos de segmentação.

3

Useful keyboard short cuts

Fuji tem muitos atalhos de teclado.

4

Scripting

Permitir scripts com macros, em JavaScript, JRuby, Jython, Clojure e Beanshell.

5

Developing Plug-ins

Use o Editor de Script para começar a desenvolver plug-ins e, em seguida, execute os plug-ins.

6

ImageJ Tricks

ImageJ é fácil de usar, mas às vezes você deseja alguma função que esteja realmente implementada, mas não sabe como acioná-la.

Commons Imaging

Apache Commons Imaging, anteriormente conhecido como Apache Commons Sanselan, é uma biblioteca que lê e grava uma variedade de formatos de imagem, incluindo análise rápida de informações de imagem como (tamanho, cor, espaço, perfil ICC, etc.) e metadados.

Alguns dos recursos básicos do ImageJ são descritos abaixo -

Sr. Não. Recurso e descrição
1

Java

O Apache Commons Imaging é escrito em Java 100% puro. Ele é executado em qualquer JVM e em qualquer plataforma, sem modificação.

2

Image Formats

Ele lê e grava uma ampla variedade de formatos de imagem e oferece suporte a algumas variações e codificações perdidas por todas ou a maioria das outras bibliotecas.

3

Metadata support

Ele suporta a leitura e gravação de uma variedade de metadados de forma estruturada, incluindo metadados EXIF.

4

Network Friendly

É compatível com a rede. Commons Imaging lê apenas os dados de que precisa e armazena em cache o que é lido para que não seja muito pesado na rede.

5

Easy to use

Ele é projetado para ser muito fácil de usar. Possui uma interface simples e limpa. A maioria das operações são chamadas de um único método de Imaging.

6

Transparent

O Commons Imaging pretende ser transparente. Não há buffers ocultos para descartar, nenhuma memória nativa para liberar, nem threads em segundo plano.

7

Open Source

É Software Livre / Código Aberto. Ele está disponível sob a licença de software Apache.

8

Color Conversions

A classe ColorConversions oferece métodos para converter entre os seguintes espaços de cores - CIE-L * CH, CIE-L * ab, CIE-L * uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ e YXY.

ImageMagick

ImageMagick é um pacote de software para criar, editar, compor ou converter imagens bitmap. Ele pode ler e gravar imagens em mais de 100 formatos, incluindo DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG e TIFF. Use ImageMagick para redimensionar, inverter, espelhar, girar, distorcer, distorcer e transformar imagens, ajustar as cores da imagem, aplicar vários efeitos especiais ou desenhar texto, linhas, polígonos, elipses e curva de Bezier.

Alguns dos recursos básicos do ImageMagick são descritos abaixo -

Sr. Não. Recurso e descrição
1

Format conversion

Ele converte uma imagem de um formato para outro (por exemplo, PNG para JPEG).

2

Transform

Ele pode redimensionar, girar, cortar, inverter ou aparar uma imagem.

3

Transparency

Ele torna partes de uma imagem invisíveis.

4

Draw

Ele adiciona formas ou texto a uma imagem.

5

Decorate

Ele adiciona uma borda ou moldura a uma imagem.

6

Special effects

Ele pode desfocar, aumentar a nitidez, limitar ou colorir uma imagem.

7

Animation

Ele pode criar uma sequência de animação GIF a partir de um grupo de imagens.

8

Composite

Ele pode sobrepor uma imagem sobre a outra.

9

Morphology of shapes

Ele extrai recursos, descreve formas e reconhece padrões em imagens.

10

Encipher or decipher an image

Ele converte imagens comuns em jargões ininteligíveis e vice-versa.

Endrov

Endrov é um programa de análise de imagem multiuso. Ele é escrito de forma independente e projetado para resolver muitas das deficiências de outros softwares livres e muitos pacotes comerciais.

Alguns dos recursos básicos do Endrov são descritos abaixo -

Sr. Não. Recurso e descrição
1

View data

Ele visualiza dados em 2D e 3D. Projetado para lidar com esquemas de dados 4D complexos e um número ilimitado de canais, onde cada canal pode ter sua própria resolução X, Y e Z.

2

Annotate your images

Ele anota suas imagens, automaticamente ou manualmente, para entendê-las e obter estatísticas.

3

Undo and Redo

Ele pode desfazer e refazer para todas as operações.

4

Lazy Evaluation

Ele é projetado desde o início para lidar com grandes conjuntos de imagens. Endrov usa avaliação preguiçosa, um conceito disponível principalmente em linguagens de programação de pesquisa.

5

Scripting language

Suporta linguagem de script gráfico, bem como script tradicional.

6

Java

Escrito em Java. A arquitetura de plug-in permite fácil extensão com novos plug-ins Java. Ele pode interagir com o Matlab.

7

Formats

Ele acessa quase todos os formatos de arquivos comerciais e abertos usando Bio-formatos.

8

Microscopic Processing

Ele pode controlar todos os seus microscópios com um programa e fazer análises de imagem em tempo real.

LEADTOOLS

O LEADTOOLS oferece mais de 200 funções de processamento de imagem em várias categorias, incluindo limpeza de documentos, aprimoramento de imagens médicas, conversão e correção de cores, redução de ruído, detecção de bordas e muito mais.

Alguns dos recursos básicos do LEADTOOLS são descritos abaixo -

Sr. Não. Recurso e descrição
1

Scanned Document Image Processing

Esta poderosa coleção de funções pode ler documentos digitalizados de artefatos e imperfeições, como orifícios perfurados, ângulos inclinados, bordas, manchas de poeira e muito mais.

2

Medical Image Processing

Aprimore a imagem ou destaque os detalhes deslocando, selecionando, subtraindo e removendo o plano de fundo para obter melhores imagens.

3

Geometric Transformation

Essas funções podem ser usadas para limpar, alinhar, corrigir imagens ou aplicar efeitos 3D artísticos.

4

Brightness and Contrast

Essas funções podem ser usadas para aprimorar imagens, aplicar efeitos artísticos ou auxiliar na avaliação diagnóstica de imagens médicas.

5

Color Space Conversion

Eles podem adicionar funcionalidade de espaço de cores de imagem a aplicativos simples e multithread, incluindo aplicativos hospedados em IIS e Windows WF.

6

Color Correction

Essas funções são usadas para corrigir imagens com canais de cores trocados, equilibrar intensidades de cores ou executar várias tarefas de análise de imagens.

7

Image Enhancement

Essas funções são usadas para corrigir erros comuns em fotografia, como olhos vermelhos e cores desequilibradas, bem como auxiliar na avaliação diagnóstica de imagens médicas.

8

Region of Interest

Essas funções são usadas para criar e modificar regiões de interesse em imagens para executar funções de processamento de imagem em partes específicas de uma imagem, economizar tempo em código de barras e reconhecimento de OCR ou executar várias tarefas de análise de imagem.

OpenCV

O OpenCV é lançado sob uma licença BSD e, portanto, é gratuito para uso acadêmico e comercial. Possui interfaces C ++, C, Python e Java e é compatível com Windows, Linux, Mac OS, iOS e Android. O OpenCV foi projetado para eficiência computacional e com forte foco em aplicativos de tempo real. Escrita em C / C ++ otimizado, a biblioteca pode aproveitar as vantagens do processamento de vários núcleos.

Alguns recursos básicos do OpenCV são descritos resumidamente -

Sr. Não. Recurso e descrição
1

Smoothing Images

Isso envolve a aplicação de Blur, GaussianBlur, medianBlur e filtro bilateral.

2

Eroding and Dilating

Pode aplicar dois operadores morfológicos muito comuns - Dilatação e Erosão.

3

Morphology Transformations

Morfologia da função OpenCVEx para aplicar Transformação Morfológica, como abertura, fechamento, TopHat e BlackHat etc.

4

Image Pyramids

O OpenCV funciona com pyrUp e pyrDown para fazer uma amostragem inferior ou superior de uma determinada imagem.

4

Basic Thresholding Operations

Execute operações básicas de limite usando o limite de função OpenCV.

5

Adding borders to your images

A função OpenCV copyMakeBorder é usada para definir as bordas (preenchimento extra para sua imagem).

7

Remapping

No OpenCV, o remapeamento da função oferece uma implementação de remapeamento simples.

8

Histogram Calculation

Para fins simples, o OpenCV implementa a função calcHist, que calcula o histograma de um conjunto de arrays (geralmente imagens ou planos de imagens). Pode operar com até 32 dimensões.