107
Daniel San Martin Pascal Filho Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo de Avalia¸c˜ao do Teste Cometa Trabalho de conclus˜ ao de curso apresentado como parte dos requisitos para obten¸c˜ ao do grau Bacharel em Ciˆ encias da Computa¸c˜ ao. Orientador: Prof. Dr. rer.nat. Aldo von Wangenheim Co-orientador: Leandro Coser UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORM ´ ATICA E ESTAT ´ ISTICA BACHARELADO EM CI ˆ ENCIAS DA COMPUTA¸ C ˜ AO Florian´ opolis – SC Junho / 2008

Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Embed Size (px)

Citation preview

Page 1: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Daniel San Martin Pascal Filho

Desenvolvimento de uma Metodologia

Computacional para Automatizar o

Processo de Avaliacao do Teste Cometa

Trabalho de conclusao de curso apresentadocomo parte dos requisitos para obtencao dograu Bacharel em Ciencias da Computacao.

Orientador:

Prof. Dr. rer.nat. Aldo von Wangenheim

Co-orientador:

Leandro Coser

UNIVERSIDADE FEDERAL DE SANTA CATARINADEPARTAMENTO DE INFORMATICA E ESTATISTICA

BACHARELADO EM CIENCIAS DA COMPUTACAO

Florianopolis – SC

Junho / 2008

Page 2: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Trabalho de conclusao de curso sob o tıtulo “Desenvolvimento de uma Metodologia

Computacional para Automatizar o Processo de Avaliacao do Teste Cometa”, defendido

por Daniel San Martin Pascal Filho sob aprovacao, em Florianopolis, Santa Catarina,

pela banca examinadora constituıda:

Prof. Dr. rer.nat. Aldo von WangenheimDepartamento de Informatica e Estatıstica Orientador

Leandro CoserDepartamento de Informatica e Estatıstica

Co-Orientador

Banca Examinadora

Leandro CoserDepartamento de Informatica e Estatıstica

Antonio Carlos SobieranskiDepartamento de Informatica e Estatıstica

Page 3: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

“Perder dinheiro e perder pouco,

Perder Confianca e perder muito,

Perder a Coragem e perder tudo.

Portanto, mantenha a coragem como o bem mais precioso de sua vida.”

Masutatsu Oyama

Page 4: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Agradecimentos

Ao orientador Professor Aldo von Wangenheim por suas sugestoes e crıticas. Ao

co-orientador e membro da banca Leandro Coser por sua paciencia e dedicacao nestes

ultimos meses. Ao membro da banca Antonio Carlos Sobieranski por apontar caminhos

que ajudaram no enriquecimento deste trabalho.

A Prof. Dra. Claudia Maria Oliveira Simoes por me receber em seu laboratorio e

fornecer o material necessario para iniciar meus estudos sobre o Teste Cometa. Alem

disso, agradeco a ela por me apresentar ao Mestrando Thiago Caon, quem sempre esteve

pronto para esclarecer quaisquer duvidas sobre o Teste Cometa.

Ao Grupo Cyclops, onde tive a oportunidade de contribuir e aprender ao longo destes

ultimos dois anos. Especialmente aos colegas Marcio Giovani Jasinski, Miguel Cartagena

e Diego Garcia, que me presentearam com inumeras licoes enquanto trabalhamos juntos.

Ao Mestre Rafael Simon Maia por ser um gestor participativo, estar sempre disposto a

ajudar e compreender quando as coisas nao iam bem.

Aos meus amigos e colegas de curso, com os quais pude compartilhar esta maravilhosa

fase de minha vida.

Aos meus pais por proporcionarem a infra-estrutura necessaria para que eu pudesse

ingressar, cursar e concluir o curso de Bacharelado em Ciencias da Computacao na Univer-

sidade Federal de Santa Catarina. Agradeco a eles, tambem, por todo o apoio, incentivo,

amor e carinho de que precisei ao longo destes anos.

Ao meu irmao Liber Alves San Martin que, mesmo sem tempo, sempre esteve ao

meu lado disposto a conversar sobre os mais diversos assuntos e dar seu apoio quase

incondicional nas decisoes que tomei. A minha namorada Monica Patrıcia Sequinatto

pelo seu esforco em prol de minha formacao, amor, carinho e compreensao. Aos meus

Avos que mesmo estando tao longe sempre estiveram tao perto.

Page 5: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Resumo

O Processo de avaliacao da genotoxicidade do Teste Cometa pode ser auxiliado porferramentas de analise computacional, dando mais rapidez e precisao as analises. Noentanto, esses sistemas sao importados e tem um preco muito elevado, o que dificulta suaaquisicao por parte dos laboratorios.

Este trabalho apresenta a proposta de uma metodologia computacional para automa-tizar o processo de avaliacao do teste cometa atraves de tecnicas de processamento deimagens digitais(PDI). Com a aplicacao de tecnicas de PDI e possıvel extrair caracterıs-ticas geometricas dos cometas, por meio do qual sao corretamente classificados.

Palavras-chave: Processamento de Imagens, Teste Cometa, DNA, Segmentacao

Page 6: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Abstract

The evaluation process of Comet Assay genotoxicity can be aided by computationalanalysis tools, providing faster and more accurate analysis. However, these systems havehigh prices, which difficults their acquisition by laboratories.

Aiming to be the basis for the construction of such a computational tool, this workpresents a proposal for a methodology to automate the process of the Comet Assay eva-luation through Digital Image Processing techniques(DIP). With the application of DIPtechniques it is possible to extract geometric characteristics of comets, through which theyare classified.

Key-words: Image Processing, Comet Assay, DNA, Segmentation

Page 7: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Sumario

Lista de Figuras

Lista de Tabelas

Lista de acronimos e abreviacoes p. 14

1 Introducao p. 16

1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16

1.1.1 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . p. 16

2 Justificativa p. 18

3 Levantamento do Estado da Arte p. 19

3.1 Komet 5.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19

3.2 Comet Assay IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20

3.3 CometScore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22

4 Fundamentacao Teorica p. 24

4.1 O Teste Cometa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24

4.1.1 Como o Teste Cometa Funciona e o que ele Mede . . . . . . . . . p. 25

4.1.2 Variacoes do Teste Cometa . . . . . . . . . . . . . . . . . . . . . . p. 26

4.1.3 Medicoes no Teste Cometa . . . . . . . . . . . . . . . . . . . . . . p. 27

4.2 Conceitos Basicos de Processamento de Imagens Digitais . . . . . . . . . p. 28

4.3 Aquisicao de Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28

4.4 Pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29

Page 8: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4.1 Correcao de Inclinacao . . . . . . . . . . . . . . . . . . . . . . . . p. 29

4.4.2 Limiarizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30

4.4.3 Subtracao de Imagens . . . . . . . . . . . . . . . . . . . . . . . . p. 31

4.4.4 Filtragem de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . p. 31

4.4.5 Filtragem no Domınio Espacial . . . . . . . . . . . . . . . . . . . p. 32

4.4.5.1 Filtros da Mediana . . . . . . . . . . . . . . . . . . . . . p. 33

4.4.5.2 Filtragem Gaussiana . . . . . . . . . . . . . . . . . . . . p. 33

4.4.5.3 Filtro de Difusao Anisotropica . . . . . . . . . . . . . . . p. 34

4.5 Segmentacao de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37

4.5.1 Deteccao de Descontinuidades . . . . . . . . . . . . . . . . . . . . p. 37

4.5.1.1 Transformada de Hough . . . . . . . . . . . . . . . . . . p. 38

4.5.1.2 Deteccao de Circunferencias pela Transformada de Hough p. 38

4.5.1.3 Deteccao de Bordas . . . . . . . . . . . . . . . . . . . . p. 39

4.5.1.4 O Operador de Sobel . . . . . . . . . . . . . . . . . . . . p. 40

4.5.2 Limiarizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41

4.5.2.1 Limiarizacao Global . . . . . . . . . . . . . . . . . . . . p. 42

4.5.2.2 Limiarizacao Global Iterativa . . . . . . . . . . . . . . . p. 42

4.6 Morfologia Matematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 43

4.6.1 Operadores Mofologicos em Imagens Binarias . . . . . . . . . . . p. 44

4.6.1.1 Dilatacao e Erosao . . . . . . . . . . . . . . . . . . . . . p. 44

4.6.1.2 Abertura e Fechamento . . . . . . . . . . . . . . . . . . p. 45

4.7 Reconhecimento e Interpretacao . . . . . . . . . . . . . . . . . . . . . . . p. 45

5 Metodologia p. 46

5.1 Ferramenta de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . p. 46

5.2 Passos no Domınio do Processamento de Imagens . . . . . . . . . . . . . p. 46

5.3 Aquisicao de Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 47

Page 9: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.4 Definicao da Regiao de Interesse . . . . . . . . . . . . . . . . . . . . . . . p. 48

5.5 O Problema dos Cometas em Forma de Nuvem . . . . . . . . . . . . . . p. 48

5.6 Pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 50

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao

Adaptativa com Reconstrucao . . . . . . . . . . . . . . . . . . . . . . . . p. 50

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca

do Cometa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 57

5.8.1 Algoritmo de Deteccao de Circunferencia pela Transformada de

Hough atraves do Vetor de Gradiente de Sobel Limiarizado . . . . p. 59

5.8.2 Algoritmo de Busca Radial para Delineamento da Borda da Cabeca p. 60

5.9 Extracao de Caracterısticas das Imagens Segmentadas . . . . . . . . . . . p. 62

5.10 Base de Conhecimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62

5.11 Classificacao dos Cometas . . . . . . . . . . . . . . . . . . . . . . . . . . p. 63

5.12 Deteccao de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64

6 Resultados p. 66

7 Conclusao p. 68

8 Trabalhos Futuros p. 70

Referencias Bibliograficas p. 71

9 Anexo A - Codigo Fonte do Prototipo p. 74

9.1 anisodiff2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 74

9.2 cometGUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76

9.3 cometseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 83

9.4 cycCometCVCore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 84

9.5 extremes searcher bw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 87

9.6 gray threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 88

Page 10: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.7 gray thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 88

9.8 head segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 89

9.9 is connectedpixel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 94

9.10 nonblack var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 95

9.11 radians . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 96

9.12 threshold by range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 96

9.13 threshold with reconstruction . . . . . . . . . . . . . . . . . . . . . . . . p. 97

10 Apendice B - Artigo p. 98

Page 11: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Lista de Figuras

3.1 A esquerda, tela de apresentacao de dados e a direita esta a tela da base

de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19

3.2 Comet Assay IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21

3.3 Tela principal do CometScore. . . . . . . . . . . . . . . . . . . . . . . . . p. 22

3.4 Menu de informacoes que se deseja capturar na analise. . . . . . . . . . . p. 22

4.1 Exemplo do ciclo basico do teste cometa. As celulas sao retiradas das

amostras para serem fixadas nas laminas com agarose e, logo, levadas a

um tampao de lise. Apos serem lisadas, perdendo o citoplasma, mem-

brana entre outras estruturas, elas sao expostas a um campo eletrofore-

tico. Algum tempo depois, as laminas com DNA recebem um tratamento

e sao levadas a um microscopio para serem analisadas. . . . . . . . . . . p. 24

4.2 Classificacao visual sugerida por Collins et. al. (1995). Imagens de

cometas (a partir de linfocitos), coradas com DAPI. Representam 0-4

utilizados para as aulas escore visual. . . . . . . . . . . . . . . . . . . . . p. 25

4.3 Esquema de classificacao visual de cometas de Kobayashi et al. (1995).

Cada cometa pode pertencer a uma dos cinco tipos de classes. . . . . . . p. 28

4.4 Etapas mais comuns no processamento de imagens. . . . . . . . . . . . . p. 29

4.5 Exemplo de binarizacao como pre-processamento . . . . . . . . . . . . . p. 30

4.6 Distribuicao de Gauss em 2-D com media (0,0) e σ = 1 (IMAGE PRO-

CESSING LEARNING RESOURCES, ) . . . . . . . . . . . . . . . . . . p. 34

4.7 Deteccao de circunferencias por meio da transformada de Hough. . . . . p. 40

4.8 Histograma bimodal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42

4.9 Representacao de uma imagem binaria. . . . . . . . . . . . . . . . . . . . p. 43

5.1 Diagrama simplificado da metodologia. . . . . . . . . . . . . . . . . . . . p. 47

Page 12: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.2 Microscopio Olympus BX40. . . . . . . . . . . . . . . . . . . . . . . . . . p. 48

5.3 Uma tıpica analise mostrando o cometa com sua cabeca( head), cauda(

tail) e o fundo( background) da regiao de interesse. . . . . . . . . . . . . p. 49

5.4 Cometa da classe 4. Nao possui cabeca. . . . . . . . . . . . . . . . . . . . p. 50

5.5 Imagens com contrastes diferentes . . . . . . . . . . . . . . . . . . . . . . p. 51

5.6 Imagens em nıvel de cinza de linfocitos humanos cometas capturados

com uma camera de intensidade. Esquerda: Controle amostra. Direita:

irradiados com 2 Gy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 52

5.7 Distribuicao Gaussiana do ruıdo no fundo da imagem do Teste Cometa

(BOCKER et al., 1999) . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 53

5.8 Dependencia do numero de objetos(NO) dentro da imagem binaria sobre

limiar selecionado.(BOCKER et al., 1999). O decrescimento no NO para

baixos limiares e resultado da fusao dos objetos. . . . . . . . . . . . . . . p. 54

5.9 Metodologia para segmentacao do cometa. . . . . . . . . . . . . . . . . . p. 54

5.10 Resultado final da segmentacao dos cometas pelo metodo desenvolvido

por Rivest et al.(1996) . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55

5.11 Funcao de Limiarizacao com Reconstrucao. Esta funcao utiliza

uma imagem em nıveis de cinza f com dimensoes M x N. No final do

processamento, produz-se uma imagem binaria g. O nıvel de limiarizacao

superior t1 deve ser passado a funcao. t1 e o nıvel para a limiarizacao

superior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 56

5.12 Exemplo de cometa com cabeca difıcil de ser segmentada. . . . . . . . . . p. 58

5.13 Tres exemplos de cometas difıceis de terem suas cabecas segmentadas. A

borda branca mostra o resultado da segmentacao via algoritmo CHARM.

(VOJNOVIC et al., ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58

5.14 Sentido da busca radial. . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60

5.15 Localizacao de pontos extremos na imagem do cometa produzida pela

etapa de segmentacao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62

6.1 Classificacao do especialista x usuario atraves do prototipo. . . . . . . . . p. 67

6.2 Tempo de resposta do prototipo. . . . . . . . . . . . . . . . . . . . . . . p. 67

Page 13: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Lista de Tabelas

4.1 Mascara 3x3 frequentemente usada no filtro de mediana . . . . . . . . . . p. 33

5.1 A ocorrencia de pıxeis ruidosos e usado para calcular o limiar otimo. . . . p. 55

5.2 Principais passos para a segmentacao do cometa inteiro . . . . . . . . . . p. 57

Page 14: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

14

Lista de acronimos e abreviacoes

A

API - Application Programming Interface

AIFF - Audio Interchange File Format

B

BSD - Berkeley Software Distribution

G

GNU - Gnu is not unix

H

HU - Hospital Universitario

I

IDE (Integrated Development Environment)

L

LIRC - Linux Infrared Remote Control

LGPL - GNU LESSER GENERAL PUBLIC LICENSE

P

PACS - Picture Archiving and Communication Systems

Page 15: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Lista de acronimos e abreviacoes 15

PDI Processamento Digital de Imagens

R

ROI - Region of interest

S

SGI - Silicon Graphics, Inc

SR - Speech Recognition ou Structured Report (de acordo com o contexto)

T

TAG- Do ingles, etiqueta

U

UFSC - Universidade de Santa Catarina

Page 16: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

16

1 Introducao

O Teste Cometa, tambem conhecido como Ensaio Cometa, e utilizado como um me-

todo para medir o dano no DNA das celulas. Por ser de facil execucao e de baixo custo, foi

largamente adotado tanto nos meios academicos quanto fora dele. Contudo, o processo de

classificacao de centenas de celulas presentes nas laminas e visual e repetitivo, tornando-se

um tanto cansativo para os especialistas envolvidos.

Essa situacao motivou a criacao de diversos sistemas de visao computacional para a

quantificacao do Teste Cometa. No entanto, o alto custo desses sistemas ainda torna sua

aquisicao inviavel para a maioria dos laboratorios brasileiros.

Atraves de um estudo detalhado sobre o Teste Cometa e das tecnicas mais comuns

utilizadas para sua automatizacao por computador, este trabalho buscou desenvolver uma

metodologia para classificar cada nucleo de celula, a partir da qual seja possıvel imple-

mentar um sistema computacional eficiente e de baixo custo.

1.1 Objetivo

Este trabalho visa o desenvolvimento de uma metodologia computacional capaz de

automatizar o processo de classificacao dos nucleos celulares, em imagens oriundas de

Testes Cometa, quanto aos danos em seus DNAs.

1.1.1 Objetivos Especıficos

• Estudo das tecnicas utilizadas em Processamento de Imagens Digitais;

• Apresentacao dos princıpios do Teste Cometa;

• Aplicacao de tecnicas de processamento digital de imagem para melhoramento das

caracterısticas das imagens dos cometas;

Page 17: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

1.1 Objetivo 17

• Levantamento, desenvolvimento e/ou aplicacao de tecnicas de processamento digital

de imagem para segmentacao das cabecas e caudas dos cometas;

• Levantamento, desenvolvimento e/ou aplicacao de tecnicas de processamento digital

de imagem para classificacao das imagens dos cometas conforme as cinco classes

tradicionais de acordo com o dano no DNA;

• Extracao de caracterısticas das imagens dos cometas como comprimento da cauda do

cometa e diametro da cabeca, baseada na analise computacional das caracterısticas

da imagem.

Page 18: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

18

2 Justificativa

O Teste Cometa foi introduzido por Ostling e Johanson em 1984 (OSTLING; JOHAN-

SON, 1984), sendo uma tecnica desenvolvida para detectar a quebra de DNA (acido de-

soxirribonucleico), produzida por alteracao genetica nas celulas. Devido ao baixo custo

envolvido em sua execucao, ele e hoje um dos testes mais populares para a analise de

genotoxicidade.

Cada lamina a ser analisada por um especialista possui mais de 100 cometas distri-

buıdos de forma desuniforme em sua superfıcie. Dentre os cometas dispostos sobre cada

lamina, em media, 50 sao selecionados e classificados visualmente por um especialista. Na

classe zero o cometa nao possui cauda, contendo pouca danificacao no material genetico.

Nas classes um, dois e tres, os cometas apresentam uma cauda formada pelo escorrimento

do material genetico sobre a lamina. O comprimento dessa cauda em relacao ao diametro

da cabeca, entre outras caracterısticas, e usado para classificar o cometa visualmente pelos

especialistas em uma dessas tres classes(Fig.4.3). Ja cometas da classe 4 nao apresentam

uma cabeca bem definida, formando uma nuvem (Fig.4.2).

A analise de um grande numero laminas e considerado um processo cansativo, alem

disso, como o processo tradicional de selecao e classificacao dos cometas e visual.

Nesta pesquisa, procura-se desenvolver uma metodologia de baixo custo computacio-

nal que automatize o processo de classificacao dos danos do DNA de cada cometa presente

nas imagens das laminas, capturadas por uma camera digital convencional acoplada ao

microscopio.

Page 19: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

19

3 Levantamento do Estado daArte

Nas proximas secoes ha uma breve descricao dos sistemas computacionais mais uti-

lizados para avaliacao da genotoxicidade do Teste Cometa disponıveis no mercado. Os

cometarios sobre os mesmos sao feitos com base nas informacoes disponibilizadas pelas

empresas responsaveis.

3.1 Komet 5.5

O software Komet 5, segundo a empresa ANDOR Technology, sua fabricante, e, sim-

plesmente, a mais avancada e completa solucao em software para analise, manuseio de

dados e apresentacao de amostras do Teste Cometa. O Komet 5 introduziu o uso de Base

de Dados, armazenando a imagem de cada celula junto com sua respectiva analise.

Figura 3.1: A esquerda, tela de apresentacao de dados e a direita esta a tela da base dedados.

Separadamente ao Komet 5.5, ha o Komet Database View(DBV), com o qual se pode

visualizar os dados da base de dados, alem de ser possıvel realizar analises sobre o mesmo.

O DBV permite apresentar os resultados na forma de Dose Response curves e de outros

Page 20: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

3.2 Comet Assay IV 20

tipos de graficos.

Principais Caracterısticas:

• Captura de cometas por um so clique do “mouse”(“one click capture”), garantindo

uma rapida pontuacao(“scoring”);

• Computacao completamente automatica e interativa da porcentagem de DNA da

cabeca e cauda, momento Olive da cauda, porcentagem de intensidade da cauda,

comprimento da cauda, etc.;

• Base de dados de captura e armazenamento das imagens e dados das celulas;

• Visualizacao da base de dados permite a apresentacao de dados, decodificacao e

sumarios de dados para analise estatıstica;

• O modo “Experience” guia o usuario pela analise, lamina por lamina;

• O “scoring”(pontuacao) pode ser suspenso e reiniciado em multiplas sessoes.

Atualmente, o Komet 5.5 e vendido por USD$6440,00.

3.2 Comet Assay IV

O Comet Assay IV possui o lema:“O sistema de classificacao de teste cometa mais

consistente e mais rapido do mundo”. Desenvolvido pela Perseptive Instruments, destaca-

se pelo seu metodo de classificacao de apenas um clique e pela imagens de vıdeo ao

vivo, caracterısticas que, segundo a empresa, tornam seu software o mais simples de ser

utilizado.

Caracterısticas de Comet Assay IV

• Marca automaticamente as celulas avaliadas para prevenir que os usuarios classifi-

quem a mesma celula duas vezes;

• Suporte a camera colorida para obter imagens de vıdeo ao vivo;

• Facilidade de importacao e classificacao de imagens capturadas com qualquer camera

digital;

• A classificacao automatica por um so clique permite uma melhor velocidade e re-

produtibilidade;

Page 21: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

3.3 CometScore 21

Figura 3.2: Comet Assay IV

• Suas ferramentas de administracao de estudos flexıveis colaboram na realizacao de

um trabalho personalizado;

• A conectividade com o banco de dados Oracle aumenta a seguranca dos resultados;

• Possui diversas macros de Excel para a analise e comparacao de dados;

• Armazena as imagens automaticamente dados da analise para garantir mais quali-

dade;

O funcionamento basico do software e relativamente simples. Com o acoplamento uma

camera ao microscopio, o Comet Assay IV pode capturar as imagens em tempo real, ou

seja, o que se pode observar na tela do computador e um vıdeo do que esta acontecendo

sob as lentes do microscopio. Isto permite que o microscopio possa ser calibrado e as

alteracoes aparecam no monitor. Logo, a classificacao de cada cometa e feita no momento

em que se clica sobre o mesmo, que aparece no vıdeo. O cometa clicado recebe uma marca

para evitar reclasisificacoes e os dados podem ser armazenados tanto em um arquivo no

formato do “Excel” quanto num armazenados no banco de dados, ou nos dois.

Page 22: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

3.3 CometScore 22

Figura 3.3: Tela principal do CometScore.

3.3 CometScore

O CometScore e um software gratuito para quantificar os resultados do teste cometa.

O software produzido pela Tritek Corporation roda apenas na plataforma Windows. Ele

aceita unicamente imagens de 8-bit em tons de cinza ou 24-bit coloridas, ambas no formato

BMP. Alem disso, a disposicao dos cometas nas imagens deve ser horizontal, da esquerda-

para-direita ou da direita-para-esquerda.

Caso as imagens nao estejam nesse padrao, a empresa fabricante aconselha que sejam

usados softwares de processamento de imagem para corrigi-las. Um software aconselhado

pela empresa e o GIMP, cuja licenca de uso e livre.

Estando a imagem pronta para ser analisada, ela deve ser carregada no CometScore.

Uma vez carregada, o usuario deve, ainda, separar os cometas do fundo da imagem. Essa

tarefa e realizada atraves de um componente localizado no lado direito da tela. Com isso,

e aplicada uma limiarizacao simples sobre a imagem inteira.

Figura 3.4: Menu de informacoes que se deseja capturar na analise.

Para escolher o cometa que se deseje classificar, e preciso clicar e arrastar o mouse

em volta do cometa para formar um retangulo ao seu redor. Feito isso, o usuario deve

tracar uma linha entre a cabeca do cometa e a cauda usando o proprio “mouse”. Uma vez

Page 23: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

3.3 CometScore 23

feito o retangulo, um linha passa a acompanhar o ponteiro do “mouse”. Tracada a linha

divisora, o programa faz o processamento para extrair as informacoes do cometa escolhido

finalmente.

Dentre as 17 informacoes que o CometScore e capaz de capturar estao: comprimento

da cauda, area da cauda, porcentagem de DNA na cauda, momento da cauda e momento

Olive da cauda. As informacoes que se deseje extrair devem ser escolhidas em uma janela

de configuracao.

Apos haver quantificado os cometas desejados, as informacoes podem ser visualizadas

em um software de planilhas, como o Microsoft Excel.

Page 24: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

24

4 Fundamentacao Teorica

4.1 O Teste Cometa

O teste cometa foi introduzido por Ostling e Johanson em 1984 (OSTLING; JOHAN-

SON, 1984), sendo uma tecnica desenvolvida para detectar a quebra de DNA (acido

desoxirribonucleico), produzida por alteracao genetica nas celulas.

Figura 4.1: Exemplo do ciclo basico do teste cometa. As celulas sao retiradas das amostraspara serem fixadas nas laminas com agarose e, logo, levadas a um tampao de lise. Aposserem lisadas, perdendo o citoplasma, membrana entre outras estruturas, elas sao expostasa um campo eletroforetico. Algum tempo depois, as laminas com DNA recebem umtratamento e sao levadas a um microscopio para serem analisadas.

O princıpio no qual o teste cometa se baseia e que danos no DNA reduzem o tamanho

de seus fragmentos. Este efeito e detectado ao se aplicar um campo eletroforetico 1 para

separar os fragmentos geneticos do nucleo de acordo com seus tamanhos. Antes de serem

1

A eletroforese e uma tecnica utilizada para separar macromoleculas tais como acidos nucleicos ouproteınas com base no tamanho, na carga eletrica e em outras caracterısticas fısicas. Tal propriedade,atribui-lhe um papel fundamental na separacao dos fragmentos de DNA durante a execucao do testecometa.

O uso deste metodo possibilita a migracao das moleculas atraves da extensao do gel, impulsionadaspor uma corrente eletrica. Nas extremidades do gel estao os eletrodos que fornecem a forca dirigida. Emalguns casos, o formato da moleculas tambem influencia na facilidade de migracao pelo gel.

Page 25: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.1 O Teste Cometa 25

expostas a tal campo, as celulas ja foram devidamente lisadas com o tampao de lise. O

padrao migratorio formado pelos fragmentos de DNA formam um padrao tıpico da cauda

de um cometa.

Por ser simples, sensıvel, versatil, rapido e economico ele tem atraıdo muitos adeptos,

sendo que sua citacao em trabalhos academicos e utilizacao em laboratorios cresce a cada

ano. Consequentemente, vem sendo aplicado em testes genotoxicos, biomonitoramento

humano, epidemiologia molecular, ecotoxicologia, assim como em pesquisas em danos e

reparo de DNA.

4.1.1 Como o Teste Cometa Funciona e o que ele Mede

Na decada de 1970, Cook et. al.(1976) desenvolveram uma abordagem para a inves-

tigacao de estruturas nucleares baseada na lise de celulas com detergente nao-ionico e de

cloreto de sodio em alta concentracao. Este tratamento remove membranas, citoplasma e

nucleoplasma, e desintegra os nucleossomos. Quase todas as histonas sao diluidas pelo alto

cloreto de sodio (COLLINS, 2004). As histonas sao proteınas fortemente associadas com

moleculas de DNA. Elas sao responsaveis pela estrutura da cromatina e desempenham

um importante papel na regulacao da expressao genica.

Figura 4.2: Classificacao visual sugerida por Collins et. al. (1995). Imagens de cometas (apartir de linfocitos), coradas com DAPI. Representam 0-4 utilizados para as aulas escorevisual.

Assim, apenas o nucleolo e deixado, consistindo de uma matriz nuclear ou “scaffold”(

esqueleto) composta por acido ribonucleico( RNA) e proteınas, juntamente com o DNA,

o qual e negativamente supercoloidado 2 como consequencia dos giros feitos pela dupla-

2

O “supercoil” refere-se a um enrolamento extra da molecula de DNA. Se o “supercoil” for introduzido

Page 26: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.1 O Teste Cometa 26

helice em volta das histonas do nucleossomos.

O que sobra do “supercoils” sugere que a rotacao livre do DNA nao e mais possıvel.

Cook et. al.(1976) propuseram um modelo com o DNA unindo a matriz em intervalos para

que seja distribuıdo eficientemente em uma serie de“loops”, mais que uma molecula linear.

Quando o “supercoil” negativo estiver desenrolado pelo intercalamento com o brometo de

etıdio, os “loops” expandidos do centro do nucleoide formarao uma mancha. Um efeito

similar foi visto quando uma radiacao ionizante foi usada para relaxar os “loops” - uma

quebra de fita simples e suficiente para relaxar o “supercoil” num dado “loop”.

O teste cometa, portanto, em sua forma mais frequente de uso, envolve a lise de

detergente em alta concentracao salina, seguida de fixacao em agarose para que o DNA

fique imobilizado com a subsequente eletroforese.

A primeira demonstracao de“cometas”foi realizada por Ostling e Johanson(1984), que

descreveram as caudas em funcao do DNA com “supercoil” relaxado e referenciaram ao

modelo de nucleoide de Cook et. al.(1976). Essencialmente, a cauda do cometa parece uma

simples mancha dos “loops” relaxados arrastados para um lado pelo campo eletroforetico.

Ostling e Johanson(1984) empregaram um pH menor que dez. Este fato mostra que,

apesar da variacao mais comum atual do teste cometa empregar o SCGE alcalino, um

alto pH nao e essencial para detectar a quebra de fita simples.

4.1.2 Variacoes do Teste Cometa

O Teste Cometa apresenta algumas variacoes, contudo as mais comuns sao:

• Alkaline Single Cell Gel Electrophoresis

O procedimento de Ostling e Johanson nao foi largamente adotado. Alguns anos

mais tarde, dois grupos de pesquisadores (SINGH et al., 1988) desenvolveram de

forma independente metodos que envolviam o tratamento usando um alto pH.

Esta alcalinizacao torna as caudas dos cometas mais pronunciadas e melhora a

resolucao do teste, nao afetando a sensibilidade( isto e, detecta a pequenas doses de

dano).

no sentido contrario ao de rotacao da helice, diminuindo o numero de ligamentos, temos o “supercoil”negativo. O “supercoil” e positivo quando ele aumenta o numero de ligamento. O estado super enroladoe menos estavel que o estado relaxado. Para desfazer o “supercoil” e necessario uma quebra em umadas cadeias de DNA. Essa quebra e usada no teste cometa e faz com que o “supercoil” seja diretamenteresponsavel pela mancha em forma de cometa resultante dos testes.

Page 27: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.1 O Teste Cometa 27

• Neutral Single Cell Gel Electrophoresis

Foi desenvolvido por Olive et. al. para facilitar a deteccao da quebra de fita dupla

sem a interferencia da quebra de fita simples. Seu procedimento emprega um tra-

tamento extensivo de quebra das celulas em agarose a cinquenta graus celcios. Sob

essas condicoes e provavel que a matriz nuclear esteja descontinuada de modo que

sera verdadeiramente possıvel verificar o comportamento dos segmentos provenientes

da quebra de fita dupla.

4.1.3 Medicoes no Teste Cometa

Kumaravel et. al(2007) detalha os metodos usados para avaliar as imagens do Teste

Cometa. As principais tecnicas descritas em seu artigo sao apresentadas a seguir.

Sing et. al(1988) desenvolveram uma versao alcalina do Teste Cometa. no qual eles

usaram o comprimento da migracao do DNA( comprimento da cauda) para quantificar

a extensao de seu dano. Subsequentemente, outros grupos de pesquisadores publicaram

artigos no qual novos parametros do Teste Cometa foram usados. Contudo, a maior parte

desses novos parametros encontrados caıram em desuso.

Olive et. al(1990) fez uma notavel publicacao, onde e usado o conceito de “tail mo-

ment” (momento da cauda) para descrever a migracao do material genetico. O “tail

moment” calculado por Olive et. al(1990) se tornou conhecido como “Olive tail mo-

ment”(OTM). Este parametro e particularmente util na descricao da heterogeneidade em

uma populacoes celulares, pois o OTM pode pegar variacoes na distribuicao do DNA na

cauda.

Collins et. al(1995) publicaram um metodo de pontuacao visual(”visual scoring”)

atraves do qual se pontua cada cometa, classificando-os em graus que vao de 0 a 4( Fig.

4.2). Dessa forma, se 100 cometas sao classificados em uma lamina, o seu “score” total

ficara entre 0 e 400 unidades arbitrarias.

Outra publicacao de destaque sobre a classificacao visual foi a de Kobayashi et al.(1995).

O sistema de “scoring” usado por eles agrupou os cometas em cinco estagios(Fig. 4.3).

No entanto, eles nao calculam o “score” total para cada lamina.

A quantificacao visual e um metodo rapido e simples, ao qual se deve recorrer para

explorar a utilidade do Teste Cometa, sem a necessidade de investir em equipamentos e

caros softwares de analise de imagens(COLLINS, 2004).

Page 28: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.2 Conceitos Basicos de Processamento de Imagens Digitais 28

Figura 4.3: Esquema de classificacao visual de cometas de Kobayashi et al. (1995). Cadacometa pode pertencer a uma dos cinco tipos de classes.

Cabe salientar que o “scoring” visual baseado em Collins et. al(1995) se tornou muito

popular em estudos de biomonitoramento e estudos de reparacao de DNA. Mais de 70

estudos de biomonitoramento se reportam ao dano de DNA usando o criterio de quanti-

ficacao visual (MOLLER, 2006).

4.2 Conceitos Basicos de Processamento de Imagens

Digitais

As imagens sao facilmente digitalizadas com as tecnologias existentes. Seja atraves de

uma simples camera fotografica digital ou de aparelhos de tomografia computadorizada,

pode-se capturar sinais contınuos e digitaliza-los para fins, como analise, arquivamento,

uma posterior visualizacao ou qualquer outro tipo de processo.

Nesse contexto, tem-se destacado o processamento digital de imagens(PDI). Apli-

cando operacoes de PDI, consegue-se nao apenas melhorar a qualidade da imagem para

a visao humana como tambem adapta-las para a analise de suas caracterısticas e estru-

turas presentes segundo Russ (1998). Como, normalmente, o processamento de imagens

envolve procedimentos que podem ser expressos de forma algorıtmica, a maior parte de

suas funcoes podem ser implementadas via software (FILHO, 1999).

A divisao das principais etapas do processamento de imagens segundo Gonzalez(2002)

sao apresentadas na figura 4.4.

4.3 Aquisicao de Imagem

A aquisicao de uma imagem e a primeira etapa no processamento de imagens. Para

realiza-la, necessita-se de um sensor e um digitalizador. A funcao do sensor sera o de

converter a imagem em sinal eletrico enquanto o digitalizador convertera a imagem ainda

no formato analogico para um sinal digital.

Page 29: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 29

Figura 4.4: Etapas mais comuns no processamento de imagens.

Para obter uma imagem de qualidade deve-se escolher de forma adequada os sensores,

o conjunto de lentes, as condicoes de iluminacao da cena, estabelecer os requisitos de

velocidade de aquisicao, a resolucao, a quantidade de cores, entre outros. No final desta

etapa, tem-se a imagem digitalizada(FILHO, 1999).

4.4 Pre-processamento

Nem sempre a imagem digitalizada e uma representacao precisa da cena capturada

ou mesmo util para uma analise. Essa imagem pode possuir pıxeis ruidosos, contraste e

brilho inadequados, fusao de objetos da cena com o fundo, inclinacao inadequada, etc.

Assim, o principal objetivo nesta etapa e preparar a imagem para futuras operacoes sobre

a mesma, aplicando melhoramentos em sua qualidade, como o realce de caracterısticas

relevantes, correcao de inclinacao e correcao de defeitos que possam ter ocorrido. Este

trabalho e realizado em baixo nıvel, ou seja, diretamente nos valores de intensidade dos

pıxeis(FILHO, 1999).

4.4.1 Correcao de Inclinacao

O algoritmo classificador de cometas depende da correta orientacao das caudas dos

cometas dentro das imagens adquiridas. Neste caso, ele espera que os cometas tenham

suas caudas voltadas para a direita. Dessa forma, se a imagem possuir seus cometas com as

Page 30: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 30

caudas voltadas para a esquerda, podera fatalmente ocorrer um grave erro, gerando uma

classificacao inadequada. Uma correcao da inclinacao da imagem podera ser necessaria

nessa etapa.

4.4.2 Limiarizacao

Quando a imagem e adquirida em nıveis de cinza, ela pode conter muitas informacoes

desnecessarias para a etapa de segmentacao. Logo, pode-se aplicar a tecnica de Limia-

rizacao para reduzir a quantidade de dados existentes na imagem e minimizar o ruıdo,

tendo como resultado uma imagem mais limpa.

A forma mais simples de Limiarizacao, a qual usa apenas um valor de limiar e conhe-

cida como Limiarizacao Global(GORMAN, 1995).

B(x,y) =

0 se f (x,y)≤< T

1 se f (x,y) > T(4.1)

De forma sucinta, pode-se dizer que a Limiarizacao Global( 4.1 ), conhecida tambem

por Binarizacao, gera uma imagem binaria B(x,y), a partir de, por exemplo, uma imagem

em tons de cinza f (x,y), usando um tom T para decidir qual pıxel passara para 0 e qual

passara para 1.

No exemplo a seguir, utiliza-se Limiarizacao para reduzir a quantidade de informacoes

na imagem.

(a) imagem original (b) Limiarizacao com T = 65

Figura 4.5: Exemplo de binarizacao como pre-processamento

Page 31: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 31

4.4.3 Subtracao de Imagens

A subtracao de duas imagens f (x,y) e g(x,y) e considerada uma operacao ponto-a-

ponto e pode ser denotada por

h(x,y) = f (x,y)−g(x,y) (4.2)

e e obtida pelo calculo da diferenca entre todos os pares de pıxeis de localizacoes

correspondentes de f e g.

4.4.4 Filtragem de Imagens

As tecnicas de filtragem de imagens digitais tem como objetivos(PEDRINI; SCHWARTS,

2008)

• Melhorar a qualidade de uma imagem( nitidez);

• Eliminar ruıdos;

• Pre-segmentar imagens;

• Eliminar ou provocar distorcoes;

• Criar efeitos artısticos.

Em resumo, a filtragem de imagem e usada para produzir imagens mais apropriadas

do que a imagem original para determinada aplicacao. Ela pode se dar tanto no domınio

espacial quanto no domınio da frequencia.

As filtragens no domınio espacial trabalham no proprio plano da imagem, isto e, sobre

seus pıxeis diretamente. Por outro lado, as tecnicas no domınio da frequencia sao baseadas

nas transformadas de Fourier das imagens(GONZALEZ; WOODS, 2002).

Apesar das filtragens no domınio da frequencia apresentarem uma boa resposta, os

algorıtmos de PDI contidos na metodologia desenvolvida durante este trabalho pertencem

ao domınio espacial. Por conseguinte, concentrar-se-a a fundamentacao teorica no mesmo,

a fim de proporcionar um melhor entendimento da metodologia desenvolvida.

Page 32: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 32

4.4.5 Filtragem no Domınio Espacial

No domınio espacial, o valor do pıxel resultante de uma filtragem depende do seu

valor original e do valor de sua vizinhanca. Os pontos mais proximos sao os que possuem

maior influencia sobre o ponto a ser modificado.

Funcoes de processamento de imagens no domınio espacial podem ser expressas como

g(x,y) = T [ f (x,y)] (4.3)

onde f (x,y) e a imagem de entrada, g(x,y) e a imagem processada, e T e um operador

sobre f , definido sobre alguma vizinhanca de (x,y).

O principal meio de realizar o processamento no domınio espacial e atraves da apli-

cacao de matrizes conhecidas como mascaras, cuja forma normalmente e quadrada, em

todos os pıxeis da imagem.

Assim, o novo valor para um pıxel na posicao (x,y) apos a aplicacao de uma mascara

com centro na mesma posicao, depende dos valores de seus pıxeis vizinhos e dos coeficientes

da mascara.

Se os nıveis de cinza de uma imagem sob a mascara forem denotados por zi = f (x,y),

1≤ i≤ 9, tem-se uma resposta da mascara

R =9

∑i=1

wizi (4.4)

em que wi representa os coeficientes da mascara.

Na filtragem no domınio espacial ha dois conceitos que merecem destaque: a correlacao

e a convolucao. Os filtros lineares, ou mascaras, sao geralmente descritos por matrizes de

convolucao.

Seja w o filtro de correlacao. Em geral, seleciona-se um filtro com numero ımpar de

elementos, tal que, durante seu deslocamento sobre a imagem, o centro do filtro esteja

localizado sobre o pıxel em consideracao na imagem.

A correlacao de uma imagem f de tamanho m×n por um filtro w pode ser expressa

como

w(x,y) · f (x,y) =m/2

∑i=[−m/2]

n/2

∑j=[−n/2]

w(i, j) f (x + i,y + j) (4.5)

Page 33: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 33

De forma similar a correlacao, a convolucao se baseia na aplicacao de um filtro w′

sobre a imagem. O filtro w′ e resultado uma reflexao, ou seja, uma rotacao de 180 graus,

do filtro w. Dessa forma, a convolucao de uma imagem bidimensional f por um filtro w′

e expressa por

w(x,y)∗ f (x,y) =m/2

∑i=[−m/2]

n/2

∑j=[−n/2]

w(i, j) f (x− i,y− j) (4.6)

Em caso de simetria no filtro, a correlacao e a convolucao sao identicas. A seguir,

serao apresentados alguns dos filtros mais importantes pertencentes ao domınio espacial,

como o filtro de Mediana e filtro de Gauss.

4.4.5.1 Filtros da Mediana

Os filtros de mediana, ou filtros passa-baixa, sao frequentemente usados para suavizar

imagens, reduzindo a variacao de intensidades entre um pıxel e seu sucessor. Isso, tambem,

ocasiona uma reducao no ruıdo.

1/9 1/9 1/91/9 1/9 1/91/9 1/9 1/9

Tabela 4.1: Mascara 3x3 frequentemente usada no filtro de mediana

A ideia deste filtro e substituir o pıxel atual pelo valor medio de intensidades de sua

vizinhanca, incluindo ele proprio(IMAGE PROCESSING LEARNING RESOURCES, ).

Ele tem o efeito de eliminar pıxeis com valores muito diferentes da media de sua vizinhanca,

reduzindo, assim, o ruıdo impulsivo( sal-e-pimenta).

4.4.5.2 Filtragem Gaussiana

O filtro de Gauss e um operador de convolucao bidimensional, muito similar ao filtro

de mediana, usado para suavizar as imagens e remover ruıdos.

Nesse tipo de filtro, os coeficientes da mascara sao derivados a partir de uma funcao

Gaussiana bidimensional. A funcao Gaussiana isotropica( circularmente simetrica) com

media zero e desvio padrao σ e definido como

G(x,y) =1

2πσ2 e(−(x2+y2)2σ2 )

(4.7)

Page 34: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 34

que e usada como um filtro de suavizacao. Um exemplo de grafico da distribuicao

gaussiana e mostrado na figura 4.4.5.2.

Figura 4.6: Distribuicao de Gauss em 2-D com media (0,0) e σ = 1 (IMAGE PROCES-SING LEARNING RESOURCES, )

O filtro de Gauss tem algumas propriedades matematicas interessantes:

• Ele e um filtro isotropico, ou seja, produz a mesma resposta em todas as direcoes

na imagem;

• Quanto maior o valor de σ , maior a largura do filtro Gaussiano e maior sera a

suavizacao;

• Funcoes Gaussianas sao separaveis, logo, uma convolucao Gaussiana pode ser reali-

zada processando a imagem com um filtro unidirecional e entao processando o resul-

tado com o mesmo filtro unidirecional orientado ortogonalmente ao filtro Gaussiano

usado na primeira etapa. Esse processo causa uma grande reducao no numero de

operacoes feitas na convolucao(PEDRINI; SCHWARTS, 2008).

Apesar do filtro Gaussiano ser capaz de suavizar as imagens, ele tambem borra as bor-

das das imagens. Esse problema e minimizado se for usado o filtro de Difusao Anisotropica

ao inves do filtro de Gauss.

4.4.5.3 Filtro de Difusao Anisotropica

As vezes deseja-se suavizar uma imagem digital preservando o maximo possıvel as

bordas das estruturas presente na mesma. No caso da suavizacao das imagens do Teste

Cometa, essa propriedade e fundamental, uma vez que desde de sua aquisicao as estru-

turas internas do cometas, como a cabeca e a cauda, ja possuem bordas mal definidas.

Um dos filtros mais destacados quando se procura suavizar uma imagem preservando as

Page 35: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 35

inter-regioes, e o filtro de Difusao Anisotropica. Chung e Shapiro(2000) aplicaram-no

para segmentar lesoes de pele em imagens digitais, cujas bordas deveriam sofrer a menor

degradacao possıvel.

Perona e Marlik( 1990) desenvolveram um filtro anisotropico formulado matematica-

mente como um processo de difusao, que privelegia a suavizacao intra-regional em vez da

inter-regional.

Assim, a suavizacao e vista como um processo de difusao que e suprimido ou parado

nas bordas pela selecao local de forcas de difusao adaptativa. Este processo pode ser

expresso por:

∂ tu(x, t) = div(c(x, t)∇u(x, t)) (4.8)

A forca da difusao e controlada por c(x, t). O x representa as coordenadas espaciais

(x,y) para um filtro em 2-D. Numa implementacao discreta, a variavel t e responsavel por

enumerar as iteracoes. A imagem de intensidades I(x, t) e denotada por u(x, t). A funcao

c(x, t) depende da magnitude do gradiente da imagem de intensidade. Ela e uma funcao

monotonicamente decrescente c(x, t) = f (|∇I(x, t)|), a qual basicamente torna as regioes

difusas e nao afeta os perımetros das localizacoes de alto gradiente.

Uma das equacoes de difusao propostas e adotadas utilizada nesta pesquisa foi:

c(x, t) = e

(( |∇I(x, t)|κ

))(4.9)

O coeficiente de difusao decresce com o aumento do gradiente. Se o gradiente adquire

um valor grande, supoe-se uma descontinuidade e a difusao e parada. O parametro κ

e escolhido de acordo com a quantidade de ruıdo e o brilho da borda. Para entender o

parametro κ e a o valor de descontinuidade 5I, definiu-se Φ(5I) como o produto c∗5I,

conhecido como fluxo. O maior fluxo e gerado em locais com o gradiente 5I igual a κ .

Quando abaixo de κ , o fluxo se reduz para zero porque em regioes homogeneas um fluxo

mınimo ou inexistente tem lugar. Acima de κ a funcao de fluxo e mais uma vez decremen-

tada a zero, parando a difusao em locais de alto gradiente. Uma escolha correta da funcao

de difusao nao apenas preserva as bordas como traz estabilidade numerica(CHUNG; SA-

PIRO, 2000).

A mudanca de intensidade a cada iteracao e definida como o somatorio da contribuicao

Page 36: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.4 Pre-processamento 36

dos fluxos entre a intensidade dos pıxeis vizinhos.

Para exemplificar, pode-se rescrever a equacao 4.8 para coordenadas de duas dimen-

soes como:

It = div(c(x,y; t)∇u(x,y; t)) = c(x,y; t)∇I + ∇c ·∇I (4.10)

Onde div e o operador divergente, 5 e 4 representam os operadores gradiente e

Laplaciano, respectivamente, com respeito a variavel espacial. A equacao (4.10) se reduz

a equacao isotropica de difusao do calor It = c ·4I se c(x,y; t) for uma constante.

Assim, a difusao na qual o coeficiente de conducao e escolhido localmente como uma

funcao de magnitude do gradiente da funcao de brilho preservara e delineara o brilho das

bordas se a funcao g(·) for escolhida apropriadamente(MIRANDA; NETO, 2007).

c(x,y, t) = g(||5I(x,y; t)||) (4.11)

A equacao (4.10) pode ser discretizada em um reticulado quadrado, ou vizinhanca-4,

com valores de brilho (pıxels) associados aos vertices e os coeficientes de conducao aos

arcos. Uma discretizacao dos 4-vizinhos do operador Laplaciano pode ser usado:

It+1i, j = It

i, j + λ [cN ·δNI + cS ·δSI + cL ·δLIcO ·δOI]ti, j (4.12)

onde 0 ≤ λ ≤ 14 para fornecer estabilidade ao esquema numerico. N,S,L,O sao os

mnemonicos para Norte, Sul, Leste e Oeste. os sobrescritos e super-escritos nos colchetes

sao aplicados a todos os termos que eles circunscrevem, e o sımbolo δ indica as diferencas

dos vizinhos mais proximos, dadas por:

δNIi, j ≡ Ii, j+1− Ii, j+1

δSIi, j ≡ Ii, j+1− Ii, j+1

δLIi, j ≡ Ii, j+1− Ii, j+1

δOIi, j ≡ Ii, j+1− Ii, j+1

(4.13)

O valor do gradiente pode ser calculado em diferentes estruturas de vizinhanca, con-

seguindo diferentes resultados entre precisao e localidade. A escolha mais simples consiste

em aproximar a norma do gradiente a cada localizacao de arco com o valor absoluto de

Page 37: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 37

sua projecao ao longo da direcao do arco:

cti, j = g

(∣∣∣∇NIti, j

∣∣∣)ct

i, j = g(∣∣∣∇SIt

i, j

∣∣∣)ct

i, j = g(∣∣∣∇LIt

i, j

∣∣∣)ct

i, j = g(∣∣∣∇OIt

i, j

∣∣∣)(4.14)

Segundo Miranda et al(2007), esse esquema nao e a discretizacao exata de (4.10),

mas da equacao de difusao similar na qual o tensor de conducao e diagonal com valores

de entrada g(|Ix|) e g(∣∣Iy∣∣) em vez de g(||Ix||) e g(

∣∣∣∣Iy∣∣∣∣). Esse esquema de discretizacao

preserva a propriedade das equacoes contınuas (4.10) de que a quantidade total de brilho

na imagem e preservada.

4.5 Segmentacao de Imagens

Um dos primeiros no processamento de uma imagem digital e o de criar particoes

da mesma atraves de seus elementos consituıntes (GONZALEZ; WOODS, 2002). Esses

elementos sao caracterizados por propriedades intrınsecas da imagem como intensidade

media dos pıxeis, contraste ou textura. Tal processo e conhecido como segmentacao e

representa o menor nıvel no qual o entendimento de uma imagem possa ser baseado. A

segmentacao e capaz de resumir todos os objetos distintos que compoem uma imagem, o

que a torna muito valiosa para extracao de informacoes.

Os algoritmos de segmentacao para imagens monocromaticas sao geralmente baseados

em uma das seguintes propriedades basicas de valores de nıveis de cinza: descontinuidade

e similaridade. Na descontinuidade a abordagem e particionar a imagem baseado em

mudancas bruscas nos nıveis de cinza. As principais areas de interesse sao a deteccao de

pontos isolados, deteccao de linhas e bordas na imagem(BASTOS, ). Na similaridade as

principais abordagens baseiam-se em limiarizacao e crescimento de regioes.

4.5.1 Deteccao de Descontinuidades

Em PDI, a deteccao de descontinuidades sao metodos utilizados para salientar a loca-

lizacao de bordas ou objetos dentro das imagens. A transformada de Hough, por exemplo,

foi aplicada para localizar o ponto central das cabecas dos cometas neste trabalho5.8.1.

Page 38: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 38

4.5.1.1 Transformada de Hough

A forma original da transformada de Hough foi desenvolvida por Paul Hough, em

1962. A transformada e muito usada na deteccao e um conjunto de pontos na imagem que

pertencam a uma curva especıfica, tal como segmentos de retas, circunferencias, elipses,

entre outros objetos parametrizaveis. Essas curvas constituem uma famılia representada

por:

f (v, p) = 0 (4.15)

em que v e um conjunto de coordenadas e p e um vetor de parametros caracterısticos da

curva.

Atraves de um conjunto de procedimentos, a transformada de Hough busca encontrar

um subconjunto de pontos que pertencam a curva especificada.

O conceito basico e computar a localidade, no espaco de parametros, para um con-

juntos de curvas passando atraves de cada elemento de borda candidato na dada imagem.

O espaco de parametros e quantificado em celulas, e um acumulador e associado a cada

celula.

O conteudo do acumulador de cada celula referenciado por cada locus e incrementado

por 1. Os acumuladores a que forem atribuıdos os maiores valores representam a localiza-

cao mais provavel da curva procurada. Os acumuladores com o maior conteudo resultante

determinar a existencia e a localizacao das curvas mais provavel, a partir de determinada

classe, no dada imagem (SKLANSKY, 1978).

4.5.1.2 Deteccao de Circunferencias pela Transformada de Hough

A transformada de Hough para Circunferencias consiste em encontrar um conjunto

de pontos que pertencam a uma mesma circunferencia.

Num sistema de coordenadas cartesianas, uma circunferencia pode ser descrita pela

equacao 4.16

(x−a)2 +(y−b)2 = r2 (4.16)

em que (a,b) sao as coordenadas do centro e r e o raio.

Page 39: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 39

Para cada pıxel (x,y), a celula de acumulacao (a,b,r) e incrementada se o ponto (a,b)

estiver a distancia r do ponto (x,y). Se um centro especıfico (a,b) de uma circunferencia de

raio r e frequentemente encontrado no espaco de parametros, ha uma grande probabilidade

de existir uma circunferencia de raio r e centro (a,b) na imagem(PEDRINI; SCHWARTS,

2008). Os tons elevados no espaco de parametros mostrarao a localizacao dos centros das

circunferencias no plano da imagem.

Para calcular todos os valores de (x,y) para um determinado ponto(a,b) a equacao 4.16

nao e muito utilizada, pois sua parametrizacao em funcao de (a,b) nao produz, diretamete,

implementacoes eficientes(PISTORI; PISTORI; COSTA, 1998).

Tambem e possıvel descrever uma circunferencia atraves de equacoes parametricas

usando funcoes trigonometricas.

x = a + rcosθ

y = b + rsenθ

(4.17)

A forma de coordenada polar e a mais usada( eq. 4.17) e a resolvendo para os para-

metros da circunferencia tem-se

a = x− rcosθ

b = y− rsenθ

(4.18)

Assim, se o raio da circunferencia for previamente conhecido, entao e necessario in-

crementar o acumulador para o ponto (a,b) dado pelas equacoes 4.17 e 4.18. Nesse caso,

circunferencias de raio r poderao ser detectadas a cada aplicacao do algoritmo.

4.5.1.3 Deteccao de Bordas

A deteccao de bordas e uma tecnica que procura realcar os pontos de uma imagem

digital em que a intensidade luminosa muda abruptamente. Uma borda pode ser des-

crita como uma descontinuidade nos nıveis de cinza entre duas regioes suficientemente

homogeneas de uma imagem.

As tecnicas mais utilizadas para a deteccao de bordas sao baseadas na aplicacao de

operadores de derivacao, como os operadores de gradiente. Isso porque o calculo da media

dos pıxels sobre uma regiao tende a borrar uma imagem. Assim como o calculo da media

e analogo a integracao, pode-se esperar que a diferenciacao tenha o efeito oposto, ou seja,

Page 40: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 40

(a) dados originais no espaco (x,y) (b) correnspondente celulas de acu-mulacao no espaco (a,b)

Figura 4.7: Deteccao de circunferencias por meio da transformada de Hough.

ele aguca a imagem(GONZALEZ; WOODS, 2002).

4.5.1.4 O Operador de Sobel

O operador de Sobel, ou filtro Sobel como tambem e conhecido, calcula o gradiente

da intensidade da imagem em cada ponto, dando a direcao da maior variacao de claro

para escuro e a quantidade de variacao nessa direccao.

Para uma imagem f (x,y) define-se o gradiente f nas coordenadas (x,y) como o vetor:

5 f =

[Gx

Gy

](4.19)

5 f =

[∂ f∂x∂ f∂y

](4.20)

Sabe-se a partir da analise vetorial que o vetor gradiente aponta na direcao de mudanca

mais rapida de f na posicao (x,y). Em deteccao de bordas, a magnitude desse vetor e

uma quantidade importante, geralmente chamada simplesmente de gradiente e denotada

por 5 f , em que:

5 f = mag(5 f ) = [G2x + G2

y ]12 (4.21)

Essa quantidade equivale a maior taxa de aumento de f (x,y) por unidade de distancia

Page 41: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 41

na direcao de 5 f . Normalmente, aproxima-se o gradiente com valores absolutos:

5 f = |Gx|+ |Gy| (4.22)

que e muito mais simples de ser implementada(GONZALEZ; WOODS, 2002).

Ja as mascaras que definem o operador de Sobel sao implementadas como:

Gx =

−1 0 1

−2 0 2

−1 0 1

(4.23)

Gy =

−1 −2 −1

0 0 0

1 2 1

(4.24)

Matematicamente este operador utiliza duas matrizes 3 x 3 que sao convoluıdas com

a imagem original para calcular aproximacoes das derivadas - uma para as variacoes

horizontais e uma para as verticais.

A magnitude(G) e o angulo de orientacao do gradiente(θ ) sao dados respectivamente

por:

G =√

G2x + G2

y (4.25)

e

θ(x,y) = arctan(

Gy

Gx

)(4.26)

As mascaras sao deslocadas ao longo da imagem. Assim, tem-se como resultado uma

imagem de gradiente com o mesmo tamanho da imagem original.

4.5.2 Limiarizacao

Uma das tecnicas mais simples de segmentacao de imagens digitais e a limiarizacao.

Ela consiste em utilizar um ou mais limiares para classificar os pıxeis da imagem. A maior

parte das tecnicas de limiarizacao e baseada no uso de histogramas.

Page 42: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.5 Segmentacao de Imagens 42

Figura 4.8: Histograma bimodal.

4.5.2.1 Limiarizacao Global

Se uma imagem em tons de cinza f (x,y) apresentar dois picos bem definidos em seu

histograma(histograma bimodal), a limiarizacao sera trivial, pois se procurara repartir os

pıxeis no valor T encontrado no vale entre os picos. Assim, cada ponto de f (x,y) > T e

denominado ponto de objeto, enquanto os outros sao ditos pontos de fundo. Neste caso,

onde a imagem e dividida em apenas duas classes, o processo e conhecido como binariza-

cao. A imagem binaria resultante B(x,y) pode ser definida como em 4.1. Normalmente,

os valores usados para o fundo e para o objeto sao 0 e 1 respectivamente.

Ainda, pode-se utilizar diversos valores de limiares, atribuindo um tom de cinza para

cada classe de objetos( intervalo de limiar). Esse processo de segmentar a imagem inteira

apenas com um valor de limiar e conhecido como limiarizacao global.

4.5.2.2 Limiarizacao Global Iterativa

Quando nao ha informacoes claras do comportamento de determinado objeto a ser

segmentado na imagem, uma abordagem de limiarizacao adaptativa pode ser utilizada.

Algumas tecnicas determinam o valor do limiar por meio da otimizacao de certas

medidas de separacao entre as classes de objetos na imagem. A minimizacao de erros na

segmentacao entre as classes e uma tecnica bastante utilizada nesses casos. Assim, um

metodo para selecionar iterativamente o valor de limiar e reduzi-lo, contando o numero de

pıxeis ruıdosos iterativamente, ate encontrar uma quantidade de pıxeis ruıdosos proxima

a esperada. Essa tecnica foi utilizada por Bocker et al.(BOCKER et al., 1999) para

segmentar imagens de cometas em imagens digitais de ensaios cometas.

Ridler e Calvard(1978) propuseram um metodo para selecionar iterativamente o valor

do limiar baseado na combinacao de duas distribuicoes Gaussianas. Partindo de um valor

de limiar inicial, o metodo busca melhorar esse valor com base na media de tons de cinza

do objeto (µ1) e do fundo(µ2). O processo de refinamento para quando nao houverem

Page 43: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.6 Morfologia Matematica 43

mais alteracoes significativas entre as iteracoes, ou seja, quando a diferenca |Ti− Ti+1|entre os limiares T nas iteracoes i e i + 1 torna-se muito pequena.

4.6 Morfologia Matematica

A morfologia matematica e uma metodologia para analise de imagens digitais nascida

na decada de 60, na Franca, na Escola de Minas de Paris. Foi concebida para tratar

somente imagens binarias mas ao londo do tempo foi estendida para imagens em nıveis

de cinza.

Ela permite a construcao de operadores morfologicos uteis para a descricao de objetos

em imagens. Alem disso, os operadores morfologicos sao utilizados em uma serie de

aplicacoes como extracao de bordas de objetos, delimitacao de fecho convexo, busca de

padroes especıficos na imagem entre muitas outras.

A ideia central por tras da morfologia matematica e extrair as informacoes relati-

vas a geometria e a topologia de um de uma imagem, que e visto como um conjunto

desconhecido, pela transformacao atraves de elementos estruturantes.

Os elementos estruturantes sao bem-definidos e conhecidos( forma e tamanho). O ele-

mento estruturante e comparado por meio de uma transformacao ao conjunto em analise.

Os resultados obtidos pela transformacao permitem avaliar o conjunto desconhecido.

Figura 4.9: Representacao de uma imagem binaria.

A teoria dos conjuntos e usada para representar a forma dos objetos em uma ima-

gem. Convencionalmente, os pıxeis pretos sao representados por 0 e os brancos, por 1.

Assim, uma imagem binaria pode ser vista como uma colecao de coordenadas discretas

que pertencam aos objetos na imagem. Pode ser expressa por {(x,y)| f (x,y) = 1}.

Esse conjunto e definido no espaco bidimensional dos inteiros. A imagem binaria

exemplificada pela figura 4.9 e representada pelo conjunto

A = {(1,1),(1,0),(1,0),(2,1),(2,2),(3,1),(3,2),(3,3),(3,4)}.

Page 44: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.6 Morfologia Matematica 44

4.6.1 Operadores Mofologicos em Imagens Binarias

Alguns operadores morfologicos basicos serao mostrados a seguir, os quais servem de

base para operadores mais complexos usados em diversos algoritmos em processamento

de imagens.

4.6.1.1 Dilatacao e Erosao

A dilatacao nada mais e do que a combinacao de dois vetores por meio da soma

vetorial de seus elementos, como na adicao de Minkowski, ou seja:

D(A,B) = A⊕

B =⋃b∈B

(A + B) (4.27)

Onde, tipicamente, A e uma imagem e B, um elemento estruturante, que representa

alguma caracterıstica de forma que se deseja avaliar.

A dilatacao e capaz de encolher uma imagem. Por exemplo, seja A = {(1,2),(3,2)} e

B = {(0,0),(4,1)} entao o resultado de uma operacao de dilatacao e:

A⊕

B = {A +{(x1 ∈ B)}⋃

A +{x2 ∈ B}A⊕

B = (1,2),(7,2),(3,3)

Ja a erosao binaria tem a propriedade de encolher uma imagem. Ela pode ser vista

como uma operacao de subtracao vetorial entre os elementos de dois conjuntos, desde

que o resultado continue contido em um desses conjuntos. A dilatacao e a erosao nao

sao operacoes inversas uma da outra. Para conjuntos A e B, a erosao de A por B(AB),

define-se como

AB = {x|(B)x ⊆ A} (4.28)

A equacao 4.28 mostra que a erosao de A por B nada mais e do que a translacao(eq.

4.29) de todos os pontos x tais que B, quando transladado por x, fique contido em A. A

translacao, por sua vez, e denotada por (A)x e e definida como

(A)x = {c|c = a + x,para a ∈ A} (4.29)

sendo A e B conjuntos de Z2, como componentes a = (a1,a2) e b = (b1,b2), respecti-

vamente.(GONZALEZ; WOODS, 2002)

Page 45: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

4.7 Reconhecimento e Interpretacao 45

4.6.1.2 Abertura e Fechamento

Apesar da dilatacao e da erosao nao serem operacoes inversas, enquanto a primeira

expande uma imagem a segunda a diminui. As duas operacoes combinadas dao lugar a

outras operacoes morfologicas como a abertura e o fechamento.

Em geral, a abertura e usada quando se procura suavizar os contornos de uma imagem.

Ela consiste em aplicar uma erosao seguida de uma dilatacao atraves do mesmo elemento

estrutural. Sua principal aplicacao, como seria de se esperar, e criar espaco( abertura)

entre objetos de uma imagem e remover pıxeis ruıdosos do fundo.

Por outro lado, o fechamento consiste em aplicar uma erosao uma dilatacao seguida

de uma erosao, mantendo, tambem, o mesmo elemento estrutural para as duas operacoes

sucessivas. O fechamento tambem tende a suavizar os contornos mas, em oposicao a

abertura, geralmente funde as quebras em vaos finos, elimina pequenos buracos e preenche

fendas em um contorno. (GONZALEZ; WOODS, 2002)

A abertura de um conjunto A por um elemento estruturante B, A◦B, e definida como:

A◦B = (AB)⊕B (4.30)

e o fechamento do conjunto A pelo elemento estruturante B , denotado por A •B,

define-se como

A•B = (A⊕B)B (4.31)

4.7 Reconhecimento e Interpretacao

A cada um dos objetos gerados pela etapa de segmentacao e assignado um rotulo,

o que caracteriza o processo de reconhecimento. A interpretacao, por outro lado, tenta

atribuir um significado a cada um, ou mesmo, ao conjunto de objetos segmentados. No

caso das imagens do Teste Cometa, poder-se-ia diferenciar as estruturas dizendo que os

objetos menores do que tres pıxeis sao ruıdo, enquanto os objetos maiores e proximo da

localizacao central da cabeca fazem parte do cometa, sendo apenas fragmentos de DNA.

Essa diferenciacao e um exemplo de interpretacao.

Page 46: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

46

5 Metodologia

5.1 Ferramenta de Desenvolvimento

O prototipo funcional para testar a metodologia foi desenvolvido utilizando a ferra-

menta MATLAB, da empresa The Mathworks (http://www.mathworks.com/).

O MATLAB (MATrix LABoratory) e um software interativo de alta performance

especializado para o calculo numerico. O MATLAB integra analise numerica, calculo com

matrizes, processamento de sinais e construcao de graficos em ambiente um facil de usar

onde problemas e solucoes sao expressos somente como eles sao escritos matematicamente,

ao contrario da programacao tradicional.

O MATLAB e um sistema interativo cujo elemento basico de informacao e uma matriz

que nao requer dimensionamento. Esse sistema permite a resolucao de muitos problemas

numericos em apenas uma fracao do tempo que se gastaria para escrever um programa

semelhante em linguagem Fortran, Basic ou C. Alem disso, as solucoes dos problemas sao

expressas quase exatamente como elas sao escritas matematicamente(WIKIPEDIA, ).

Sua escolha se deve ao fato do MATLAB conter um robusta biblioteca de processa-

mento de imagens e estatısticas. Com isso, a velocidade de implementacao do prototipo

foi reduzida substancialmente.

5.2 Passos no Domınio do Processamento de Imagens

A metodologia desenvolvida seguiu os passos classicos de um sistema de processamento

de imagens (PDI) do domınio espacial(GONZALEZ; WOODS, 2002). Utilizaram-se fil-

tros, operacoes morfologicas, alem de tecnicas segmentacao de imagem com o intuito de

extrair informacoes relevantes para classificar os cometas atraves de informacoes geome-

tricas.

O processamento, que inclui a segmentacao e a extracao de caracterısticas, da cabeca

Page 47: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.3 Aquisicao de Imagem 47

e do cometa se da deforma separada. Isso permite que o algoritmo seja implementado de

forma paralela em alguns trechos. As principais etapas estao ilustradas na figura 5.1 e

serao suas descricoes serao aprofundadas nas proximas sessoes.

Figura 5.1: Diagrama simplificado da metodologia.

5.3 Aquisicao de Imagem

As imagens utilizadas neste trabalho sao imagens microscopicas de culturas celulares

de fibroblastos( macaco Resus) cedidas pelo Laboratorio de Virologia Aplicada da UFSC.

Para a aquisicao das imagens, utilizou-se um microscopio de fluorescencia Olympus

BX40 com filtro de excitacao 515-560nm e filtro de barreira de 590nm. Inicialmente,

efetuou-se uma varredura da lamina com um aumento de 400x. Para a classificacao dos

cometas, segundo Silva et AL.(1996) as imagens foram visualizadas com aumentos de

1000x e 4000x. As imagens digitais foram capturadas em amostras de 2048x1536 pıxeis

no formato JPEG e espaco de cor RGB.

Em seguida, foram convertidas para imagens de 8-bits, em 256 nıveis de cinza.

Page 48: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.4 Definicao da Regiao de Interesse 48

Figura 5.2: Microscopio Olympus BX40.

5.4 Definicao da Regiao de Interesse

O algoritmo desenvolvido recebe uma imagem como parametro. Contudo, o usuario

do prototipo pode abrir uma imagem e dentro dela selecionar uma regiao que contenha o

cometa a ser classificado. A regiao selecionada e conhecida como regiao de interesse(ROI).

Assim, fica a cargo do usuario definir a regiao de interesse dentro da imagem original, a

qual pode conter varios cometas( normalmente mais de 50) onde esta localizado o cometa

a ser classificado. Esse processo envolve a selecao manual de uma area retangular ou

atraves de um clique do mouse sobre a zona a ser classificada, a qual sofrera diversos

melhoramentos a fim de realizar a classificacao.

Se o usuario optar pelo metodo de clicar sobre o cometa a area de interesse sera

definida como um retangulo como canto superior esquerdo localizado em 2 vezes o diame-

tro da cabeca(Dcabeca), o diametro e o dobro do raio especificado, a esquerda do centro

da cabeca(Ccabeca)e 2×Dcabeca acima de Ccabeca. Seu canto inferior direito localiza-se a

4×Dcabeca para a direita de Ccabeca e 2×Dcabeca para baixo.

5.5 O Problema dos Cometas em Forma de Nuvem

A cabeca do cometa e caracterizada por uma distribuicao circular de material genetico

altamente concentrado. Por sua vez, a cauda e formada pelo padrao migratorio dos

fragmentos de DNA ao longo da lamina.

Page 49: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.5 O Problema dos Cometas em Forma de Nuvem 49

Na analise visual, os cometas sao classificados pelos especialistas com base na relacao

de proporcao entre a cabeca e a cauda, e pela concentracao de material genetico na cabeca

do cometa. Se houver uma baixa concentracao de DNA na regiao da cabeca, ou seja, se o

cometa apresenta a forma de uma nuvem, ele sera classificado como classe 4 (COLLINS;

AG; SJ, 1995).

Pela analise exclusivamente geometrica, o que se faz e ver, por exemplo, quantas

vezes a cauda do cometa e maior do que a cabeca. Com essa informacao, classifica-

se o mesmo em uma das cinco classes ja apresentadas. A figura 5.3 mostra como o

software Komet(TM) define o cometa e suas estruturas(INDUSTRIAL TOXICOLOGY

RESEARCH CENTRE, ).

Figura 5.3: Uma tıpica analise mostrando o cometa com sua cabeca( head), cauda( tail)e o fundo( background) da regiao de interesse.

Do ponto de vista de computacional, o que se deseja e saber onde esta a cabeca do

cometa e qual e o seu diametro, uma vez que este nem sempre e igual a duas vezes o raio

estimado pelo usuario. Tambem, e preciso localizar os pontos extremos das caudas dos

cometas. Contudo, a classe quatro (Fig. 5.4) nao possui uma cabeca, o que torna difıcil

sua caracterizacao muito difıcil dentro dessa abordadem.

Esses problemas colocam os cometas em forma de nuvem fora da capacidade de medi-

cao dos sistemas baseados em analise de imagem ou, quando analisadas por eles, podem

gerar medicoes inadequadas. Nuvens sao, portanto, classificadas apenas pela analise vi-

sual, i.e., por especialistas.

Segundo eles, a identificacao precisa das nuvens vem com a pratica e experiencia; por

conseguinte, e importante que as nuvens sejam identificadas corretamente, enquanto o

“scoring”(pontuacao) das laminas seja feita utilizando sistemas de analise de imagens.

O ideal e que a classificacao dos cometas da classe 4 seja feita de forma visual e

contabilizada pelo sistema de analise de imagens(KUMARAVEL et al., 2007).

Em sua pesquisa, que envolveu a avaliacao genotoxicidade em celulas mamarias, Maria

et al.(2007) contaram o numero de nuvens manualmente(visualmente) em cada lamina.

Page 50: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.6 Pre-processamento 50

Figura 5.4: Cometa da classe 4. Nao possui cabeca.

A porcentagem de nuvens foi usada como um parametro potencial de medida de genoto-

xicidade, possivelmente representando celulas mortas.

5.6 Pre-processamento

As imagens microscopicas sao ruidosas e frequentemente tem muita variacao no fundo,

tornando difıcil sua analise. Por isso e necessario limpa-las antes da etapa de segmentacao.

A aplicacao de um filtro Gaussiano reduz significativamente o ruıdo.(NANDY; GUDLA;

LOCKETT, 2007).

A fim de realizar a suavizacao e eliminacao de parte do ruıdo da imagem de entrada,

denotada por Isource, passou-se um filtro Gaussiano com kernel de 7 e σ = 5 na mesma,

gerando uma nova imagem(Igauss f iltered). Com isso houve uma grande reducao do ruıdo.

Contudo, perdeu-se parte das informacoes de borda das cabecas dos cometas.

Sendo assim, como somente a segmentacao da cabeca do cometa depende da reducao

do ruıdo e suavizacao da imagem de entrada, optou-se por inserir um filtro de difusao

anisotropica nesta etapa do algoritmo de busca radial usado para segmentar a cabeca,

cujo detalhamento sera dado mais adiante.

5.7 Segmentacao do Cometa atraves de Tecnicas Ba-

seadas em Limiarizacao Adaptativa com Recons-

trucao

Para obter resultados mais confiaveis, a medicao dos danos de DNA deve ser restrita

unicamente aos cometas; quaisquer outros tipos de objetos (denominados artefatos), como

pedacos de cometas anexados por engano, artefatos coloridos no gel, etc., devem ser

rejeitados(BOCKER et al., 1999).

Nesse sentido, o primeiro passo e transformar a imagem original, em nıveis de cinza,

Page 51: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao51

(a) Cometa Classe 1 com baixocontraste.

(b) Cometa Classe 0 com bom con-traste.

Figura 5.5: Imagens com contrastes diferentes

para uma imagem binaria. Esta etapa requer muita atencao, uma vez que ela podera

produzir diversos erros, como uma imagem totalmente preta, na qual deveria haver pelo

menos um cometa.

Nos experimentos realizados, observou-se que a binarizacao ficou mais precisa quando

o objeto possuıa um alto contraste (5.5b). Por outro lado, quando a cauda do cometa

nao possuıa contraste com o fundo ou o tinha muito baixo, a dificuldade para obter uma

imagem binaria de maior qualidade aumentou (5.5a).

Analise de histograma, maximizacao de entropia, agrupamento por k-medias, dentre

outras tecnicas estatısticas, tiveram resultados pouco satisfatorios devido ao alto volume

de ruıdo no fundo das imagens dos cometas. Metodos baseados em contornos tambem

falharam por causa do baixo contraste(BOCKER et al., 1999).

Bocker et al.(1999) obtiveram bons resultados na segmentacao dos cometas. Eles

desenvolveram uma metodologia para automatizar todo o processo do Teste Cometa, ou

seja, desde a aquisicao da imagem diretamente do microscopio eletronico ate a extracao

de varias caracterısticas.

Seus experimentos segmentaram celulas de linfocitos sanguıneos humanos perifericos,

sem estımulos, de doadores saudaveis. Tais celulas foram isoladas usando a tecnica Ficoll-

Hypaque. As imagens do Teste Cometa capturadas de um microscopio eletronico (250x

de magnitude microscopica, 25x de objetiva fluotar, 0.7 de abertura na objetiva) foram

colhidas em amostras de 768 x 576 pıxeis com quantidade de intensidade de 1,024 nıveis

de cinza (10 bits).

Seu sistema apresentou uma sensibilidade de 95,2% e uma especificidade de 92,7%

quando testado em amostras de um trabalho rotineiro com dano de DNA por radiacao

Page 52: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao52

Figura 5.6: Imagens em nıvel de cinza de linfocitos humanos cometas capturados comuma camera de intensidade. Esquerda: Controle amostra. Direita: irradiados com 2 Gy.

de baixa-dose(0-2 Gy). O hardware e software paralelos os habilitaram a analisar uma

lamina com 100 cometas em menos de 15 minutos.

Tendo em vista que o problema de segmentar os cometas nas imagens digitalizadas do

Teste Cometa que este trabalho enfrenta e muito similar ao Bocker et al. se depararam,

adotou-se sua metodologia, a qual foi implementada com sucesso e sera discutida a seguir.

A tecnica adotada para segmentar os cometas e constituıda de dois passos. No pri-

meiro passo, uma limiarizacao global, t1, e determinada pela contagem dos pıxeis ruidosos

dependentes da limiarizacao presentes na imagem binaria. Bocker et al. assumiram que o

fundo da imagem proveniente da camera possui pıxeis ruidosos numa distribuicao Gaus-

siana( fig. 5.7). Dependendo do limiar escolhido, a quantidade de pıxeis ruidosos que

aparecem dispersos no fundo da imagem binarizada pode variar. Utilizando-se um limiar

muito reduzido, a imagem binarizada torna-se ruıdosa e apresenta um aumento drastico

no numero de objetos(NO).

Bocker et al. definem os objetos como pıxeis isolados, isto e, pıxeis com nıveis dife-

rentes de 0(preto) com sua 8-vizinhanca formada por pıxeis 0. Eles caracterizam os pixels

isolados como ruıdo. Logo, torna-se evidente que o numero de objetos ruidosos e depen-

dente do limiar escolhido (5.7). Uma explosao no numero de objetos com o decremento

do limiar indica a ocorrencia de pıxeis ruidosos na correspondente imagem binaria.

O processo de segmentacao do cometa inicia-se estimando um valor de limiar sufi-

cientemente alto. Normalmente, escolhe-se o maior valor de nıvel de cinza da imagem,

para garantir que o calculo de NO tenha inıcio do lado direito da cauda do histograma da

imagem (Fig. 5.7).

Page 53: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao53

(a) Estruturas de cometas obtidas a partir delinfocitos humanos (irradiados com 2 Gy) aposeletroforese em gel em um campo eletrico fraco.Os DNAs dos nucleos celulares foram marcadoscom um corante fluorescente (iodeto de propıdio).A imagem foi tirada com um microscopio de fluo-rescencia, utilizando uma camera de imagem emtons de cinza. A extensao da cauda do cometa edependente da quantidade dos danos no DNA ce-lular. Apos a coloracao as laminas devem ser ana-lisadas no mesmo dia para evitar degradacao naqualidade da imagem. Cometas mostrados aquiforam corados dois dias antes da analise e arma-zenados em um frigorıfico a 4 graus Celsius parademonstrar a perda no contraste da imagem e deuma degradacao na forma dos cometas. Nota:Em contraste com esta, ver Figura 5.6, onde aanalise foi realizada duas horas apos a coloracao.

(b) Perspectiva tridimensional da distribuicaode intensidade da fluorescencia dos cometas emA. Nota: a cauda do cometa esta espalhada aolongo do fundo. O pre-processamento da imagemtem que tornar confiavel a deteccao dos limitesdo cometa para o calculo global da intensidadeda fluorescencia.

Figura 5.7: Distribuicao Gaussiana do ruıdo no fundo da imagem do Teste Cometa (BOC-KER et al., 1999)

Em seguida, o valor do limiar e sucessivamente reduzido enquanto o NO e calculado. O

processo para quando o NO atinja uma quantidade previamente estabelecida ou quando

o limiar da proxima iteracao seja igual a zero, caso em que a segmentacao do cometa

falhara inquestionavelmente.

As experiencias com diferentes imagens de cometas revelaram a Bocker et al.(1999)

que para as imagens utilizadas por eles um limiar sera adequado quando o NO encontrado

estiver proximo de 300. Para o domınio de imagens analisadas neste trabalho, no entanto,

um limiar global util e encontrado quando NO excede quinze objetos ruidosost = 15 (fig.

5.1). Contudo, e possıvel alterar o valor de NO t para se obter melhores resultados em

cada imagem. O limiar encontrado nesta etapa e usado como base para a proxima fase

do procedimento.

A segunda parte do metodo tenta tornar mais confiavel a segmentacao e visa extrair

a transicao de baixo contraste entre as estruturas do cometa e o fundo da imagem.

Page 54: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao54

Figura 5.8: Dependencia do numero de obje-tos(NO) dentro da imagem binaria sobre limiar se-lecionado.(BOCKER et al., 1999). O decrescimentono NO para baixos limiares e resultado da fusao dosobjetos.

Figura 5.9: Metodologia para segmentacao do cometa.

Rivest el al. (1996) desenvolveram uma tecnica para medir automaticamente a cauda

das imagens do Ensaio Cometa. Apos a demarcacao da localizacao do cometa na imagem,

eles filtram a imagem do cometa com uma operacao morfologica de fechameto atraves de

uma estrutura vertical de 11 pıxeis de comprimento, seguido por outro fechamento com

uma matriz de 5 x 5. Finalmente, as bordas foram progressivamente refinadas atraves da

transformacao de watershed.

Ja Bocker et al.(1999) utilizam uma limiarizacao adaptativa para melhorar a quali-

dade da segmentacao resultante. O procedimento executado neste passo ficou conhecido

como limiarizacao com “reconstrucao”. Ele e baseado na limiarizacao com tolerancia por

comparacao com histerese.

Page 55: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao55

imagem original T = 6, NO = 60

T = 13, NO = 15 T = 16, NO = 10

Tabela 5.1: A ocorrencia de pıxeis ruidosos e usado para calcular o limiar otimo.

Figura 5.10: Resultado final da segmentacao dos cometas pelo metodo desenvolvido porRivest et al.(1996)

Foi possıvel implementar a limiarizacao com “reconstrucao” usando um pouco de heu-

rıstica e se baseando na limiarizacao com tolerancia por comparacao com histerese, como

e mostrado a seguir.

Seja I(x,y) a imagem de entrada em tons de cinza, O(x,y) a imagem binaria de saıda,

e t1 e t2 dois tons de cinza, onde t1 denota o limiar determinado na primeira etapa e t2 e

empiricamente definido como t2 = t1−2;

Assim,

O(x,y) = 1,Se I(x,y) > t1 ( area retida)

O(x,y) = 0,Se I(x,y) < t2 ( area rejeitada)

Page 56: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.7 Segmentacao do Cometa atraves de Tecnicas Baseadas em Limiarizacao Adaptativa com Reconstrucao56

Se t2 <= I(x,y) <= t1

O(x,y) = 1 se os pontos estao conectados com a area retida

O(x,y) = 0 caso contrario

(5.1)

Um esboco do algoritmo para a segunda parte do metodo implementado pode ser

visto na figura 5.11.

Func~ao g = Limiarizac~aoComReconstruc~ao( f, t1)

t2 = t1 - 2;

para i = 1 ate M

para j = 1 ate N

Se f(i,j) > t1 ent~ao

b(i,j) = 1;

Mas, se f(i,j) < t2 ent~ao

g(i,j) = 0;

Mas, se f(i,j) > t2 e f(i,j) < t1 ent~ao

Se g(x,y) e um pixel conectado ent~ao

g(i,j) = 1;

Sen~ao

g(i,j) = 0;

FimSe

FimSe

FimPara

FimPara

Figura 5.11: Funcao de Limiarizacao com Reconstrucao. Esta funcao utiliza umaimagem em nıveis de cinza f com dimensoes M x N. No final do processamento, produz-seuma imagem binaria g. O nıvel de limiarizacao superior t1 deve ser passado a funcao. t1e o nıvel para a limiarizacao superior.

O efeito da limiarizacao com reconstrucao pode ser visto na tabela 5.2. O primeiro

passo do metodo produziu as regioes escuras na imagem (Tab. 5.2; B). As regioes em

cinza claro em torno do cometa foram produzidas pelo procedimento de reconstrucao no

segundo passo (Tab. 5.2; C). A combinacao dos dois passos possibilitou a extracao do

cometa praticamente sem influencias da area do fundo da imagem (area ruidosa).

O calculo efetuado no primeiro passo, onde e encontrado um limiar bom para segmen-

tar a imagem t1, nao se mostrou necessario todas as vezes em que foi preciso segmentar o

cometa. Uma vez obtido, ele pode ser reaproveitado para novos calculos, desde que ainda

se esteja trabalhando em imagens com as mesmas caracterısticas que a original.

Apos a segunda etapa, a imagem e filtrada com operacoes morfologicas de abertura

Page 57: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca do Cometa 57

e fechamento para excluir pequenos artefatos(Tab. 5.2; D). Se exclui, tambem, eventu-

ais objetos que interceptem as bordas por meio de um algoritmo de remocao de bordas

(SOILLE, 2003). Logo, parte-se do pressuposto que o cometa a ser analisado nao inter-

cepta as bordas da imagem. Se isso ocorrer o cometa sera removido equivocadamente da

imagem e a analise falhara.

(A) imagem de entrada (B) passo 1

(C) passo 2 (D) melhoramento(abertura e fechamento)

(E) eliminacao de objetos nas bordas

Tabela 5.2: Principais passos para a segmentacao do cometa inteiro

5.8 Metodo Baseado no Algoritmo CHARM para Seg-

mentacao da Cabeca do Cometa

As cabecas dos cometas podem ser tratadas como objetos circulares(RIVEST et al.,

1996). Contudo, elas nem sempre assumem essa forma. Ha casos em que a cabeca do

cometa pouco se parece com um cırculo; anomalia causada pela grande variacao nos nıveis

de cinza da mesma, fundindo-a com a cauda.

Trabalhos anteriores visando a automatizacao do Teste Cometa tem usado limiariza-

cao e morfologia binaria para segmentar tanto o cometa quanto sua cabeca(FRIEUAFF;

W; HARTMMAN, ). Esses metodos nao apresentaram eficiencia para amostras mais

complexas, como nos casos em que a cabeca do cometa apresenta estruturas internas.

Outros trabalhos mais modernos utilizam limiarizacao com histerese para assegurar

que os pıxeis da cauda tenham sido segmentados corretamente aliado a um valor de alto

limiar para segmentar a cabeca do cometa (BOCKER et al., 1999).

Page 58: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca do Cometa 58

Figura 5.12: Exemplo de cometa com cabeca difıcil de ser segmentada.

Infelizmente, esse metodo nao apreseta robustez suficiente(VOJNOVIC et al., ) para

segmentar cabecas com estruturas de alta intensidade(Fig. 5.12) ou quando as intensida-

des da cauda do cometa sao similares aos da cabeca.

Neste trabalho, optou-se por seguir a linha de segmentacao das cabecas de cometas

apresentada por Vojnovic et al.), que usaram o algoritmo CHARM (“Compact Hough And

Radial Map”) para seu delineamento. O CHARM foi usado com sucesso para contagem

automatica de celulas mamarias (BARBER; R.; VOJNOVIC, 2001).

Figura 5.13: Tres exemplos de cometas difıceis de terem suas cabecas segmentadas. Aborda branca mostra o resultado da segmentacao via algoritmo CHARM. (VOJNOVICet al., )

O algoritmo CHARM aplica o filtro de Sobel na imagem de entrada. Os pıxeis com

maiores intensidades sao considerados pertencentes a cabeca. Deste ponto em diante, uma

busca radial (“radial searching”) e executada para localizar provaveis os pıxeis delimitantes

Page 59: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca do Cometa 59

do objeto, baseando-se nas respostas do filtro de Sobel. As bordas, identificadas pelos altos

valores no gradiente de Sobel formam um mapa radial que descreve a superfıcie da cabeca

do cometa. Ainda, o mapa e filtrado para eliminar um pouco das imperfeicoes devido a

distribuicao irregular do DNA dentro da cabeca(VOJNOVIC et al., ). Finalmente, sao

usados metodos estatısticos para melhorar e ajustar o conjunto de pıxeis de bordas a

cabeca do cometa.

Os bons resultados obtidos com o algoritmo CHARM, encorajaram o desenvolvimento

de uma metodologia similar para segmentacao de cabecas dos cometas neste trabalho, uma

vez que se decidiu trabalhar com imagens de cometas tao difıceis de segmentar quanto as

abordadas por Vojnovic et al.().

5.8.1 Algoritmo de Deteccao de Circunferencia pela Transfor-mada de Hough atraves do Vetor de Gradiente de SobelLimiarizado

(a) Imagem de entrada. Retirada de Vojno-vic

(b) Imagem do gradiente de Sobel.

(c) Limiarizacao da imagem do gradiente deSobel com T = 50% do maior nıvel no gra-diente.

(d) O centro da cabeca encontrado porDCTH atraves do vetor de gradiente de So-bel limiarizado.

(e) Mascara binaria resultate do processo desegmentacao da cabeca do cometa.

(f) A borda da mascara resultante do pro-cesso de segmentacao esta sobreposta na corverde a imagem original a tıtulo de exemplo.

A primeira parte do algoritmo desenvolvido para segmentar as cabecas dos cometas

ficou muito semelhante a parte inicial do algoritmo CHARM e ao procedimento descrito

Page 60: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca do Cometa 60

por Mourotis et al.(1998). Passa-se o filtro de Sobel na imagem de entrada, gerando um

vetor gradiente de Sobel(Fig. 5.14b), que sera referenciado como imagem de gradiente de

Sobel doravante.

Aplica-se, em seguida, uma limiarizacao na imagem de gradiente de Sobel, usando

50% do valor, definido empiricamente, de gradiente maximo encontrado no proprio ve-

tor (MOUROUTIS; ROBERTS; BHARATH, 1998). Reduz-se dessa forma o numero de

informacoes desnecessarias no vetor de gradiente(Fig. 5.14c). Acelera-se, assim, o algo-

ritmo de Deteccao de Circunferencias pela Transformada de Hough(DCTH)(PEDRINI;

SCHWARTS, 2008) que e usado para localizar o centro da cabeca dentro da imagem(Fig.

5.14d). Um ponto fraco do DCTH e que nesta implementacao ele espera que o usuario

forneca o raio esperado para a cabeca do cometa.

Com as coordenadas do centro da cabeca do cometa encontradas pelo passo anterior,

inicia-se o proximo passo do processo de segmentacao, que e a delimitacao do objeto.

Para essa tarefa, foi implementada uma adaptacao do algoritmo conhecido como “Radial

Searching” (Busca Radial) baseado no procedimento descrito por Xu et al.(2003) e por

Mourotis et al.(1998).

Mourotis et al.(1998), todavia, nao precisaram enfrentar o problema apresentado pelos

cometas em que parte da cabeca deixa de se fundir com a cauda por uma sutil diferenca

nıveis de cinza das bordas.

5.8.2 Algoritmo de Busca Radial para Delineamento da Bordada Cabeca

Figura 5.14: Sentido da busca radial.

O algoritmo de busca radial para delineamento da borda da cabeca procura por pontos

pertencentes as bordas em um determinado numero de linhas de busca. Neste caso,

escolheu-se um conjunto de linhas em 36 direcoes com variacao de 10 graus cada. Cabe

salientar que a escolha do numero de direcoes deve ser um meio termo entre processamento

computacional e suavidade na resolucao da borda.

Page 61: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.8 Metodo Baseado no Algoritmo CHARM para Segmentacao da Cabeca do Cometa 61

Basicamente, a procura pelo conjunto inicial de pontos de borda se da pela busca

dos pontos mais distantes em cada linha de busca que possuam um nıvel de cinza dentro

do esperado para a cabeca de um cometa. A adocao dos nıveis de cinza como criterio

de selecao nas linhas de busca esta amparada no trabalho de Bocker et al.(1999). Eles

mostraram que foi possıvel reconstruir apenas as estruturas da cabeca do cometa utili-

zando uma limiarizacao de alto valor( 10% abaixo do valor maximo de nıvel de cinza da

imagem).

No entanto, a presenca de estruturas internas nas cabecas afeta a homodeneidade da

colocacao da mesma. Outro problema que afeta diretamente a precisao da escolha dos

pontos de borda e a zona de fusao entre a cabeca e a cauda, na qual o gradiente de nıveis

de cinza formado pelos fragmentos de DNA, tornando as bordas dessa parte mınimas ou

inexistentes.

(a) Imagem de entrada. (b) Borda inicial.

(c) Borda melhorada.

A forma encontrada para suavizar a regiao interna da cabeca, reduzindo a influencia

dessas estruturas, e manter as bordas da mesma, foi aplicar um filtro de difusao anisotro-

pica sobre a imagem de entrada, inserindo uma etapa de pre-processamento dentro da

etapa de segmentacao.

Formalizando a definicao, cada um dos 36 pıxeis encontrados inicialmente e denotado

por xi, enquanto o conjunto com todos os pıxeis e denotado por

X = { x1,x2, ...,x36}.

Todavia, o conjunto inicial da borda X0 e muito disperso e necessita ser refinado. A

heurıstica escolhida para melhorar X0 possui um baixo custo de processamento computaci-

onal. Para cada xi ∈ X0 calcula-se o valor esperado( µd) das distancias dos seus 8-vizinhos.

Page 62: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.9 Extracao de Caracterısticas das Imagens Segmentadas 62

Se a diferenca entre d(xi) e µd for superior a 2, escolhe-se o ponto da linha de busca radial

de xi que esteja a distancia µd gerando um novo ponto. xi e, entao, substituindo pelo novo

ponto. Nos testes realizados, a escolha do valor 2 (dois) apresentou boa resposta quanto

a suavidade da borda, mas podera ser alterado para imagens de cometas com dimensoes

maiores. Por outro lado, se µd for inferior ou igual a 2, passa-se ao proximo ponto do

conjunto, nao efetuando nenhuma operacao sobre xi.

5.9 Extracao de Caracterısticas das Imagens Segmen-

tadas

Para a metodologia de classificacao adotada neste trabalho, as caracterısticas rele-

vantes do cometa e de sua cabeca sao as localizacoes de seus pontos extremos na direcao

horizontal (Fig. 5.15), os quais serao utilizados nos calculos da etapa de classificacao

geometrica, e suas areas, usadas pela etapa de deteccao de erros. E preciso esclarecer

que o algoritmo de busca de extremos encontrara os pontos extremos do cometa e nao

apenas da cauda, a qual comeca apos o termino da cabeca. Mesmo assim, o calculo do

comprimento da cauda e trivial.

Figura 5.15: Localizacao de pontos extremos na imagem do cometa produzida pela etapade segmentacao.

Para melhorar o desempenho, todas as operacoes de extracao de caracterısticas sao

executadas sobre as duas imagens binarias geradas pela etapa de processamento (uma

contendo objetos que compoe a cabeca e outra, contendo os que compoe a cauda).

5.10 Base de Conhecimento

O conhecimento sobre o domınio do problema esta codificado em um sistema de pro-

cessamento de imagens na forma de uma base de conhecimento. Sem um raio estimado,

Page 63: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.11 Classificacao dos Cometas 63

a transformada de Hough utilizada aqui, por exemplo, nao teria como encontrar a cabeca

do cometa adequadamete.

Assim, a base utilizada pela metodologia desenvolvida ficou composta por:

• Regiao de interesse a partir da qual e extraıda a imagem a ser processada;

• Numero de pontos de ruidosos permitidos, utilizado pelo algorıtmo de segmentacao

do cometa;

• Raio inicial estimado da cabeca do cometa;

• Percentual do tom de cinza medio da cabeca em relacao ao tom de cinza maximo

na imagem, usado pelo algoritmo de busca radial para estipular o conjunto inicial

de pontos de borda da cabeca;

• Limite da diferenca entre a distancia entre um possıvel ponto de borda e o centro da

cabeca com a de seus 8-vizinhos, o que torna a borda suave na avaliacao da segunda

parte do algoritmo de busca radial.

• Limites de proporcao entre a cauda e a cabeca para as classes Zero, Um, Dois e

Tres.

5.11 Classificacao dos Cometas

Os cometas da classe quatro apresentam pouca diferenca entre a intensidade media dos

tons da cabeca e os da cauda, porque nao possuem cabeca definida. Assim, procurou-se

desenvolver um metodo que explorasse esta peculiaridade. Assim, depois de encontradas

a cabeca e a cauda, calcularam-se suas intensidades medias. Entao, tentou-se classificar

o cometa como classe 4 caso a diferenca a diferenca entre as intensiades medias fosse

muito pequeno.

Por exemplo, se um cometa possuısse uma intensidade media da cabeca que diferisse

em apenas 10% do valor da intensidade media da cauda; ele pertenceria a classe 4. No

entanto, se a diferenca fosse maior do que o valor de tolerancia estabelecido pelo usuario,

o cometa deveria ser classificado de acordo com suas propriedades geometricas.

Apesar de teoricamente fazer sentido, nos testes essa classificacao falhou diversas

vezes. Isso se deve ao fato de que a fusao natural da cabeca com a cauda faz com que

Page 64: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.12 Deteccao de Erros 64

existam pıxeis da cauda presentes na cabeca e vice-versa, afetando os calculos das medias

das intensidades.

O numero de objetos presentes na imagem binaria do cometa, produzida pela etapa de

segmentacao, foi, entao, adotado como criterio de classificacao. Por esse criterio, quando

o numero de objetos fosse maior do que um valor limite pre-definido, o cometa seria

classificado como classe 4. Mas, se esse valor limite nao fosse atingido, os cometas eram

classificados por suas caracterısticas geometricas.

Mais uma vez essa a tentativa de classificar cometas em forma de nuvem obteve

resultados ruins. Alem dessas, outras abordagens tambem foram pesquisadas, como o

grau de dispersao dos pıxeis na imagem do cometa binarizada e construcao de descritores

com base na variancia da cauda em relacao a cabeca.

Tendo em vista os resultados obtidos na tentativa de classificar os cometas da classe

quatro e que os softwares presentes no mercado tambem nao o fazem, a metodologia

proposta neste trabalho nao aborda a classificacao dessa classe de cometas. Logo, e

responsabilidade do usuario nao selecionar cometas pertencentes a esta categoria. Para as

classes restantes (classes 1, 2, 3 e 4) foi adotada uma abordagem de classificacao baseada

nas caracterısticas geometricas dos cometas.

Na abordagem de classificacao geometrica calcula-se quantas vezes maior e a cauda

do cometa em relacao ao diametro da cabeca, propriedade denotada por ∆hc. O valor

encontrado e comparado com os limites contidos na base de conhecimento para realizar a

classificacao.

Empiricamente, definiu-se um conjunto de proporcoes para cada classe:

• Classe 0, se ∆hc < 0.5;

• Classe 1, se 0.5≤ ∆hc < 1;

• Classe 2, se 1≤ ∆hc < 2;

• Classe 3, se ∆hc ≥ 2;

5.12 Deteccao de Erros

Considera-se um erro se a area da cabeca gerada pela etapas de PDI for maior que a

area do cometa, incluindo os fragmentos pertencentes. A nao segmentacao da cabeca ou

Page 65: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

5.12 Deteccao de Erros 65

do proprio cometa tambem gera um erro. A ocorrencia de um erro implica a exibicao de

uma mensagem ao usuario e a nao classificacao do cometa.

Page 66: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

66

6 Resultados

Alem dos resultados obtidos nas etapas de processamento de imagens, os quais nortea-

ram a pesquisa e foram apresentados ao longo do capıtulo anterior, ainda foram realizados

testes com um prototipo que implementa a metodologia desenvolvida.

Para isso, foram analisados 25 cometas de uma mesma imagem visualmente por um

especialista sem o uso de ferramentas computacionais de analise. Em seguida, a imagem

contendo os mesmos cometas foi submetida a classificacao por um usuario, que passou

por um breve treinamento sobre o Teste Cometa, utilizando o prototipo desenvolvido.

Os resultados podem ser vistos na figura 6.1. Utilizando-se os criterios definidos por

Collins, AG e SJ (1995), tem-se um “score” total de 29 “unidades arbitrarias” para a

classificacao feita pelo especialista, enquanto o “score” total da classificacao feita pelo

usuario atraves do prototipo foi de 27. Nesse caso, o prototipo apresentou uma diferenca

de 6.9 % em relacao a classificacao feita pelo especialista.

Apesar do prototipo ter sido implementado em MATLAB, os tempos para a classifica-

cao de cada cometa foram proporcionais a area da imagem analisada e ficaram proximos

de 1,39 segundos (Fig. 6.2).

Alem disso, foi possıvel perceber que para uma mesma imagem as primeiras execucoes

apresentaram tempos de respostas superiores as analises seguintes, devido a particulari-

dades da linguagem Java na qual o MATLAB e baseado.

Page 67: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

6 Resultados 67

Figura 6.1: Classificacao do especialista x usuario atraves do prototipo.

Figura 6.2: Tempo de resposta do prototipo.

Page 68: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

68

7 Conclusao

Ao longo do trabalho, o estudo das imagens do Teste Cometa mostrou que elas pos-

suem caracterısticas que dificultam sua segmentacao. Essas imagens tem bordas mal

definidas em torno do cometa e em torno da cabeca do cometa, grande variancia nas

intensidades dos tons de cinza na cabeca do cometa, uma grande quantidade de ruıdo,

diversos artefatos espalhados pelo fundo da imagem, como acumulo de gel, entre outras.

Com base nessas caracterısticas, levantadas durante o desenvolvimento deste trabalho,

propos-se segmentar a cabeca separadamente da cauda.

No caso da cabeca, a precisao de sua segmentacao, em funcao do uso do algoritmo de

localizacao de cırculos pela transformada de Hough, esta atrelada aos dados fornecidos pelo

usuario, como o raio por exemplo. Isso e uma desvantagem se um conjunto de imagens de

cometas com cabecas de raios heterogeneos for analisado. Contudo, estimando-se um raio

que esteja dentro do esperado para o cometa em analise, o centro e encontrado facilmente.

Mas ha mais um fator que pode prejudicar a qualidade da segmentacao: o nıvel de cinza

esperado. Um nıvel muito alto produz cabecas pequenas e irreais. Ja um nıvel muito

baixo leva as bordas da cabeca ao limite do raio maximo, que foi empiricamente definido

como duas vezes o raio do cometa.

No caso do algoritmo escolhido para segmentar o cometa (aqui a cabeca permanece

fundida com o corpo), bons resultados ja tinham sido obtidos(BOCKER et al., 1999).

Encontraram-se, porem, problemas de precisao quando a quantidade estimada de obje-

tos ruidosos no fundo da imagem era mantida num valor fixo e diversas zonas de uma

mesma imagem ou de imagens diferentes eram analisadas. Uma heurıstica para estimar

a quantidade de pıxeis ruidosos poderia isentar o usuario dessa difıcil e intuitiva tarefa.

Todavia, quando a imagem possui um fundo com ruıdo distribuıdo de forma homogenea,

esse algoritmo prove bons resultados.

Neste trabalho observou-se que, sem duvida, a dificuldade fundamental encontrada

na classificacao dos cometas e representada pela inclusao da classe quatro no processo

Page 69: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

7 Conclusao 69

de classificacao (cometa em forma de nuvem), ja que para ela, a classificacao atraves da

proporcao entra o diametro da cabeca em relacao com a cauda nao foi valida.

Por outro lado, os resultados obtidos no enquadramento dos cometas das classes res-

tantes foram satisfatorios. Mesmo num prototipo programado em MATLAB, o tempo de

resposta foi aceitavel, sendo inferior a dois segundos para cada cometa analisado. Esse

fato abre a perspectiva de se melhorar esse tempo, uma vez que os algoritmos, como o do

filtro de difusao anisotropica, podem ser paralelizados. A escolha de uma linguagem de

baixo nıvel, como C++, tambem contribuiria para a reducao do tempo.

Complementarmente, pode-se dizer que a busca por uma heurıstica para a classifica-

cao automatica das imagens provenientes do Teste Cometa e uma tarefa complexa. Este

trabalho adaptou diferentes metodologias contidas na literatura a fim de maximizar os

resultados com o mınimo de esforco computacional e humano, a fim de tornar a classifi-

cacao do Teste Cometa mais precisa, menos subjetiva, menos desgastante e mais rapida

para todos aqueles que diariamente o realizam.

Page 70: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

70

8 Trabalhos Futuros

A extracao de mais metricas dos cometas, como o momento Olive da cauda, a por-

centagem de DNA da cabeca e da cauda poderiam estar incluıdas em futuros trabalhos.

Alem disso, o algoritmo de segmentacao de cometas proposto, poderia incluir uma

heurıstica que estimasse o numero de objetos do qual a Limiarizacao e dependente. Hoje,

o algoritmo pode gerar uma imagem preta, caso o numero de objetos encontrado a cada

iteracao nao chegue ao valor definido pelo usuario. Dessa forma, o usuario de um sistema

baseado nesta metodologia nao precisaria ficar estimando o numero de pıxeis ruidosos pra

cada cometa a ser segmentado.

Num aprimoramento posterior, os raios esperados das cabecas poderiam ser estimados

computacionalmente por numa etapa anterior ao da aplicacao da transformada de Hough,

que tenta localizar os centros das cabecas.

Por fim, tem-se como mais um possıvel trabalho futuro, a construcao de uma solucao

completa para automatizar a classificacao das imagens do Teste Cometa, que tenha acesso

diretamente as imagens do microscopio, arquive as imagens dos cometas com suas carac-

terısticas num banco de dados local e faca os calculos estatısticos sobre os dados obtidos.

A intervencao humana seria descartada na solucao vislumbrada.

Page 71: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

71

Referencias Bibliograficas

ANDERSSON, M. A. et al. Evaluation of the potential genotoxicity of chromiumpicolinate in mammalian cells in vivo and in vitro. Food and Chemical Toxicology,Elsevier, p. 1097–1106, Novembro 2007.

BARBER; R., P.; VOJNOVIC, B. Automated counting of mammalian cell colonies.Physics in Medicine and Biology, p. 63–76, 2001.

BASTOS, V. P. Tecnicas de segmentacao de imagens para recuperacao de informacoesvisuais. In: . Universidade Catolica de Pelotas. Disponıvel em: <http://atlas.ucpel.tche-.br/˜vbastos/segmenta.htm>. Acesso em: 08 julho 2008.

BOCKER, W. et al. Automated comet assay analysis. Cytometry, 1999.

CHUNG, D. H.; SAPIRO, G. Segmenting skin lesions with partial differential equationsbased image processing algorithm. IEEE Transactions on Medical Imaging, 2000.

COLLINS. Comet assay for dna damage and repair:principles, applications andlimitations. Mol Biotechnol, p. 249–261, 2004.

COLLINS; AG, M.; SJ, D. The kinetics of repair of oxidative dna damage (strand breaksand oxidised pyrimidine) in human cells. Mutat Res, p. 69—-77, 1995.

COLLINS, A. R. The comet assay for dna damage and repair. Molecular Biotechnology,v. 26, p. 240–261, 2004.

COOK, P. R.; BRAZELL, I. A.; JOST, E. Characterization of nuclear structurescontaining superhelical dna. Journal Cell Science, v. 22, p. 303–325, 1976.

FILHO, O. M. Processamento digital de imagens. [S.l.]: Brasport Livros e MultimıdiaLtda., 1999.

FRIEUAFF; W, D.; HARTMMAN, A. Automatic analysis of slides processed in thecomet assay. Mutagenisis.

GONZALEZ, R. C.; WOODS. Digital Image Processing. Third. [S.l.]: Addison-WesleyPublishing Company, 2002.

GORMAN, L. O. Document image analysis. Los Alamitos: IEEE Computer SocietyPress, 1995.

H., K. et al. Comparison between manual microscopic analysis and computerised imageanalysis in single cell gel electrophoresis assay. MMS Commun, p. 103—-15, 1995.

IMAGE PROCESSING LEARNING RESOURCES. HIPR2. Disponıvel em: <http:/-/homepages.inf.ed.ac.uk/rbf/HIPR2/index.htm>. Acesso em: 01 junho 2008.

Page 72: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Referencias Bibliograficas 72

INDUSTRIAL TOXICOLOGY RESEARCH CENTRE. Comet assay definitions.Lucknow, India: Komet. Disponıvel em: <http://www.cometassayindia.org/definitions-.htm>. Acesso em: 26 novembro 2006.

KUMARAVEL, T. S. et al. Comet assay measurements: a perspective. Cell Biol Toxicol,Springer Science + Business Media, Julho 2007.

DETECCAO DE BORDAS COM O MODELO DE DIFUSAO ANISOTROPICA.

MOLLER. Assessment of reference values for dna damage detected by the comet assayin human blood cell dna. Mutation Research, p. 84–104, 2006.

MOUROUTIS, T.; ROBERTS, S. J.; BHARATH, A. A. Robust cell nuclei segmentationusing statistical modelling. Bioimaging, London, UK, p. 79—-91, Marco 1998.

NANDY, K.; GUDLA, P. R.; LOCKETT, S. J. Automatic segmentation of cell nuclei in2d using dynamic programming. In: Proceedings of 2nd Workshop on Microsopic ImageAnalysis with Applications in Biology. [S.l.: s.n.], 2007.

NP, S. et al. A simple technique for quantitation of low levels of dna damage in individualcells. Experimental cell research, p. 184–91, Marco 1988.

OSTLING, O.; JOHANSON, K. J. Microelectrophoretic study of radiationinduceddna damages in individual mammalian cells. Biochemical And Biophysical ResearchCommunications, n. 123, p. 291–298, 1984.

PEDRINI, H.; SCHWARTS, W. R. Analise de Imagens Digitais: Princıpios, Algoritimose Aplicacoes. Sao Paulo: Thomson Learning, 2008.

PERONA, P.; MALIK, J. Scale-space and edge detection using anisotropic diffusion. IEEETRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE,1990.

Hough-Circles: Um Modulo de Deteccao de Circunferencias para o ImageJ.

PL, O.; JP, B.; RE, D. Heterogeneity in radiation induced dna damage and repair intumor and normal cells measured using the “comet” assay. Radiat Res, p. 86—-94, 1990.

RIVEST, J. F. et al. Automated measurements of tails in single cell gel eletrophoresisassay. IEEE, 1996.

RUSS, J. C. The Image Processing Handbook. Boca Raton: CRC Press, 1998.

SINGH, N. P. et al. A simple technique for quantitation of low levels of dna damage inindividual cells. Exp. Cell, n. 175), p. 184–191, 1988.

SKLANSKY, J. On the hough technique for curve detection. IEEE TRANSACTIONSON COMPUTERS, London, UK, Outubro 1978.

SOILLE, P. Morphological Image Analysis: Principles and Applications. [S.l.]: Springer,2003.

Page 73: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Referencias Bibliograficas 73

VOJNOVIC, B. et al. A high sensitivity, high throughput, automated single-cell gelelectrophoresis (‘comet’) dna damage assay. In: . [S.l.: s.n.]. For submission to: Physicsin Medicine and Biology.

WIKIPEDIA. Matlab. Wikipedia. Disponıvel em: <http://pt.wikipedia.org/wiki-/MATLAB>. Acesso em: 01 junho 2008.

Contour detection by using radial searching for CT images.

Page 74: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

74

9 Anexo A - Codigo Fonte doPrototipo

9.1 anisodiff2D

function diff_im = anisodiff2D(im, num_iter, delta_t, kappa, option)

%ANISODIFF2D Conventional anisotropic diffusion

% DIFF_IM = ANISODIFF2D(IM, NUM_ITER, DELTA_T, KAPPA, OPTION) perfoms

% conventional anisotropic diffusion (Perona & Malik) upon a gray scale

% image. A 2D network structure of 8 neighboring nodes is considered for

% diffusion conduction.

%

% ARGUMENT DESCRIPTION:

% IM - gray scale image (MxN).

% NUM_ITER - number of iterations.

% DELTA_T - integration constant (0 <= delta_t <= 1/7).

% Usually, due to numerical stability this

% parameter is set to its maximum value.

% KAPPA - gradient modulus threshold that controls the conduction.

% OPTION - conduction coefficient functions proposed by Perona & Malik:

% 1 - c(x,y,t) = exp(-(nablaI/kappa).^2),

% privileges high-contrast edges over low-contrast ones.

% 2 - c(x,y,t) = 1./(1 + (nablaI/kappa).^2),

% privileges wide regions over smaller ones.

%

% OUTPUT DESCRIPTION:

% DIFF_IM - (diffused) image with the largest scale-space parameter.

%

% Example

% -------------

% s = phantom(512) + randn(512);

% num_iter = 15;

% delta_t = 1/7;

% kappa = 30;

% option = 2;

% ad = anisodiff2D(s,num_iter,delta_t,kappa,option);

% figure, subplot 121, imshow(s,[]), subplot 122, imshow(ad,[])

%

% See also anisodiff1D, anisodiff3D.

% References:

Page 75: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.1 anisodiff2D 75

% P. Perona and J. Malik.

% Scale-Space and Edge Detection Using Anisotropic Diffusion.

% IEEE Transactions on Pattern Analysis and Machine Intelligence,

% 12(7):629-639, July 1990.

%

% G. Grieg, O. Kubler, R. Kikinis, and F. A. Jolesz.

% Nonlinear Anisotropic Filtering of MRI Data.

% IEEE Transactions on Medical Imaging,

% 11(2):221-232, June 1992.

%

% MATLAB implementation based on Peter Kovesi’s anisodiff(.):

% P. D. Kovesi. MATLAB and Octave Functions for Computer Vision and Image Processing.

% School of Computer Science & Software Engineering,

% The University of Western Australia. Available from:

% <http://www.csse.uwa.edu.au/~pk/research/matlabfns/>.

%

% Credits:

% Daniel Simoes Lopes

% ICIST

% Instituto Superior Tecnico - Universidade Tecnica de Lisboa

% danlopes (at) civil ist utl pt

% http://www.civil.ist.utl.pt/~danlopes

%

% May 2007 original version.

% Convert input image to double.

im = double(im);

% PDE (partial differential equation) initial condition.

diff_im = im;

% Center pixel distances.

dx = 1;

dy = 1;

dd = sqrt(2);

% 2D convolution masks - finite differences.

hN = [0 1 0; 0 -1 0; 0 0 0];

hS = [0 0 0; 0 -1 0; 0 1 0];

hE = [0 0 0; 0 -1 1; 0 0 0];

hW = [0 0 0; 1 -1 0; 0 0 0];

hNE = [0 0 1; 0 -1 0; 0 0 0];

hSE = [0 0 0; 0 -1 0; 0 0 1];

hSW = [0 0 0; 0 -1 0; 1 0 0];

hNW = [1 0 0; 0 -1 0; 0 0 0];

% Anisotropic diffusion.

for t = 1:num_iter

% Finite differences. [imfilter(.,.,’conv’) can be replaced by conv2(.,.,’same’)]

nablaN = imfilter(diff_im,hN,’conv’);

nablaS = imfilter(diff_im,hS,’conv’);

nablaW = imfilter(diff_im,hW,’conv’);

nablaE = imfilter(diff_im,hE,’conv’);

Page 76: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 76

nablaNE = imfilter(diff_im,hNE,’conv’);

nablaSE = imfilter(diff_im,hSE,’conv’);

nablaSW = imfilter(diff_im,hSW,’conv’);

nablaNW = imfilter(diff_im,hNW,’conv’);

% Diffusion function.

if option == 1

cN = exp(-(nablaN/kappa).^2);

cS = exp(-(nablaS/kappa).^2);

cW = exp(-(nablaW/kappa).^2);

cE = exp(-(nablaE/kappa).^2);

cNE = exp(-(nablaNE/kappa).^2);

cSE = exp(-(nablaSE/kappa).^2);

cSW = exp(-(nablaSW/kappa).^2);

cNW = exp(-(nablaNW/kappa).^2);

elseif option == 2

cN = 1./(1 + (nablaN/kappa).^2);

cS = 1./(1 + (nablaS/kappa).^2);

cW = 1./(1 + (nablaW/kappa).^2);

cE = 1./(1 + (nablaE/kappa).^2);

cNE = 1./(1 + (nablaNE/kappa).^2);

cSE = 1./(1 + (nablaSE/kappa).^2);

cSW = 1./(1 + (nablaSW/kappa).^2);

cNW = 1./(1 + (nablaNW/kappa).^2);

end

% Discrete PDE solution.

diff_im = diff_im + ...

delta_t*(...

(1/(dy^2))*cN.*nablaN + (1/(dy^2))*cS.*nablaS + ...

(1/(dx^2))*cW.*nablaW + (1/(dx^2))*cE.*nablaE + ...

(1/(dd^2))*cNE.*nablaNE + (1/(dd^2))*cSE.*nablaSE + ...

(1/(dd^2))*cSW.*nablaSW + (1/(dd^2))*cNW.*nablaNW );

% Iteration warning.

% fprintf(’\rIteration %d\n’,t);

end

9.2 cometGUI

function varargout = cometGUI(varargin)

% COMETGUI M-file for cometGUI.fig

% COMETGUI, by itself, creates a new COMETGUI or raises the existing

% singleton*.

%

% H = COMETGUI returns the handle to a new COMETGUI or the handle to

% the existing singleton*.

%

% COMETGUI(’CALLBACK’,hObject,eventData,handles,...) calls the local

% function named CALLBACK in COMETGUI.M with the given input arguments.

%

% COMETGUI(’Property’,’Value’,...) creates a new COMETGUI or raises

Page 77: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 77

% the

% existing singleton*. Starting from the left, property value pairs

% are applied to the GUI before cometGUI_OpeningFunction gets called.

% An unrecognized property name or invalid value makes property

% application

% stop. All inputs are passed to cometGUI_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Last Modified by GUIDE v2.5 03-Jun-2008 17:13:31

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct(’gui_Name’, mfilename, ...

’gui_Singleton’, gui_Singleton, ...

’gui_OpeningFcn’, @cometGUI_OpeningFcn, ...

’gui_OutputFcn’, @cometGUI_OutputFcn, ...

’gui_LayoutFcn’, [] , ...

’gui_Callback’, []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before cometGUI is made visible.

function cometGUI_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to cometGUI (see VARARGIN)

% Choose default command line output for cometGUI

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes cometGUI wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = cometGUI_OutputFcn(hObject, eventdata, handles)

Page 78: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 78

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function tfHead_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function tfHead_CreateFcn(hObject, eventdata, handles)

% hObject handle to tfHead (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,’white’);

end

function tfRadious_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function tfRadious_CreateFcn(hObject, eventdata, handles)

% hObject handle to tfRadious (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,’white’);

end

% --- Executes on button press in btnRoi.

function btnRoi_Callback(hObject, eventdata, handles)

% hObject handle to btnRoi (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

axes(handles.mainAxes);

input_image = handles.tmpImg;

sp = getrect;

% Get the x and y co-ordinates

Page 79: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 79

sp(1) = max(floor(sp(1)), 1); %xmin

sp(2) = max(floor(sp(2)), 1);%ymin

sp(3)= min(ceil(sp(1) + sp(3))); %xmax

sp(4)=min(ceil(sp(2) +sp(4))); %ymax

% Index into the original image to create the new image

MM = input_image(sp(2):sp(4), sp(1): sp(3),:);

scoreComet( MM, hObject, handles)

% --- Executes on button press in btnOpen.

function btnOpen_Callback(hObject, eventdata, handles)

% hObject handle to btnOpen (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

[filename, pathname] = uigetfile({’*.jpg’;’*.bmp’;’*.tif’});

inputImg = imread([pathname filename]);

handles.inputImg = inputImg;

handles.tmpImg = inputImg;

axes(handles.mainAxes);

imshow(inputImg);

handles.output = hObject;

guidata(hObject, handles);

% --- Executes on slider movement.

function threshold_Callback(hObject, eventdata, handles)

% hObject handle to threshold (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’Value’) returns position of slider

% get(hObject,’Min’) and get(hObject,’Max’) to determine range of

% slider.

set(handles.txtLevel,’string’,get(hObject,’Value’));

tmpImg = special_thresholding( handles.inputImg, get(hObject,’Value’));

handles.tmpImg = tmpImg;

axes(handles.mainAxes);

imshow(tmpImg);

handles.output = hObject;

guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.

function threshold_CreateFcn(hObject, eventdata, handles)

% hObject handle to threshold (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

Page 80: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 80

% handles empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,[.9 .9 .9]);

end

% --- Executes when figure1 is resized.

function figure1_ResizeFcn(hObject, eventdata, handles)

function tfNumNoiseObj_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function tfNumNoiseObj_CreateFcn(hObject, eventdata, handles)

% hObject handle to tfNumNoiseObj (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,’white’);

end

% --- Executes on button press in btnClick.

function btnClick_Callback(hObject, eventdata, handles)

% hObject handle to btnClick (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

axes(handles.mainAxes);

[x,y] = ginput;

input_image = handles.tmpImg;

[height width dimension] = size(input_image);

radious = str2double(get(handles.tfRadious,’String’));

maxradious = radious * 2;

xmin = x - (2*maxradious);

if(xmin < 1)

xmin = 1;

end

xmax = x + (4*maxradious);

if( xmax > width)

xmax = width;

end

ymin = y - (2*maxradious);

Page 81: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 81

if(ymin < 1)

ymin = 1;

end

ymax = y + (2*maxradious);

if( ymax > height)

ymax = height;

end

MM = input_image(ymin:ymax, xmin: xmax,:);

scoreComet( MM, hObject, handles)

function tfTailHeadTolerance_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function tfTailHeadTolerance_CreateFcn(hObject, eventdata, handles)

% hObject handle to tfTailHeadTolerance (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,’white’);

end

function tfATStep_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function tfATStep_CreateFcn(hObject, eventdata, handles)

% hObject handle to tfATStep (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor’), ...

get(0,’defaultUicontrolBackgroundColor’))

set(hObject,’BackgroundColor’,’white’);

end

%--------------------------------------------------------------------------

% Display Comet function

%--------------------------------------------------------------------------

function displayComet( tailPerimeter, headPerimeter, original)

[x y] = find(tailPerimeter);

[sizeX dimension] = size(x);

for i=1:1:sizeX

Page 82: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.2 cometGUI 82

if ( x(i) ~= 0 && y(i) ~= 0)

original(x(i),y(i),3) = 255;

end

end

[x y] = find(headPerimeter);

[sizeX dimension] = size(x);

for i=1:1:sizeX

if ( x(i) ~= 0 && y(i) ~= 0)

original(x(i),y(i),2) = 255;

end

end

figure, imshow(original), ...

title(’Selected Comet. Green: Head, Blue: Entire Comet’);

%--------------------------------------------------------------------------

% Comet Score function

%--------------------------------------------------------------------------

function scoreComet( MM, hObject, handles)

radious = str2double(get(handles.tfRadious,’String’));

headLevel = str2double(get(handles.tfHead,’String’));

at_max_numobjects = str2double(get(handles.tfNumNoiseObj,’String’));

at_threshold_level_step = str2double(get(handles.tfATStep,’String’));

roi_img = rgb2gray(MM);

tic;

[class centerX centerY headPerimeter tailPerimeter] = ...

cycCometCVCore(roi_img, radious, headLevel, at_max_numobjects, ...

at_threshold_level_step);

t = toc;

[height width dimension] = size(roi_img);

fprintf(’Image size:: height: %d, width: %d \n’, height, width);

fprintf(’Elapsed Time in Classification: %f \n’, t);

axes(handles.headAxes);

imshow(headPerimeter);

axes(handles.tailAxes);

imshow(tailPerimeter);

set(handles.txtResult,’string’,class);

displayComet(tailPerimeter, headPerimeter, MM);

handles.output = hObject;

guidata(hObject, handles);

Page 83: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.3 cometseg 83

9.3 cometseg

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function outputImg = cometseg( gray_image, initial_threshold_level, ...

threshold_step_decrease, maxNO)

% Funcao especifica para segmentar o cometa inteiro atraves de limiarizacao

% Algoritmo de remocao de fundo retirado do artigo Comet Assay Analysis,

% (Bocker et al.)

% ingrayimage Imagem em tons de cinza

%

% image Retorna uma imagem binaria apenas do cometa

%

currentLevel = initial_threshold_level;

%--------------------------------------------------------------------------

% Primeiro passo do algoritmo

%--------------------------------------------------------------------------

% realizar limiarizacao

currentImg = gray_threshold( gray_image, currentLevel);

% contar o numero de pixeis brancos( noise)

no = isolatedpixel_count(currentImg);

% lastNO = no;

ok = true;

while ( ok )

% lastImg = currentImg;

currentLevel = currentLevel - threshold_step_decrease;

% realizar limiarizacao

currentImg = gray_threshold( gray_image, currentLevel);

% contar o numero de pixeis brancos( noise)

no = isolatedpixel_count(currentImg);

% detectar crescimento exponencial

if( no >= maxNO || currentLevel <= 0)

ok = false;

end

% lastNO = no;

end

currentLevel = currentLevel + threshold_step_decrease;

% figure, imshow(lastImg);

%--------------------------------------------------------------------------

% Segundo passo do algoritmo

%--------------------------------------------------------------------------

Page 84: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.4 cycCometCVCore 84

outputImg = threshold_with_reconstruction( gray_image, currentLevel);

%--------------------------------------------------------------------------

% Passos extras do autor

%--------------------------------------------------------------------------

% Melhoramento da imagem atraves de abertura e fechamento

diameter = 1;

se = strel(’disk’, diameter);

outputImg = imopen(outputImg, se);

outputImg = imclose(outputImg, se);

outputImg = imclearborder(outputImg, 4);

end

9.4 cycCometCVCore

%--------------------------------------------------------------------------

% Funcao principal do Prototipo.

%--------------------------------------------------------------------------

function [class centerX centerY headPerimeter cometPerimeter] = ...

cycCometCVCore( grayImg, radious, head_percent, at_max_numobjects, ...

at_thresholdlevel_step)

% class classe do cometa

% centerX coordenada X do centro do cometa

% centerY coordenada Y do centro do cometa

% headPerimeter perımetro da cabeca do cometa

% cometPerimeter perımetro do cometa

%

% grayImg imagem de entrada em nıveis de cinza.

% radious raio estimado para cabeca.

% head_percent porcentagem de nıvel de cinza maximo estimado para a cabeca.

% at_max_numobjects numero maximo de objetos em que o threshold adaptativo

% deve parar.

% at_thresholdlevel_step passos em que o threshold adaptativo deve ser

% andar.

class = ’ ’;

% Achando o centro da cabeca

RADIOUS = radious;

RADIAL_SEARCHING_STEP_SIZE = 10;

[headPointsPositions centerX centerY] = head_segmentation( grayImg, ...

RADIOUS, head_percent, RADIAL_SEARCHING_STEP_SIZE);

[height width dimension] = size(grayImg);

polygon = poly2mask(double(headPointsPositions(:,2)), ...

double(headPointsPositions(:,1)), height, width);

Page 85: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.4 cycCometCVCore 85

[ maxXhead maxYhead minXhead minYhead headPerimeter] = ...

extremes_searcher_bw( polygon);

[ah b] = find(headPerimeter);

[sizeHead dimA ] = size(ah);

fprintf(’##---------------------------------------------------------#\n’);

fprintf(’## COMET INFORMATION ##\n’);

fprintf(’##--------------------------------------------------------##\n’);

% adicionando o adaptative threshold

initial_threshold_level = max(max(grayImg));

BW = cometseg( grayImg, initial_threshold_level, ...

at_thresholdlevel_step, at_max_numobjects);

[height width dimension] = size(BW);

L = bwlabel(BW, 4);

NO_comet = max(max(L));

fprintf(’## Number of Objects in Comet Image: %f\n’, NO_comet);

% ---------------------------------------------------------------------

% Calculado as Variancias e Valores Esperados e Medias

[y_head x_head] = find(polygon);

[dataSize dimension] = size(y_head);

head_area = dataSize;

validData = zeros(1, dataSize);

for i=1:1:dataSize

validData(i) = grayImg(y_head(i),x_head(i),1);

end

head_var = var(validData);

head_mean = mean(validData);

head_std = std(validData);

uu = BW - polygon;

tail = zeros( [height width dimension], ’uint8’);

tail(:,:,1) = uint8(uu(:,:)).*grayImg(:,:,1);

tail_var = nonblack_var( tail );

[y_tail x_tail] = find(uu);

[dataSize dimension] = size(y_tail);

validData = zeros(1, dataSize);

for i=1:1:dataSize

validData(i) = grayImg(y_tail(i),x_tail(i),1);

end

tail_mean = mean(validData);

tail_std = std(validData);

Page 86: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.4 cycCometCVCore 86

[x y] = find(BW);

[comet_area nothing] = size(x);

fprintf(’## Head Mean: %f \n’, head_mean);

fprintf(’## Head Std: %f \n’, head_std);

fprintf(’## Head Variance: %f \n’, head_var);

fprintf(’\n’);

fprintf(’## Tail Mean: %f \n’, tail_mean);

fprintf(’## Tail Std: %f \n’, tail_std);

fprintf(’## Tail Variance: %f \n’, tail_var);

[ maxXtail maxYtail minXtail minYtail cometPerimeter ] = ...

extremes_searcher_bw( BW);

[at b] = find(cometPerimeter);

[sizeTail dimA ] = size(at);

fprintf(’## \n’);

head_diameter = maxXhead - minXhead;

fprintf(’## Head Diameter: %f \n’, head_diameter);

tail_length = maxXtail-maxXhead;

fprintf(’## Tail Length: %f \n’, tail_length);

percent = (tail_length)/ head_diameter;

% Classificando os Cometas

classPercentLimit = [ 0.5 1.2 2];

if(percent < classPercentLimit(1))

class = ’CLASSE 1’;

elseif ( percent >= classPercentLimit(1) && ...

percent <= classPercentLimit(2))

class =’CLASSE 2’;

elseif ( percent > classPercentLimit(2) && percent < classPercentLimit(3))

class = ’CLASSE 3’;

elseif ( percent >= classPercentLimit(3))

class = ’CLASSE 4’;

end

comet_length = maxXtail - minXtail;

fprintf(’## Comet Length: %f \n’, comet_length);

if( (sizeHead == 0) || (sizeTail == 0) || (comet_area < head_area) || ...

( comet_length < head_diameter))

class = ’ERRO’;

end

fprintf(’##----------------- -------------##\n’);

fprintf(’## ’); fprintf(class); fprintf(’\n’);

fprintf(’##---------------------------------------------------------##\n’);

Page 87: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.5 extremes searcher bw 87

9.5 extremes searcher bw

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function [ maxX maxY minX minY output] = extremes_searcher_bw( bw_image)

%EXTREME_SEARCHER Extrai as posicoes dos pixels extremos da imagem passada

% Extrai as posicoes dos pixels extremos da imagem passada

[height width] = size( bw_image );

%Finding the extremme points

rightX = 0; rightY = 0;

leftX = width; leftY = 0;

topX = 0; topY = height;

bottomX = 0; bottomY = 0;

for i = 1:1:height

for j = 1:1:width

color = bw_image(i,j,1);

if color

if j < leftX

leftX = j;

leftY = i;

end

if i < topY

topX = j;

topY = i;

end

if j > rightX

rightX = j;

rightY = i;

end

if i > bottomY

bottomX = j;

bottomY = i;

end

end

end

end

Y = [rightY leftY topY bottomY];

Page 88: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.6 gray threshold 88

X = [rightX leftX topX bottomX];

maxY = max(Y);

minY = min(Y);

maxX = max(X);

minX = min(X);

output = bwperim(bw_image);

9.6 gray threshold

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function image = gray_threshold( inputimage, level)

[height width dimension] = size(inputimage);

% image = zeros( [height width dimension ], ’uint8’);

image = false(height, width);

for i = 1:1:height

for j = 1:1:width

gray = inputimage(i,j,1);

if gray > level

image(i,j) = true;

end

end

end

9.7 gray thresholding

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function image = gray_thresholding( inputimage, level)

[height width dimension] = size(inputimage);

image = zeros( [height width dimension], ’uint8’);

for i = 1:1:height

Page 89: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.8 head segmentation 89

for j = 1:1:width

gray = inputimage(i,j,1);

if gray > level

image(i,j,1) = inputimage(i,j,1);

end

end

end

9.8 head segmentation

function [bw CENTERX CENTERY] = head_segmentation( inputImage, RADIOUS, ...

HEAD_PERCENT_CUTLEVEL, RADIAL_SEARCHING_STEP_SIZE )

% bw imagem binaria

% CENTERX coordenada X do centro da cabeca.

% CENTERY coordenada Y do centro da cabeca.

% inputImage imagem de entrada.

% RADIOUS raio esperado para a cabeca do cometa.

% HEAD_PERCENT_CUTLEVEL porcentagem de nıvel de cinza maximo estimado para

% a cabeca.

% RADIAL_SEARCHING_STEP_SIZE passos em que o threshold adaptativo deve ser

% andar.

copyImage = inputImage;

% PREPROCESSING STEP -------------------------------------------------------------------------

\begin{verbatim}

[height width dimension] = size(inputImage);

mdx = [ -1 0 1

-2 0 2

-1 0 1 ];

mdy = [ 1 2 1

0 0 0

-1 -2 -1 ];

dx = imfilter(inputImage,mdx,’replicate’);

dy = imfilter(inputImage,mdy,’replicate’);

gradientSobelImg = zeros( [height width dimension], ’uint8’);

for c=1:1:height

for d=1:1:width

gradientSobelImg(c,d,1) = double(double( double(dx(c,d,1) ) * ...

double(dx(c,d,1)) + double(dy(c,d,1) )* ...

double(dy(c,d,1)))^double(0.5));

if( gradientSobelImg(c,d,1) > 255 )

gradientSobelImg(c,d,1) = 255;

Page 90: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.8 head segmentation 90

end

end

end

sobelImgMaxIntensity = max(max(gradientSobelImg));

cutlevelInSobel = round(sobelImgMaxIntensity * 0.5);

I = gray_thresholding( gradientSobelImg, cutlevelInSobel);

% CIRCLE HOUGH TRANSFORM -------------------------------------------------------------------------

[y,x]=find(I);

[sy,sx]=size(I);

% Find all the require information for the transformatin. the ’totalpix’

% is the numbers of ’1’ in the image, while the ’maxrho’ is used to find

% the size of the Hough Matrix

totalpix = length(x);

% Preallocate memory for the Hough Matrix. Try to play around with the

% R, or the radius to see the different results.

HM = zeros(sy*sx,1);

R = RADIOUS;

R2 = abs(R^2);

% Performing Hough Transform. Notice that no "for-loop" in this portion

% of code.

% a. Preparing all the matrices for the computation without "for-loop"

b = 1:sy;

y = repmat(y’,[sy,1]);

x = repmat(x’,[sy,1]);

b1 = repmat(b’,[1,totalpix]);

b2 = b1;

% b. The equation for the circle

\end{par} \vspace{1em}

\begin{verbatim}

a1 = (round(x - sqrt(R2 - (y - b1).^2)));

a2 = (round(x + sqrt(R2 - (y - b2).^2)));

% c. Removing all the invalid value in matrices a and b

b1 = b1(imag(a1)==0 & a1>0 & a1<sx);

Page 91: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.8 head segmentation 91

a1 = a1(imag(a1)==0 & a1>0 & a1<sx);

b2 = b2(imag(a2)==0 & a2>0 & a2<sx);

a2 = a2(imag(a2)==0 & a2>0 & a2<sx);

ind1 = sub2ind([sy,sx],b1,a1);

ind2 = sub2ind([sy,sx],b2,a2);

ind = [ind1; ind2];

% d. Reconstruct the Hough Matrix

val = ones(length(ind),1);

data=accumarray(ind,val);

HM(1:length(data)) = data;

HM2 = reshape(HM,[sy,sx]);

% 6. Finding the location of the circle with radius of R

[maxval, maxind] = max(max(HM2));

[B,A] = find(HM2==maxval);

CENTERX = mean(A); CENTERY = mean(B);

fprintf(’\rCenter of Comet Head (%d, %d) \n’, CENTERX, CENTERY);

% RADIAL SEARCHING -------------------------------------------------------------------------

smoothedHeadImg = anisodiff2D(inputImage, 15, 1/7, 30, 2);

smoothedHeadImg = uint8(anisodiff2D(smoothedHeadImg, 15, 1/7, 30, 2));

head_cutlevel = round(max(max(smoothedHeadImg )) * ...

(1-(HEAD_PERCENT_CUTLEVEL/100)));

N_HEADPOINTS = round(360/RADIAL_SEARCHING_STEP_SIZE);

distances = zeros([N_HEADPOINTS 1 1],’int32’);

angles = double(N_HEADPOINTS);

points = zeros([N_HEADPOINTS 2 1], ’int32’);

MIN_RADIALSEARCH_RADIOUS = RADIOUS * 0.5;

MAX_RADIALSEARCH_RADIOUS = RADIOUS * 2;

count = 1;

% Obtendo o conjunto de pixeis de borda inicial

for j = 180:RADIAL_SEARCHING_STEP_SIZE:540

angle = radians(j);

for i = MIN_RADIALSEARCH_RADIOUS:1:MAX_RADIALSEARCH_RADIOUS

x = i*cos(angle);

y = i*sin(angle);

x = CENTERX + int32(x);

y = CENTERY + int32(y);

Page 92: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.8 head segmentation 92

% fix the coordinates

if x < 1

x = 1;

end

if y < 1

y = 1;

elseif y > height

y = height;

end

color = abs(smoothedHeadImg(y,x,1));

if ( color > head_cutlevel )

points(count,1) = y;

points(count,2) = x;

distances(count) = i;

angles(count) = angle;

end

end

% copyImage(points(count,1),points(count,2),1) = 255;

count = count + 1;

end

% Optimizing the boundary}

yy = double(N_HEADPOINTS);

xx = double(N_HEADPOINTS);

% Removing unecessary points

dist_size = length(distances);

count = 1;

if( N_HEADPOINTS > 2 )

BUFFERSIZE = 4;

for j = 1:1:N_HEADPOINTS

distMean = meanDistance(distances, dist_size, BUFFERSIZE,j);

if((points(j,1) > 0) && (points(j,2) > 0) )

dist_of_dist = abs(int32(distances(j)) - distMean );

if ( (dist_of_dist > 2) )

distances(j) = distMean;

x = distMean*cos(angles(j));

y = distMean*sin(angles(j));

x = CENTERX + int32(x);

y = CENTERY + int32(y);

yy(count) = y;

xx(count) = x;

Page 93: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.8 head segmentation 93

inputImage(y,x,1) = 255;

else

yy(count) = points(j,1);

xx(count) = points(j,2);

y1 = yy(count);

x1 = xx(count);

inputImage(y1,x1,1) = 255;

end

count = count + 1;

end

end

end

% figure, imshow(inputImage);

newPointsSize = N_HEADPOINTS - (N_HEADPOINTS - count);

yyFinal = double(newPointsSize);

xxFinal = double(newPointsSize);

for i=1:1:newPointsSize - 1

yyFinal(i) = yy(i);

xxFinal(i) = xx(i);

end

bw = [yyFinal(:),xxFinal(:)]; % linha coluna

end

% FUNCTIONS -------------------------------------------------------------------------

function mean = meanDistance( array, array_size, numof_neighbor, position)

neighbours = take_neighbour( array, array_size, numof_neighbor, ...

position);

mean = expected_value( neighbours, length(neighbours));

end

function value = expected_value( array, size)

[count values] = hist(array,unique(array));

size_hist = length(count);

value = 0;

for i=1:1:size_hist

value = value + ( (count(i)/size)*values(i) );

end

end

function neighbours = take_neighbour( array, array_size, numof_neighbor,...

position)

neighbours = double(numof_neighbor*2);

% left neighbor

for i=1:1:numof_neighbor

index = mod( array_size + (position - i), array_size);

Page 94: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.9 is connectedpixel 94

if( index == 0)

index = array_size;

end

neighbours(i) = array(index);

end

% right neighbor

for i=1:1:numof_neighbor

index = mod( array_size + (position + i), array_size);

if( index == 0)

index = array_size;

end

neighbours(i+numof_neighbor) = array(index);

end

end

9.9 is connectedpixel

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function boolResult = is_connectedpixel( bw_image, i, j)

% Funcao para verificar se a posicao (i,j) na be_image apresenta algum

% pixel com valor diferente de zero em sua 8-vizinhanca.

% bw_image - imagem binaria ( contudo, funciona para imagem em ciza tambem)

% i,j - posicao em y e x respectivamente

%

% boolResult Retorna 0 se n~ao houver pixels isolados e 1 caso contrario.

boolResult = 0;

[height width dimension] = size(bw_image);

% tratando as bordas extremas

% ---------------------------------------------------------------------

% se esta no canto sup. esq.

if( (i == 1) && (j == 1))

if(bw_image(1,2,1) ~= 0 || bw_image(2,1,1) ~= 0 || ...

bw_image(2,2,1) ~= 0)

boolResult = 1;

end

% se esta no canto sup. dir.

elseif((i == 1) && (j == width))

if(bw_image(1,width-1,1) ~= 0 || bw_image(2,width-1,1) ~= 0 || ...

bw_image(2,width,1) ~= 0)

boolResult = 1;

end

% se esta no canto inf. esq.

elseif((i == height) && (j == 1))

if(bw_image(height-1,1,1) ~= 0 || bw_image(height-1,2,1) ~= 0 ...

Page 95: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.10 nonblack var 95

|| bw_image(height,2,1) ~= 0)

boolResult = 1;

end

% se esta no canto inf. dir.

elseif((i == height) && (j == width))

if(bw_image(height-1,width-1,1) ~= 0 ||...

bw_image(height-1,width,1) ~= 0 || bw_image(height,width-1,1) ~= 0)

boolResult = 1;

end

% tratando as bordas inf, sup e lat

% -------------------------------------------------------------

% borda sup

elseif( i == 1)

if( bw_image(1,j-1,1) ~= 0 || bw_image(2,j-1,1) ~= 0 ||...

bw_image(2,j,1) ~= 0 || bw_image(2,j+1,1) ~= 0 || ...

bw_image(1,j+1,1) ~= 0)

boolResult = 1;

end

% borda inf

elseif(i == height)

if( bw_image( height,j-1,1) ~= 0 || ...

bw_image(height-1,j-1,1) ~= 0 || bw_image(height-1,j,1) ~= 0 || ...

bw_image(height-1,j+1,1) ~= 0 || bw_image(height,j+1,1) ~= 0)

boolResult = 1;

end

% borda esq

elseif( j == 1)

if( bw_image(i-1,1,1) ~= 0 || bw_image(i-1,2,1) ~= 0 || ...

bw_image(i,2,1) ~= 0 || bw_image(i+1,2,1) ~= 0 || ...

bw_image(i+1,1,1) ~= 0)

boolResult = 1;

end

% borda dir

elseif( j == width)

if( bw_image(i-1,width,1) ~= 0 || bw_image(i-1,width-1,1) ~= 0 ...

|| bw_image(i,width-1,1) ~= 0 || bw_image(i+1,width-1,1) ~= 0 ...

|| bw_image(i+1,width,1) ~= 0)

boolResult = 1;

end

else

if( bw_image(i-1,j-1,1) ~= 0 || bw_image(i-1,j,1) ~= 0 || ...

bw_image(i-1,j+1,1) ~= 0 || bw_image(i,j-1,1) ~= 0 ||...

bw_image(i,j+1,1) ~= 0 || bw_image(i+1,j-1,1) ~= 0 || ...

bw_image(i+1,j,1) ~= 0 || bw_image(i+1,j+1,1) ~= 0)

boolResult = 1;

end

end

end

9.10 nonblack var

%--------------------------------------------------------------------------

Page 96: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.11 radians 96

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function [ variance ] = nonblack_var( gray_image )

[y x] = find(gray_image);

[dataSize dimension] = size(y);

validData = zeros(1, dataSize);

for i=1:1:dataSize

validData(i) = gray_image(y(i),x(i),1);

end

variance = var(validData);

9.11 radians

function radians = radians(degrees)

% RADIANS (DEGREES)

%

% Conversion function from Radians to Degrees.

%

% Richard Medlock 12-03-2002

radians = ((2*pi)/360)*degrees;

9.12 threshold by range

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function image = threshold_by_range( inputimage, level1, level2)

[height width dimension] = size(inputimage);

image = zeros( [height width dimension], ’uint8’);

for i = 1:1:height

for j = 1:1:width

gray = inputimage(i,j,1);

Page 97: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

9.13 threshold with reconstruction 97

if gray > level1 && gray < level2

image(i,j,1) = inputimage(i,j,1);

end

end

end

9.13 threshold with reconstruction

%--------------------------------------------------------------------------

%MatLab Script

% C y c C o m e t

% Author: Daniel San Martin Pascal Filho

%--------------------------------------------------------------------------

function outputImg = threshold_with_reconstruction( image, t1)

% image - Imagem em tons de cinza

% t1 - Nivel para o threshold superior

%

% outputImg Retorna a imagem binarizada e reconstruida

[height width dimension] = size(image);

% outputImg = zeros( [height width dimension], ’uint8’);

outputImg = false( height, width);

t2 = t1 - 2;

for i=1:1:height

for j=1:1:width

if( image(i,j,1) > t1)

outputImg(i,j) = true;

elseif ( image(i,j,1) < t2)

outputImg(i,j) = false;

%% fuzzy area

elseif (( image(i,j,1) > t2) && ( image(i,j,1) < t1))

connected = is_connectedpixel( outputImg, i, j);

if( connected )

outputImg(i,j) = true;

else

outputImg(i,j) = false;

end

end

end

end

end

Page 98: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

98

10 Apendice B - Artigo

Page 99: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Desenvolvimento de uma Metodologia Computacionalpara Automatizar o Processo de Avaliacao do Teste

Cometa

Daniel San Martin1, Leandro Coser1

1 Projeto Cyclops, Departamento de Informatica e Estatıstica (INE)Universidade Federal de Santa Catarina (UFSC)

Florianopolis – SC – Brasil

{daniel.smpf, leandro.coser}@gmail.com

Abstract. The evaluation process of Comet Assay genotoxicity can be ai-ded by computational analysis tools, providing faster and more accurateanalysis. However, these systems have high prices, which difficults theiracquisition by laboratories.Aiming to be the basis for the construction of such a computationaltool, this work presents a proposal for a methodology to automate theprocess of the Comet Assay evaluation through Digital Image Processingtechniques(DIP). With the application of DIP techniques it is possibleto extract geometric characteristics of comets, through which they areclassified.

Key-words: Image Processing, Comet Assay, DNA, Segmentation

Resumo. O Processo de avaliacao da genotoxicidade do Teste Cometapode ser auxiliado por ferramentas de analise computacional, dando maisrapidez e precisao as analises. No entanto, esses sistemas sao importadose tem um preco muito elevado, o que dificulta sua aquisicao por parte doslaboratorios.Este trabalho apresenta a proposta de uma metodologia computacional paraautomatizar o processo de avaliacao do teste cometa atraves de tecnicas deprocessamento de imagens digitais(PDI). Com a aplicacao de tecnicas dePDI e possıvel extrair caracterısticas geometricas dos cometas, por meiodo qual sao corretamente classificados.

Palavras-chave: Processamento de Imagens, Teste Cometa, DNA,Segmentacao

1. Introducao

O Teste Cometa, tambem conhecido como Ensaio Cometa, e uma tecnica eletrofo-retica utilizada para a deteccao de quebras de fita simples de DNA. Atraves destatecnica, e possıvel a avaliacao de dano e de reparo do DNA em celulas, utilizandoum pequeno grupo de amostras. Por ser de facil execucao e de baixo custo, foilargamente adotado em toxicologia genetica, em testes de genotoxicidade in vitro,in vivo, no biomonitoramento ambiental e no monitoramento populacional humano.

Page 100: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Contudo, a simplicidade do Teste vai de encontro ao processo de classificacaodos nucleos quanto ao dano de DNA, onde de centenas de celulas presentes naslaminas devem ser analisadas de forma visual. As horas perante o microscopioclassificando os nucleos provocam cansaco e prejudicam classificacoes subsequentes,pois as estruturas classificadas nao podem ser marcadas e os calculos para a obtencaodo dano total da analise sao feitos de forma manual.

Para contornar esse problema, os especialistas vem adotando sistemas de analisecomputacional para apoiar suas pesquisas. Em geral, esses sistemas sao baseados naanalise das imagens geradas ao final do processo. No entanto, ha sistemas que ma-nipulam, ajustam e capturam imagens diretamente do microscopio, alem de realizara analise automatica das mesmas. Sistemas desse porte ainda sao raros nos labora-torios brasileiros, uma vez que a maioria dos microscopios utilizados nao podem sermanipulados por software e suportam apenas o acoplamento de uma camera digital.

Nesse sentido, procurou-se desenvolver uma metodologia computacional, atravesde tecnicas de processamento de imagens, para automatizar o processo de classifica-cao dos nucleos celulares de imagens geradas pelo Teste Cometa.

2. Medicoes no Teste Cometa

Na literatura e possıvel encontrar diversas formas para avaliar as imagens do testea fim de obter o dano de DNA de cada cometa(KUMARAVEL et al., 2007). Estesmetodos buscam atraves de uma forma visual, encontrar o grau de genotoxicidadetotal.

Figura 1: Classificacao visual su-gerida por Collins et al. (1995).Imagens de cometas (a partir delinfocitos), coradas com DAPI.

Collins, AG e SJ (1995) publicaram um metodo de pontuacao visual(“visualscoring”) atraves do qual se pontua cada cometa, classificando-os em graus que vaode 0 a 4 (Fig. 1). Dessa forma, se 100 cometas sao classificados em uma lamina, oseu “score” total ficara entre 0 e 400 unidades arbitrarias.

2.1. O Problema dos Cometas em Forma de Nuvem

Na analise visual, os cometas sao classificados pelos especialistas com base na relacaode proporcao entre a cabeca e a cauda, e pela concentracao de material genetico nacabeca do cometa. Se houver uma baixa concentracao de DNA na regiao da cabeca,ou seja, caso o cometa tenha a forma de uma nuvem, ele sera classificado como classe4 (COLLINS; AG; SJ, 1995).

Contudo, pela analise exclusivamente geometrica, o que se faz e ver, por exemplo,quantas vezes a cauda do cometa e maior do que a cabeca, e logo classifica-lo em

Page 101: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

Figura 2: Cometa da classe 4. Naopossui cabeca.

uma das cinco classes. Contudo, a classe quatro (Fig. 2.1) nao possui uma cabeca,o que torna difıcil sua caracterizacao muito difıcil utilizando essa abordagem.

Esses problemas colocam os cometas da classe 4 fora da capacidade de medicaodos sistemas baseados em analise de imagem ou, quando analisadas por eles, podemgerar medicoes inadequadas. Nuvens sao, portanto, classificadas apenas pela analisevisual, i.e., por especialistas.

Assim, a classificacao dos cometas em forma de nuvem deve ser feita de formavisual e contabilizada pelo sistema de analise de imagens(KUMARAVEL et al.,2007).

3. Metodologia

A metodologia desenvolvida seguiu os passos classicos de um sistema de pro-cessamento de imagens (PDI) do domınio espacial(GONZALEZ; WOODS, 2002).Utilizaram-se filtros, operacoes morfologicas, alem de tecnicas segmentacao de ima-gem com o intuito de extrair informacoes relevantes para classificar os cometas atra-ves de informacoes geometricas.

Figura 3: Diagrama simplificado dos principais passos da metodologia.

O processamento, que inclui a segmentacao e a extracao de caracterısticas, da

Page 102: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

cabeca e do cometa se da deforma separada. Isso permite que o algoritmo sejaimplementado de forma paralela em alguns trechos. Os passos da metodologia seraodetalhados nas proximas sessoes.

3.1. Aquisicao de Imagem

As imagens microscopicas utilizadas neste trabalho sao de culturas celulares de fibro-blastos (macaco Resus) cedidas pelo Laboratorio de Virologia Aplicada da UFSC.

Para a aquisicao das imagens, utilizou-se um microscopio de fluorescencia Olym-pus BX40 com filtro de excitacao 515-560nm e filtro de barreira de 590nm. Inici-almente, efetuou-se uma varredura da lamina com um aumento de 400x. Para aclassificacao dos cometas, segundo Silva et al.(1996) as imagens foram visualizadascom aumentos de 1000x e 4000x. As imagens digitais foram capturadas em amostrasde 2048x1536 pıxeis no formato JPEG e espaco de cor RGB.

Apos sua digitalizacao, as imagens provenientes do microscopio foram converti-das para imagens de 8-bits, em 256 nıveis de cinza.

3.2. Definicao da Regiao de Interesse

A regiao de interesse na imagem e a regiao onde a analise devera ser realizada.No prototipo desenvolvido, fica a cargo do usuario selecionar atraves de uma zonaretangular desenhada com o “mouse” a regiao a ser analisada. Essa regiao deveraconter, preferencialmente, apenas um cometa. Ainda, e possıvel utilizar a opcao declicar sobre o cometa desejado. Neste metodo, area de interesse sera definida comoum retangulo como canto superior esquerdo localizado em duas vezes o diametro dacabeca, o diametro e o dobro do raio especificado, a esquerda do centro da cabecae duas vezes o diametro da cabeca acima do centro da cabeca. Seu canto inferiordireito localiza-se a quatro vezes o diametro da cabeca para a direita do centro dacabeca e duas vezes o diametro da cabeca para baixo.

3.3. Pre-processamento

A fim de realizar a suavizacao e eliminacao de parte do ruıdo da imagem de en-trada, denotada por Isource, passou-se um filtro Gaussiano com kernel de 7 e σ =5 na mesma, gerando uma nova imagem(Igaussfiltered). Com isso houve uma grandereducao do ruıdo. Contudo, perdeu-se parte das informacoes de borda das cabecasdos cometas.

Sendo assim, como somente a segmentacao da cabeca do cometa depende dareducao do ruıdo e suavizacao da imagem de entrada, optou-se por inserir um filtro dedifusao anisotropica nesta etapa do algoritmo de busca radial usado para segmentara cabeca, cujo detalhamento sera dado mais adiante.

3.4. Segmentacao do Cometa atraves de Tecnicas Baseadas emLimiarizacao

Para segmentar o cometa, adotou-se a tecnica apresentada por Bocker et al. (1999).Em seu trabalho eles desenvolveram uma metodologia capaz de automatizar todoprocesso da analise computacional das imagens do Ensaio Cometa, ou seja, desde a

Page 103: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

aquisicao da imagem diretamente do microscopio eletronico ate a extracao de variascaracterısticas. A cabeca, no entanto, sera segmentada separadamente numa etapaposterior.

(A) imagem de entrada (B) passo 1

(C) passo 2 (D) abertura e fechamento

(E) remocao de obj. nas bordas

Tabela 1: Principais passos para a segmentacao do cometa inteiro

A tecnica adotada para segmentar os cometas e constituıda de dois passos. Noprimeiro passo, uma limiarizacao global, t1, e determinada pela contagem dos pıxeisruidosos dependentes da limiarizacao presentes na imagem binaria. A segunda partedo metodo tenta tornar mais confiavel a segmentacao e visa extrair a transicao debaixo contraste entre as estruturas do cometa e o fundo da imagem.

Nesse sentido, Bocker et al.(1999) utilizam uma limiarizacao adaptativa paramelhorar a qualidade da segmentacao resultante. O procedimento executado nestepasso ficou conhecido como limiarizacao com “reconstrucao”. Ele e baseado na limi-arizacao com tolerancia por comparacao com histerese.

Apos a segunda etapa, a imagem e filtrada com operacoes morfologicas de aber-tura e fechamento para excluir pequenos artefatos (Tab. 1; D). Excluem-se, tambem,eventuais objetos que interceptem as bordas por meio de um algoritmo de remocaode bordas (SOILLE, 2003). Logo, parte-se do pressuposto que o cometa a ser ana-lisado nao intercepta as bordas da imagem. Se isso ocorrer o cometa sera removidoequivocadamente da imagem e a analise falhara.

3.5. Metodo Baseado no Algoritmo CHARM para Segmentacao daCabeca do Cometa

As cabecas dos cometas podem ser tratadas como objetos circulares(RIVEST etal., 1996). Contudo, ha casos em que a cabeca do cometa apresenta uma baixacircularidade; anomalia causada pela grande variacao nos nıveis de cinza da mesma,fundindo-a com a cauda.

Em trabalhos anteriores, usou-se limiarizacao e morfologia binaria para segmen-tar tanto o cometa quanto sua cabeca(FRIEUAFF; W; HARTMMAN, ). Outros

Page 104: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

trabalhos mais modernos utilizam limiarizacao com histerese para assegurar que ospıxeis da cauda tenham sido segmentados corretamente aliado a um valor de altolimiar para segmentar a cabeca do cometa (BOCKER et al., 1999). No entanto,esses metodos nao apresentaram eficiencia para amostras mais complexas, como noscasos em que a cabeca do cometa apresenta estruturas internas.

Buscando desenvolver uma metodologia capaz de lidar com a presenca de dessasestruturas, optou-se por seguir a linha de segmentacao das cabecas de cometas apre-sentada por Vojnovic et al. (VOJNOVIC et al., ), que usaram o algoritmo CHARM(“Compact Hough And Radial Map”) para seu delineamento.

O metodo desenvolvido seguindo a ideia do CHARM consiste de dois passos. Noprimeiro, busca-se o centro da provavel cabeca ao longo da ROI. Esse feito e obtidopor meio de uma deteccao de circunferencia pela transformada de Hough atraves dovetor de gradiente de Sobel limiarizado.

(a) Imagem de entrada. (b) Borda inicial.

(c) Borda melhorada.

Em seguida, e preciso delinear as bordas da cabeca. Para essa tarefa, foi imple-mentada uma adaptacao do algoritmo conhecido como “Radial Searching” (BuscaRadial), baseado no procedimento descrito por Xu et al.(2003) e por Mourotis etal.(1998).

Nesta adaptacao do “radial searching” a selecao do conjunto inicial de pontos deborda e feita com base valor medio esperado para o nıvel de cinza da cabeca em cadauma das 36 linhas de busca. Depois esse conjunto e refinado para se obter maiorsuavidade na borda.

O refinamento utiliza o valor esperado das distancias dos 8-vizinhos de cadaponto. Assim, se um ponto e esta longe de sua vizinhanca este e ”puxado”paraperto.

3.6. Extracao de Caracterısticas das Imagens Segmentadas

Para a metodologia de classificacao adotada neste trabalho, as caracterısticas rele-vantes do cometa e de sua cabeca sao as localizacoes de seus pontos extremos nadirecao horizontal, os quais serao utilizados nos calculos da etapa de classificacaogeometrica, e suas areas, usadas pela etapa de deteccao de erros. E preciso esclarecer

Page 105: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

que o algoritmo de busca de extremos encontrara os pontos extremos do cometa enao apenas da cauda, a qual comeca apos o termino da cabeca. Mesmo assim, ocalculo do comprimento da cauda e trivial.

Para melhorar o desempenho, todas as operacoes de extracao de caracterısticassao executadas sobre as duas imagens binarias geradas pela etapa de processamento(uma contendo objetos que compoem a cabeca e outra, contendo os que compoema cauda).

3.7. Deteccao de Erros

Considera-se um erro:

• se a area da cabeca gerada pela etapas de PDI for maior que a area do cometa,incluindo os fragmentos pertencentes;

• se o comprimento do cometa for menor do que o diametro da cabeca;• a nao segmentacao da cabeca ou do proprio cometa tambem gera um erro.

A ocorrencia de um erro implica a exibicao de uma mensagem ao usuario e anao classificacao do cometa.

3.8. Classificacao dos Cometas

Atraves de tecnicas que levam em consideracao as diferencas das intensidades me-dias entre a cabeca ou que utilizam o numero de objetos segmentados, tentou-segarantir que a imagem continha um cometa em forma de nuvem (classe 4). Con-tudo, nenhuma das tecnicas adotadas foi suficiente. Esses resultados desencorajarama tentativa de caracterizar os cometas em forma de nuvens. Assim, este trabalhofocou-se apenas na classificacao dos cometas nas classes 1, 2, 3 e 4, baseando-seexclusivamente em informacoes geometricas.

Na abordagem de classificacao geometrica calcula-se quantas vezes maior e acauda do cometa em relacao ao diametro da cabeca, propriedade denotada por ∆hc.O valor encontrado e comparado com os limites contidos na base de conhecimentopara realizar a classificacao.

Empiricamente, definiu-se um conjunto de proporcoes para cada classe:

• Classe 0, se ∆hc < 0.5;• Classe 1, se 0.5 ≤ ∆hc < 1;• Classe 2, se 1 ≤ ∆hc < 2;• Classe 3, se ∆hc ≥ 2;

4. Resultados

Foram analisados 25 cometas de uma mesma imagem visualmente por um especia-lista sem o uso de ferramentas computacionais de analise. Em seguida, a imagemcontendo os mesmos cometas foi submetida a classificacao por um usuario, quepassou por um breve treinamento sobre o Teste Cometa, utilizando o prototipodesenvolvido.

Page 106: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

(a) Especialista. (b) Usuario do Prototipo.

Figura 4: Comparacao da analise visual feita por um especialista em relacao a analisefeita por um usuario utilizando o prototipo. Os dois avaliaram a mesma imagem.

Utilizando-se os criterios definidos por Collins, AG e SJ (1995), obteve-se um“score” total de 29 “unidades arbitrarias” para a classificacao feita pelo especialista(Fig. 4a), enquanto o “score” total da classificacao feita pelo usuario atraves doprototipo foi de 27(Fig. 4b). Nesse caso, o prototipo apresentou uma diferenca de6.9 % em relacao a classificacao feita pelo especialista.

Apesar do prototipo ter sido implementado em MATLAB, os tempos para aclassificacao de cada cometa foram proporcionais a area da imagem analisada eficaram proximos de 1,39 segundos.

5. Conclusoes

Ao longo desta pesquisa, o estudo detalhado das imagens do Teste Cometa mos-trou que elas possuem caracterısticas que dificultam sua classificacao, sendo precisorecorrer a direntes artifıcios para se ter sucesso.

Nesse sentido, a segmentacao da cabeca do cometa foi o procedimento que obtevemelhores resultados. Por outro lado, a segmentacao do cometa inteiro adotadomostrou-se bastante deficiente quando o numero de objetos era mantido constantee diferentes imagens eram segmentadas. Os dois casos tem como ponto fraco anecessidade do usuario abastecer o algoritmo com conhecimentos, como o tamanhodo raio esperado para as cabecas dos cometas.

No entanto, essas dificuldades nao foram suficientes para prejudicar a qualidadedos resultados. Nos testes, a diferenca entre as classificacoes do especialista e dousuario do prototipo foi muito pequena. Ainda, o tempo de resposta da classificacaoobtido e aceitavel.

Por fim, pode-se dizer que a busca por uma heurıstica para a classificacao au-tomatica das imagens provenientes do Teste Cometa e uma tarefa complexa. Estetrabalho adaptou diferentes metodologias a fim de maximizar os resultados com omınimo de esforco computacional e humano, a fim de tornar a classificacao do TesteCometa mais precisa, menos subjetiva, menos desgastante e mais rapida para todos

Page 107: Desenvolvimento de uma Metodologia Computacional para ... · Trabalho de conclus~ao de curso sob o t tulo\Desenvolvimento de uma Metodologia Computacional para Automatizar o Processo

aqueles que diariamente o realizam.

Referencias

BOCKER, W. et al. Automated comet assay analysis. Cytometry, 1999.COLLINS; AG, M.; SJ, D. The kinetics of repair of oxidative dna damage (strandbreaks and oxidised pyrimidine) in human cells. Mutat Res, p. 69 – 77, 1995.FRIEUAFF; W, D.; HARTMMAN, A. Automatic analysis of slides processed inthe comet assay. Mutagenisis.GONZALEZ, R. C.; WOODS. Digital Image Processing. Third. [S.l.]: Addison-Wesley Publishing Company, 2002.KUMARAVEL, T. S. et al. Comet assay measurements: a perspective. Cell BiolToxicol, Springer Science + Business Media, Julho 2007.MOUROUTIS, T.; ROBERTS, S. J.; BHARATH, A. A. Robust cell nucleisegmentation using statistical modelling. Bioimaging, London, UK, p. 79—-91,Marco 1998.RIVEST, J. F. et al. Automated measurements of tails in single cell geleletrophoresis assay. IEEE, 1996.SOILLE, P. Morphological Image Analysis: Principles and Applications. [S.l.]:Springer, 2003.VOJNOVIC, B. et al. A high sensitivity, high throughput, automated single-cellgel electrophoresis (‘comet’) dna damage assay. In: . [S.l.: s.n.]. For submission to:Physics in Medicine and Biology.Contour detection by using radial searching for CT images.