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
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
“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
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.
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
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
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
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
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
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
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
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
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
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
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
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;
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.
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.
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
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;
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.
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
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.
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.
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
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.
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).
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.
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
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
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.
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)
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)
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
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
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
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.
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.
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,
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
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.
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
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)}.
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)
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.
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
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.
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.
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.
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,
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
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).
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.
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.
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)
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
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).
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
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
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.
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.
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,
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
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
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.
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.
6 Resultados 67
Figura 6.1: Classificacao do especialista x usuario atraves do prototipo.
Figura 6.2: Tempo de resposta do prototipo.
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
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.
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.
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.
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.
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.
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:
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’);
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
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)
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
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
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);
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
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);
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
%--------------------------------------------------------------------------
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);
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);
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’);
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];
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
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;
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);
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);
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;
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);
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 ...
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
%--------------------------------------------------------------------------
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);
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
98
10 Apendice B - Artigo
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.
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
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
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
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
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
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.
(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
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.
Top Related