Implementando plugins para o ImageJ



Documentos relacionados
Guia de Instalação e Utilização do plugin para Reconstrução Tomográfica em SPECT

Microsoft Office PowerPoint 2007

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

ANDROID APPLICATION PROJECT

Como Gerar documento em PDF com várias Imagens

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

SECRETARIA DE ESTADO DA FAZENDA. Documento de Arrecadação Estadual DAE. Manual do Usuário. Versão SECRETARIA DE ESTADO DA FAZENDA

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Gerenciador de Congressos de Iniciação Científica Manual de Instruções

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

WordPress Institucional UFPel Guia Rápido

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Smart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário

Manual Captura S_Line

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

CorelDRAW UM PROGRAMA DE DESIGN

NOVO ASSINADOR DO PROJUDI

Instalação e utilização do Document Distributor

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Eberhardt Comércio e Assist. Técnica. Ltda.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

GUIA INTEGRA SERVICES E STATUS MONITOR

Gerando enquêtes para uso em Pocket PCs V

NÚCLEO DE TECNOLOGIA E EDUCAÇÃO CURSO: WINDOWS MOVIE MAKER TUTORIAL

VERSÃO 1 PRELIMINAR MÓDULO 3 - PRESENCIAL

Procedimentos para Reinstalação do Sisloc

Sistema de Controle de Cheques GOLD

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

Sistema de Recursos Humanos

AULA 06 CRIAÇÃO DE USUÁRIOS

Utilização do Webmail da UFS

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Para começarmos as configurações, primeiramente vamos habilitar o DVR Veicular para o acesso. Clique em Menu e depois entre em Geral.

Informática Básica. Microsoft Word XP, 2003 e 2007

Manual Instalação Pedido Eletrônico

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

MANUAL DO INSTAR-MAIL 1.0. Pagina de login e senha do Instar-Mail

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

CURSO DE PROGRAMAÇÃO EM JAVA

ASSOCIAÇÃO CRISTÃ DE MOÇOS DO RIO GRANDE DO SUL DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Simão Pedro P. Marinho, Ramon Orlando de Souza Flauzino NARRATIVAS DIGITAIS

TUTORIAL MRV CORRETOR

NetBeans. Conhecendo um pouco da IDE

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Tutorial para Instalação de AVG 2012

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Sistema de Registro de Contratos e Financiamentos

Objetivos: Entender o funcionamento dos programas Java via linha de comando

GUIA RÁPIDO PARA PETICIONAMENTO ON-LINE

1 Instalação de Pacotes RPM no Metasys Contato...10

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Auxiliar de instalação (Português Brasileiro) Primeiros passos

OURO MODERNO Editor de textos APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Procedimentos para Instalação do Sisloc

Como gerar arquivos para Sphinx Operador

2 Orientação a objetos na prática

Tutorial SGCD. 1. Efetuando Login no Sistema. 2. Criando uma nova página. 3. Editando uma página já existente

Sistema de Gerenciamento Remoto

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Atualizaça o do Maker

Configuração do da UFS no Outlook 2007

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Universidade Federal do Vale do São Francisco Programa de Assistência Estudantil

Manual de Instalação do Sistema Audatex Mono / Perito Nova Plataforma

Guia de Início Rápido

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Manual de Utilização. Versão 1.0.0

Manual de Instalação e Configuração do Primeiro Backup Versão PRO

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Gerenciador de Referências. EndNote. Nonato Ribeiro Biblioteca de Ciências e Tecnologia (UFC)

Redimensionamento de Imagens no Catálogo de Produtos

Como usar a Chave. Ao clicar sobre as imagens da chave será aberto um quadro ampliado

Nota de Aula: Utilização da IDE Code::Blocks

Instalação e Configuração RPM Remote Print Manager para Windows 2000

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

Bem-vindo ao Guia de Introdução - Utilitários

- Acessar o sistema. Para acessar o sistema digite o endereço eletronico e clique em login na barra de menus.

Manual de Instalação e Configuração

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms.

2 de maio de Remote Scan

COMO INSTALAR O CATÁLOGO

Tutorial de utilização do Sistema de Ordem de Serviço SISORD. Para utilizar o sistema, acesse o endereço

INSTALAÇÃO DO SISTEMA CONTROLGÁS

MANUAL BACKUP XDENTAL 2012

Manual para inserir documentos no sistema Projudi

... MANUAL DO MODERADOR SERVIÇOS DE WEB

Acima temos a tela inicial do programa. USANDO O PHTOFILTER

Tutorial para utilização de imagens. Comissão de Acompanhamento e Validação de Materiais Didáticos CVMD/UFSC. Universidade Federal de Santa Catarina

Transcrição:

UNIVERSIDADE FEDERAL DE MINAS GERAIS INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO NÚCLEO DE PROCESSAMENTO DIGITAL DE IMAGENS (NPDI) Tutorial Implementando plugins para o ImageJ Flávio Augusto Rocha Bertholdo Versão 1.1 Belo Horizonte, 22 de abril de 2007

1. Introdução O ImageJ [1] é um programa de domínio público, desenvolvido em Java, que permite exibir, analisar, processar, salvar e imprimir imagens digitais. Ele pode ser executado em qualquer computador que tenha uma máquina virtual Java instalada. Ele pode trabalhar com imagens de 8, 16,e 32 bits e nos mais variados formatos como TIFF, GIF, JPEG, BMP, DICOM, FITS e "raw". O sistema pode trabalhar com diversas imagens simultaneamente, limitado apenas pela quantidade de memória disponível. Ele também pode executar diversas funções de processamento nas imagens como alterações de contraste, suavização, aguçamento, detecção de bordas, aplicação de filtros. Também suporta transformações geométricas e possui diversos recursos para analise. As imagens podem ser ampliadas até 32:1 ou reduzidas até 1:32. Uma das características mais interessantes do ImageJ é ter sido implementado através de uma arquitetura aberta. Desta forma, novas funcionalidades podem ser adicionadas ao sistema através da implementação de plugins escritos em Java. O sistema possui seu próprio editor Java, porém o código pode ser escrito utilizando qualquer editor. A compilação dos plugins é bastante simples e pode ser realizadas com qualquer compilador Java. O desenvolvimento de novos plugins permite aos usuários utilizar o ImageJ como uma plataforma de PDI, onde podese implementar e testar novos algoritmos. Desta forma, pode-se resolver diversos problemas de analise e processamento de imagens de forma simples e rápida. 2. Sobre este tutorial Este tutorial é uma breve introdução sobre a implementação de plugins no ImageJ e foi baseado no excelente trabalho de Werner Bailer, intitulado Writing ImageJ Plugins A Tutorial [2]. Nosso objetivo é apresentar de forma rápida e prática os conhecimentos básicos para a implementação de plugins. Vale destacar que conhecimentos em programação Java e sobre a utilização do ImageJ são pré-requisitos de suma importância. A documentação do ImageJ pode ser encontrada no seguinte endereço: http://rsb.info.nih.gov/ij/docs/index.html. 3. Plugins do ImageJ As funcionalidades oferecidas pelo ImageJ, em seus menus, podem ser ampliadas através da utilização de plugins. Aliás, muitas das funcionalidades padrão do programa são implementadas através de plugins. Um plugin é uma classe Java implementando prédeterminadas interfaces. Além disto, todos os plugins devem ser colocados na pasta plugins, que é uma sub-pasta da pasta onde está instalado o ImageJ. Mas para serem exibidas automaticamente no menu Plugins, o arquivo da classe deve possuir pelo menos uma sublinhado (underscore) no seu nome, sugerimos utilizar o sublinhado no final do nome da classe. Desde a versão 1.20, é possível criar sub-pastas dentro da pasta plugins e colocar os plugins nelas. Desta forma, pode-se simplificar e melhorar a organização dos plugins. Os plugins podem ser escritos no editor próprio do ImageJ (que pode ser acessado através do menu Plugins/New ou Plugins/Edit ) ou com o seu editor de texto preferido. Em qualquer um dos casos, os plugins podem ser compilados e executados através do ImageJ. Se o Implementando Plugins para o ImageJ Versão 1.1 2

seu sistema operacional já possui um compilador Java instalado, você poderá compilar seus plugins diretamente do ImageJ. A forma mais simples é utilizar o menu Plugins/Compile and Run, que abre uma caixa de dialogo para selecionar um arquivo.java, que será compilado em um arquivo class e executado como um plugin. Para instalar novos plugins (por exemplo algum plugin que você baixou da Internet), basta copiar o arquivo.class para a pasta plugins ou para uma sub-pasta dela. O plugin irá aparecer no menu plugins ou em um de seus sub-menus na próxima vez que você iniciar o ImageJ. Ou seja, após instalar um novo plugin é necessário reiniciar o programa para que o mesmo seja exibido no menu. 3.1 Tipos de plugins Existem basicamente dois tipos de plugins: os que não precisam de uma imagem de entrada (implementam a interface PlugIn) e os chamados plugins filters, que precisam de uma imagem como entrada (implementam a interface PlugInFilter). Neste tutorial, vamos nos concentrar apenas em exemplos do segundo tipo, por serem os mais utilizados. 4. Exemplos de código Após instalar o ImageJ, se você procurar na pasta de Plugins, você encontrará exemplos que vem com o ImageJ. Vale a pena conferir a analise do código do plugin Inverter_ apresentada em [2]. A seguir, apresentamos dois exemplos de código que ilustram características básicas dos plugins do ImageJ. 4.1 Exemplo 1: Limiarização Simples Este exemplo realiza uma limiarização simples em imagens de 8 bits (tons de cinza), utilizando como limiar o tom de cinza 128. /** Aqui você deve inserir os pacotes necessários */ import ij.*; import ij.plugin.filter.pluginfilter; import ij.process.*; import ij.gui.*; import ij.plugin.frame.pluginframe; import java.awt.*; /** Este ImageJ plugin implementa uma limiarização simples em imagens de 8 bits. Considerações: 1) Filter plug-ins devem implementar a interface PlugInFilter. 2) Plugins que são colocados na pasta "plugins" do ImageJ e possuem pelo menos um underscore no seu nome são instalados automaticamente no menu de Plugins. 3) O nome da classe e o nome do arquivo devem ser os mesmos. 4) Tome cuidado para o nome do plugin não entrar em conflito com plugins já existentes. */ public class Ex1_ implements PlugInFilter { public int setup(string arg, ImagePlus imp) { if (arg.equals("about")) {showabout(); return DONE; Implementando Plugins para o ImageJ Versão 1.1 3

return DOES_8G+DOES_STACKS; public void run(imageprocessor ip) { int limiar = 128; byte[] pixels = (byte[])ip.getpixels(); int width = ip.getwidth(); int height = ip.getheight(); int offset, i, pixel; for (int y=0; y<height; y++) { offset = y*width; for (int x=0; x<width; x++) { i = offset + x; pixel = (int) (pixels[i] & 0xff); if (pixel<limiar) pixels[i] = (byte)(0); else pixels[i] = (byte)(255); void showabout() { IJ.showMessage("About Ex1_...", "Este plugin implementa uma limiarização simples\n" + "em imagens de 8 bits." ); 4.2 Exemplo 2: Equalização de histograma Este plugin implementa uma equalização de histograma em imagens de 8 bits (tons de cinza). Vale destacar a utilização da classe ContrastEnhancer para realizar a equalização do histograma. A utilização desta classe exemplifica a grande capacidade de reutilização de código disponível na arquitetura do ImageJ. Além disto, as alterações não são realizadas na própria imagem de entrada, ou seja, é criada uma nova imagem para exibir os resultados. /** Aqui você deve inserir os pacotes necessários */ import ij.*; import ij.plugin.filter.pluginfilter; import ij.process.*; import ij.gui.*; import ij.plugin.frame.pluginframe; import java.awt.*; import ij.plugin.contrastenhancer; /** Este ImageJ plugin implementa uma equalização de histograma em imagens de 8 bits. Considerações: 1) Filter plug-ins devem implementar a interface PlugInFilter. 2) Plugins que são colocados na pasta "plugins" do ImageJ e possuem pelo menos um underscore no seu nome são instalados automaticamente no menu de Plugins. 3) O nome da classe e o nome do arquivo devem ser os mesmos. 4) Tome cuidado para o nome do plugin não entrar em conflito com plugins já existentes. */ Implementando Plugins para o ImageJ Versão 1.1 4

public class Ex2_ implements PlugInFilter { public int setup(string arg, ImagePlus imp) { if (arg.equals("about")) {showabout(); return DONE; return DOES_8G+DOES_STACKS; public void run(imageprocessor ip) { byte[] pixels = (byte[])ip.getpixels(); int width = ip.getwidth(); int height = ip.getheight(); int offset, i, pixel; int limiar = 64; /* Objeto para realizar a equalização do histograma */ ContrastEnhancer CP = new ContrastEnhancer(); ImagePlus imp = NewImage.createByteImage ("Ex2", width, height, 1, NewImage.FILL_WHITE); ImageProcessor nip = imp.getprocessor(); for (int y=0; y<height; y++) { offset = y*width; for (int x=0; x<width; x++) { i = offset + x; pixel = (int) (limiar + (pixels[i] & 0xff)); nip.putpixel(x, y, pixel); /* Realizar a equalização do histograma da imagem */ CP.equalize(nip); /* Exibir a nova imagem */ imp.show(); void showabout() { IJ.showMessage("About Ex2_...", "Este plugin implementa uma equalização de histograma\n" + "em imagens de 8 bits." ); 5. Referências Bibliográficas [1] Introdução ao ImageJ http://rsb.info.nih.gov/ij/docs/intro.html [2] BAILER, Weler. Writing ImageJ Plugins A Tutorial http://mtd.fh-hagenberg.at/depot/imaging/imagej/ [3] ImageJ Developer Resources http://rsb.info.nih.gov/ij/developer/index.html Implementando Plugins para o ImageJ Versão 1.1 5