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. |