44
Mestrado em Engenharia Biomédica Análise Computacional de Imagens de Focos de Criptas Aberrantes Trabalhos Práticos Diana Catarina Martins Cidre Junho 2011

Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Mestrado em Engenharia Biomédica

Análise Computacional de Imagens de

Focos de Criptas Aberrantes

Trabalhos Práticos

Diana Catarina Martins Cidre

Junho 2011

Page 2: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Análise Computacional de Imagens de Focos

de Criptas Aberrantes

Relatório realizado no âmbito da Unidade Curricular de

Trabalhos Práticos

Curso de Mestrado em Engenharia Biomédica

Faculdade de Engenharia da Universidade do Porto

Diana Catarina Martins Cidre

Licenciada em Engenharia Biomédica no Instituto Politécnico de

Bragança (2010)

Orientador:

João Manuel R. S. Tavares

Professor Auxiliar do Departamento de Engenharia Mecânica

Faculdade de Engenharia da Universidade do Porto

Page 3: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | III

AGRADECIMENTOS

Ao Professor João Tavares, pela orientação, pela simpatia, pelo apoio e

pela disponibilidade que sempre demonstrou.

Page 4: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | IV

RESUMO

A necessidade de segmentar imagens médicas surge na sequência da

evolução tecnológica, isto é, da necessidade do computador realizar “aquilo” que

para um médico é intuitivo – como isolar e/ou identificar uma estrutura numa

imagem. Com esta evolução não se pretende substituir o médico, mas sim auxilia-

lo na realização de um diagnóstico mais correcto, diminuindo o erro humano,

aumentando a rapidez dos processos de diagnosticar e seguimento de uma

doença e diminuindo custos sem a necessidade de recorrer a exames auxiliares e

complementares ao diagnóstico.

Neste trabalho prático usaram-se imagens de focos de criptas aberrantes

com a finalidade de segmentar as criptas existentes.

Para a realização do trabalho pratico recorreu-se ao software Matlab. Numa

primeira fase fez-se um pré-processamento das imagens originais para posterior

aplicação das técnicas de segmentação. Para simplificar a interacção e

comparação dos resultados obtidos, foi criada uma interface gráfica que permite

fácil acesso e parametrização das operações de processamento e análise

usadas.

Palavras-chave: Focos de criptas aberrantes, Matlab, processamento de

imagens, segmentação e interface gráfica de utilizador.

Page 5: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | V

ÍNDICE

1. Introdução ................................................................................................................ 1

2. Metodologia.............................................................................................................. 3

2.1. Pré-Processamento ........................................................................................... 3

2.1.1. Operações de Intensidade .......................................................................... 4

2.1.2. Operadores Locais ..................................................................................... 4

2.1.3. Operadores Morfológicos............................................................................ 6

2.2. Segmentação .................................................................................................... 6

2.2.1. Segmentação por Threshold ....................................................................... 7

2.2.2. Segmentação Baseada em Contornos ....................................................... 8

2.2.3. Segmentação Baseada em Regiões ........................................................... 9

2.3. Interface Gráfica com o Utilizador (GUI) .......................................................... 11

2.3.1. Desenho da Interface ............................................................................... 12

2.3.2. Interface Desenvolvida ............................................................................. 14

3. Análise dos Resultados .......................................................................................... 19

3.1. Pré-Processamento ......................................................................................... 19

3.2. Segmentação .................................................................................................. 24

3.3. Aplicação do Processamento em Outras Imagens .......................................... 26

4. Conclusão .............................................................................................................. 29

5. Referências ............................................................................................................ 30

Anexos ....................................................................................................................... 31

Page 6: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | VI

ÍNDICE DE FIGURAS

Figura 1 – Focos de Criptas Aberrantes ........................................................................... 2

Figura 2 – Componentes de uma Interface Gráfica .........................................................12

Figura 3 – Desenho da Interface pretendida. ..................................................................13

Figura 4- Fig-File da interface construída. .......................................................................14

Figura 5 – Janela da pasta onde estão as imagens, que abre ao clicar no botão Load, onde se escolhe a imagem inicial. ...................................................................................15

Figura 6 – Imagem inicial colocada na primeira área de imagem. ...................................15

Figura 7 – Selecção da operação a executar, dos seus parâmetros, e imagem processada na segunda área de imagem. .......................................................................16

Figura 8 – Troca da imagem original pela imagem processada e “limpeza” da segunda área de imagem. ..............................................................................................................16

Figura 9 – Execução de uma segunda operação de processamento sobre uma imagem já processada anteriormente. ...........................................................................................17

Figura 10 – Nova figura independente criada ao clicar no botão Output. ........................17

Figura 11 – Selecção do botão Save Processed Image que vai guardar a imagem processada na pasta pretendida. .....................................................................................18

Figura 12 – Selecção do botão Close the Window que vai fechar a janela da interface. .18

Figura 13 – Resultados do Filtro Média para diferentes tamanhos de máscara. .............20

Figura 14 - Resultados do Filtro Gaussiano para diferentes tamanhos de máscara. .......20

Figura 15 - Resultados do Filtro Mediana para diferentes tamanhos de máscara. ..........21

Figura 16 - Resultados do Filtro Mínimo para diferentes tamanhos de máscara. ............21

Figura 17 - Resultados do Filtro Máximo para diferentes tamanhos de máscara. ...........22

Figura 18 – Melhor resultado para cada filtro de suavização. ..........................................23

Figura 19 – Equalização e Expansão do Histograma sobre a Imagem Suavizada ..........23

Figura 20 – Aplicação dos Filtros de Realce à imagem depois da expansão. .................24

Figura 21 – Aplicação de operações morfológicas (à esquerda: abertura e à direita: fecho). .............................................................................................................................24

Page 7: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | VII

Figura 22 – Aplicação do método de Otsu às imagens depois processadas com os operadores morfológicos (à esquerda: abertura e à direita: fecho). .................................25

Figura 23 – Negativo da imagem depois do pré-processamento .....................................25

Figura 24 – Aplicação do Watershed à imagem pré-processada com ajuda de operadores morfológicos. ...................................................................................................................26

Figura 25 – Imagem A pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo). ........27

Figura 26 - Imagem B pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo). ........27

Figura 27 - Imagem C pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo). ........28

Page 8: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 1

1. INTRODUÇÃO

O cancro do cólon desenvolve-se no intestino grosso, sendo designado por

cancro colorectal (CCR) e é um dos tumores malignos mais frequentes, sendo

que em Portugal, em termos de mortalidade, está entre os cinco tipos de cancro

mais importantes. Ao contrário do que acontece com outras doenças malignas, é

possível evitar o cancro colorectal devido ao longo período de tempo desde o

aparecimento de um pólipo até ao aparecimento do carcinoma que possibilita

detectar e remover a lesão benigna. Os pólipos mais usuais e clinicamente mais

importantes são os pólipos adenomatosos e de acordo com indicações médicas

internacionais, a detecção precoce e a remoção destes pólipos pode prevenir o

cancro colorectal e aumentar significativamente as hipóteses de sobrevivência.

No entanto, muitos aspectos de saúde pública relacionados com a prevenção dos

pólipos adenomatosos estão ainda em discussão, não existindo acordo sobre os

programas de prevenção. Neste contexto, os focos de criptas aberrantes (FCA)

podem ter um papel crucial e determinante[1].

Os focos de criptas aberrantes são grupos de criptas (pequenos poços, no

epitélio do cólon) aberrantes (não normais), que se supõem serem os precursores

do cancro colorectal. A sua observação in vivo é hoje possível graças às

modernas técnicas endoscópicas de amplificação e de cromoscopia e definem-se

como um conjunto de uma ou mais criptas, de maiores dimensões e

discretamente elevadas relativamente às circundantes, apresentando uma

camada de células epiteliais espessa que cora mais intensamente com o azul-de-

metileno que a das criptas adjacentes, existindo igualmente um aumento de

espaço peri-críptico (Figura 1). De facto, de acordo com estudos endoscópicos e

experiencias com animais, os FCA precedem a eclosão dos adenomas. Assim, se

tal for comprovado, isto significa que os focos de criptas aberrantes deverão ser

considerados parte da sequência adenoma-carcinoma e poderão vir a ser

utilizados não só na estratificação do risco, mas também na investigação de

agentes activos na quimioprevenção do carcinoma colo-rectal[1].

Page 9: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 2

Figura 1 – Focos de Criptas Aberrantes[1]

.

Este trabalho prático trata do processamento de imagens endoscópicas de

FCA. O seu objectivo principal é estudar e comparar algoritmos de

processamento e análise de imagem que permitam o auxilio ao diagnóstico

médico, para prevenção e tratamento do cancro colorectal.

Os métodos actuais utilizados para classificar os FCA e os pólipos são

subjectivos pois baseiam-se em observações médicas directas, apenas, e não

estão automatizados, nem estandardizados. É necessário ter soluções, fiáveis,

capazes de identificar e detectar os focos de criptas aberrantes e reconhecer e

classificar os diversos tipos de pólipos.

As imagens de FCA que foram utilizadas neste trabalho foram obtidas com

colonoscopia, com cromoscopia e magnificação, e com endoscopia flexível.

Os algoritmos de processamento de imagem têm como objectivo serem

usados como métodos auxiliares na leitura e análise clínica, como métodos

auxiliares na estandardização dos padrões dos orifícios de criptas e classificação

dos padrões dos pólipos, e ainda permitir reduzir significativamente o tempo de

análise das imagens endoscópicas. Assim, tais algoritmos facilitariam e

acelerariam os programas de vigilância e prevenção do cancro colorectal.

Page 10: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 3

2. METODOLOGIA

O objectivo primordial deste trabalho prático foi analisar vários algoritmos de

processamento e análise de imagens incluídos no pacote Matlab em imagens de

focos de criptas aberrantes, tentando obter uma segmentação de baixo nível; isto

é, uma segmentação elementar. Assim, usaram-se e analisaram-se técnicas de

pré-processamento para preparar as imagens para a segmentação, seguido da

aplicação e ensaio de técnicas usuais de segmentação. Para tal, foi desenvolvida

uma interface gráfica para facilitar a utilização das técnicas usadas e comparação

dos resultados obtidos.

22..11.. PPRRÉÉ--PPRROOCCEESSSSAAMMEENNTTOO

Antes de realizar a segmentação é necessário restaurar e/ou realçar as

imagens originais de forma a obter resultados mais precisos. Para isso são

normalmente realizadas operações de intensidade, operações locais e operações

morfológicas, de maneira a melhorar a qualidade da imagem a ser segmentada.

Pode ser preciso retirar o ruído presente numa imagem suavizando a

mesma, bem como melhorar o brilho e o contraste, normalizar a gama de valores

de intensidade, realçar detalhes pondo em evidência características de interesse,

preservar atributos essências da forma dos objectos e remover detalhes

irrelevantes.

Dos operadores de intensidade fazem parte a equalização e a expansão do

histograma, nas operações locais usou-se o filtro de média, o mediana, o

Gaussiano, o de mínimo e o de máximo, o Laplaciano, o High-Boost e o Unsharp,

e, por fim, nas operações morfológicas utilizou-se a erosão e a dilatação e

algumas das suas combinações, como o open e o close.

Page 11: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 4

22..11..11.. OOPPEERRAAÇÇÕÕEESS DDEE IINNTTEENNSSIIDDAADDEE

As técnicas de modificação de histograma (operações de intensidade) são

conhecidas como técnicas ponto-a-ponto, uma vez que o valor de cinzento de um

certo pixel após o processamento depende apenas do seu valor original.

A Equalização do Histograma (histeq) aumenta o contraste das imagens,

transformando os valores numa imagem de intensidade de modo a que o

histograma da imagem resultado corresponda aproximadamente a um histograma

especificado.

Quando uma imagem apresenta uma distribuição não uniforme de níveis de

cinzento o processo de equalização de histograma, que visa o aumento da

uniformidade dessa distribuição, produz bons resultados permitindo assim realçar

diferenças de tonalidade e resultando no aumento do nível de detalhes

perceptíveis.

A expansão do histograma (imadjust) ajusta os valores de intensidade da

imagem aumentando o contraste da mesma. Nesta técnica, o histograma original

de uma imagem é modificado de tal forma que parte dele é expandida para

ocupar toda a faixa de cinzento da imagem resultante[2].

22..11..22.. OOPPEERRAADDOORREESS LLOOCCAAIISS

Nas técnicas de processamento orientadas à vizinhança (operadores locais),

o valor resultante do processamento depende do valor original do pixel e, de

alguma forma, dos pixels que circundam o elemento de imagem original.

Filtro Media - Neste filtro o valor de cinzento de cada pixel é substituído pela

média local da sua vizinhança. Tem como efeitos o blurring (desfocagem) ou

suavização da imagem. Quanto maior a máscara usada, maior a quantidade de

filtragem e maior será a quantidade de ruído reduzido o que implica uma superior

perda de detalhes. O efeito do filtro da média é eliminar conjuntos de pixels mais

claros ou mais escuros em relação aos pixels vizinhos[3].

Filtro Gaussiano – Filtro de alisamento; é adequado para remover ruídos

com distribuição normal. Actua na imagem trocando cada pixel por uma média

Page 12: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 5

ponderada dos pixels vizinhos, evitando o espalhamento de uma propriedade

local da imagem[3].

Filtro Mediana – Este filtro procura eliminar o ruído sem sofrer os efeitos do

filtro de média. Ao utilizar uma máscara de dimensões mxn, o elemento central é

substituído pelo elemento central do vector ordenado constituído pelos m*n

elementos. Assim, retira ruído sem afectar gravemente a nitidez e preserva os

contornos[3].

Filtro de Máximo e de Mínimo – Atribui ao pixel em (i,j), o valor máximo ou

mínimo na vizinhança em torno do pixel. O filtro de máximo realça os pixels de

maior brilho na imagem, enquanto o filtro de mínimo realça os de menor brilho[3].

Filtro Laplaciano – Filtro do tipo passa-alto para detectar contornos que

geralmente funciona adequadamente ao realçar as descontinuidades, ou seja,

regiões de mudança rápida de intensidade. O seu resultado pode ser combinado

com a imagem original para evidenciar as características realçadas. É sensível ao

ruído, tendo que ser usado depois de um filtro que suavize a imagem para se

obterem melhores resultados[4].

Filtro Unsharp – Este filtro é obtido a partir do inverso do filtro Laplaciano. É

um filtro que mantém o contraste da imagem e preserva bem os limites, notando-

se também uma degradação na qualidade da imagem. O filtro Unsharp é um

simples operador de realce que recebe o seu nome pelo facto de realçar limites (e

outras componentes de alta frequência numa imagem), através da subtracção de

uma imagem suavizada à imagem original[4].

Filtro High-Boost – Filtragem passa-alto pode ser vista como a subtracção

de uma imagem filtrada com um filtro passa-baixo à imagem original. No entanto,

muitas vezes onde há a necessidade de obter uma imagem filtrada com um filtro

passa-alto, é também necessário reter algumas das componentes de baixa-

frequência para ajudar na interpretação da imagem. Então, ao multiplicar a

imagem original por um factor de amplificação antes de subtrair a imagem filtrada

com um filtro passa-baixo, obtém-se um filtro high-boost que enfatiza as altas

frequências[4].

Page 13: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 6

22..11..33.. OOPPEERRAADDOORREESS MMOORRFFOOLLÓÓGGIICCOOSS

A aplicação de operadores morfológicos é um passo importante para certas

operações de processamento de imagem, tais como, de realce de contraste,

remoção de ruído e segmentação.

A dilatação e a erosão são duas operações morfológicas fundamentais. A

dilatação acrescenta pixels aos limites dos objectos de uma imagem, enquanto a

erosão remove tais elementos. O número de pixels adicionados ou removidos dos

objectos depende do tamanho e da forma do elemento estruturante utilizado para

processar a imagem. O elemento estruturante é o elemento fundamental das

operações de dilatação e de erosão.

Para implementar certas operações de processamento de imagem, as

operações de erosão e de dilatação são usadas frequentemente em conjunto. As

duas combinações mais comuns destas duas operações são a abertura e o fecho.

A definição de uma abertura morfológica de uma imagem é uma erosão seguida

de uma dilatação, usando o mesmo elemento estruturante para ambas as

operações. A operação relacionada, o fecho morfológico de uma imagem, é o

inverso, ou seja, baseia-se numa dilatação seguida de uma erosão, com o mesmo

elemento estruturante.

A operação morfológica de abertura pode ser usada para remover pequenos

objectos de uma imagem preservando a forma e o tamanho dos objectos maiores,

enquanto a operação de fecho elimina pequenas aberturas nos objectos da

imagem, preenche falhas nos contornos e junta objectos que estejam

relativamente próximos[5].

22..22.. SSEEGGMMEENNTTAAÇÇÃÃOO

A segmentação de imagem é uma das tarefas mais importantes para a

análise de objectos em imagens. O seu principal objectivo consiste em identificar

as regiões de uma imagem que possuam uma correlação forte com objectos ou

regiões do mundo real. Para se conseguir uma segmentação completa, isto é,

obter um conjunto de regiões disjuntas que correspondem a objectos

Page 14: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 7

representados na imagem, é frequentemente necessário um processamento de

alto nível que contenha informação específica do problema; caso contrário poder-

se-á obter uma segmentação parcial, em que as regiões não correspondam

directamente a objectos na imagem.

Mas existem várias situações de segmentação que podem ser resolvidas

usando processamento de baixo nível, ou seja, técnicas elementares de

segmentação. Nestes casos, as imagens frequentemente contêm objectos com

contraste, localizados sob um fundo uniforme, como por exemplo, caracteres

impressos, células, etc. Nesta situação, pode ser usado um critério global, como

um threshold, obtendo-se uma segmentação completa da imagem em objectos e

fundo da imagem.

Os métodos de segmentação de baixo nível podem ser divididos em três

categorias, de acordo com as suas características principais. O primeiro grupo

depende do conhecimento global das propriedades da imagem sendo, em regra,

baseado no histograma da imagem. O segundo grupo corresponde à

segmentação baseada em contornos determinados por mudanças bruscas de

intensidade. A segmentação baseada em regiões corresponde ao terceiro grupo;

usando uma metodologia de subdivisão da imagem em regiões de acordo com

um critério pré-definido. Devido às diferentes características dos métodos de

segmentação baseados em contornos e baseados em regiões, os resultados

destes métodos podem ser combinados para melhorar a detecção da estrutura a

segmentar[6].

22..22..11.. SSEEGGMMEENNTTAAÇÇÃÃOO PPOORR TTHHRREESSHHOOLLDD

O critério de segmentação mais simples consiste na aplicação de um

threshold a uma imagem. Muitos objectos ou regiões em imagens são

caracterizados pela sua capacidade de reflexão ou absorção de luz nas suas

superfícies, correspondendo a cores ou a níveis de cinzento na imagem. Pode ser

determinada uma constante associada a estes níveis, ou seja, um threshold, para

segmentar objectos e o seu fundo. Aplicar um threshold é computacionalmente

Page 15: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 8

simples e rápido; é um dos métodos de segmentação mais antigos e ainda

globalmente mais usado em segmentações elementares.

A aplicação de um threshold corresponde à transformação de uma imagem f,

numa imagem binária g (segmentada):

onde T é o threshold, para elementos da imagem que correspondem a

objectos ou estruturas, para elementos da imagem que pertencem ao

fundo (ou vice-versa).

O valor do threshold é crucial para o sucesso de uma segmentação por

threshold. Este valor pode ser determinado interactivamente ou ser o resultado de

um critério de detecção de threshold.

Somente em circunstâncias muito especiais, a aplicação de um único

threshold produz uma segmentação correcta em toda a imagem (threshold global)

uma vez que, mesmo as imagens mais simples podem conter variações na

intensidade dos objectos e do fundo. Estas variações podem ser devidas a

incidência (no objecto) de iluminação não uniforme, parâmetros do sistema de

aquisição não uniformes, etc. A solução para este caso corresponde a efectuar a

segmentação usando um threshold local e adaptativo, no qual o valor do threshold

depende de características locais da imagem[6].

22..22..22.. SSEEGGMMEENNTTAAÇÇÃÃOO BBAASSEEAADDAA EEMM CCOONNTTOORRNNOOSS

A segmentação baseada em contornos foi um dos primeiros critérios usados

em segmentação, utiliza os contornos extraídos de uma imagem, por um

processo de detecção de contornos, que correspondam a descontinuidades em

níveis de cinzento, cor, textura, etc. Pode ser usada uma grande variedade de

operadores de detecção de contornos, como o gradiente, operador de Roberts,

operador de Sobel, operador de Prewitt, operador de Canny, etc. O objectivo final

é agrupar contornos locais numa imagem onde existe somente conjuntos de

Page 16: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 9

contornos que possuam uma correspondência para objectos ou partes de

imagem.

O problema mais frequente da segmentação baseada em contornos,

causado pelo ruído ou por regiões com fronteira difusa na imagem, é a presença

de contornos (pixels) onde não existe fronteira do objecto (falsos contornos), ou a

ausência de contornos onde existe uma fronteira real do objecto. Os pixels

correspondentes a um objecto numa imagem não possuem valores uniformes,

uma vez que são afectados por ruído, irregularidades da luz incidente, etc., é

portanto necessário que o operador de detecção de contornos seja

suficientemente flexível para não classificar como contornos as fronteiras das

áreas de fundo, quando estas estão influenciadas pelo ruído. Assim, os algoritmos

de detecção de contornos são tipicamente seguidos por procedimentos de ligação

de contornos.

Considerando agora a relação global dos contornos, ao contrário da análise

local referida no parágrafo anterior, os contornos podem ser ligados desde que

correspondam a objectos com forma e dimensões conhecidas. A segmentação

pode ser considerada como um problema de localizar estes objectos na imagem.

Um método eficiente para resolver este problema é a transformada de Hough,

capaz de detectar rectas e circunferências. Uma grande vantagem deste método

é a sua robustez, ou seja, não é muito sensível ao ruído ou outros artefactos na

imagem. A desvantagem é que nem sempre é possível saber as expressões

analíticas que descrevem as fronteiras dos objectos a segmentar[6].

22..22..33.. SSEEGGMMEENNTTAAÇÇÃÃOO BBAASSEEAADDAA EEMM RREEGGIIÕÕEESS

Enquanto o objectivo dos métodos de segmentação baseados em contornos

consiste em encontrar as fronteiras entre regiões, os métodos baseados em

regiões identificam directamente essas regiões. É fácil construir regiões a partir

das fronteiras sendo igualmente fácil detectar fronteiras a partir das regiões. No

entanto, o resultado da segmentação de métodos baseados em contornos e

métodos baseados em regiões não é, em geral, o mesmo, sendo uma boa

estratégia a combinação dos dois resultados. Os métodos de segmentação

Page 17: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 10

baseados em regiões podem usar técnicas de crescimento de regiões, anexação

de regiões, separação de regiões ou ainda uma combinação de outras técnicas.

Os critérios associados a cada uma destas técnicas são idênticos, pelo que se

descreve apenas uma destas metodologias.

Em imagens com ruído, onde as fronteiras são difíceis de detectar, a técnica

de crescimento de regiões geralmente produz melhores resultados do que as

restantes técnicas.

A homogeneidade é uma propriedade importante das regiões, usada como o

critério principal de segmentação no crescimento de regiões, na qual a ideia base

consiste em dividir a imagem em zonas de máxima homogeneidade. O critério da

homogeneidade pode ser baseado em níveis de cinzento, cor, textura, etc. Apesar

do método de crescimento de regiões ser frequentemente aplicado em 2D,

também é possível efectuar implementações em 3D.

As regiões resultantes da segmentação da imagem devem ser homogéneas

e "máximas", onde "máximas" significa que o critério da homogeneidade deixa de

ser verdadeiro depois de esta região anexar qualquer outra região adjacente; ou

seja, já não existe qualquer outra região vizinha com a mesma homogeneidade

que possa ser anexada à região resultante do crescimento.

O método natural de crescimento de regiões corresponde a iniciar o

crescimento a partir de um dos pixels ou um grupo de pixels que define uma

região de uma imagem. As regiões são anexadas desde que satisfaçam o critério

de homogeneidade.

Um método alternativo, a segmentação por Watershed baseia-se no conceito

de Watershed da topografia, isto é, na representação da imagem usando as suas

duas dimensões (coordenadas espaciais) e ainda a sua intensidade. Nesta

interpretação topográfica, consideram-se 3 tipos de pontos: a) pontos

pertencentes a um mínimo regional (local); b) pontos em que se for colocada uma

“gota de água”, esta irá de certeza deslocar-se para o mesmo mínimo; c) pontos

(exemplo, os “picos das montanhas”) nos quais a “água” irá deslocar-se para mais

de um destes mínimos. Os conjuntos de pontos que satisfazem a condição b) de

um mínimo regional (local) específico são chamados mínimos desses Watershed.

Page 18: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 11

Os conjuntos de pontos que satisfazem a condição c), ou seja os picos ou vértices

da “superfície topográfica”, são chamados linhas de divisão ou linhas de

Watershed.

O objectivo principal de este tipo de segmentação é encontrar as linhas de

fronteira de Watershed. A ideia básica é simples e usando a seguinte analogia:

admitindo-se que é efectuado um orifício em cada mínimo regional (local) e toda a

superfície topográfica é colocada sobre a água, permite-se que a água entre pelos

orifícios e com velocidade constante. Quando a água que preenche vales distintos

começa a transbordar, na margem desse vale é construída uma barragem com o

objectivo de impedir que a água de um vale vá inundar outro vale. O enchimento

dos vales irá eventualmente chegar a uma situação em que somente os topos

(vértices) das barragens estão visíveis, acima da linha de água. Estas fronteiras

das barragens correspondem às linhas de divisão de Watershed. Portanto, são as

fronteiras contínuas extraídas por este método de segmentação[6].

22..33.. IINNTTEERRFFAACCEE GGRRÁÁFFIICCAA CCOOMM OO UUTTIILLIIZZAADDOORR ((GGUUII))

Para facilitar a utilização das ferramentas disponibilizadas pelo Matlab, bem

como outras a desenvolver no âmbito deste projecto, e para uma melhor análise

dos resultados, existe uma ferramenta que permite construir interfaces gráficas de

interacção com o utilizador (GUI – “Graphical User Interface”). Para iniciar a

criação de uma nova interface, basta escrever guide (GUI Design Environment)

no command window do Matlab, abrindo-se de imediato uma janela para edição

do aspecto que irá ter a nova interface a ser construída.

O desenho da interface é um passo importante, e é vantajoso ter uma ideia

muito bem definida do que se pretende fazer para haver mais facilidade em

construir esta ferramenta de interacção com o utilizador[7].

Page 19: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 12

22..33..11.. DDEESSEENNHHOO DDAA IINNTTEERRFFAACCEE

O primeiro passo a realizar na criação de uma interface gráfica é o desenho

dos componentes que se pretende que façam parte desta e a sua organização e

escolha do seu aspecto da maneira que se pretender tendo em conta uma boa

disposição que facilite a sua utilização e não esquecendo também o gosto

pessoal.

Existem vários tipos de componentes que podemos utilizar na criação da

interface (Figura 2). Os componentes dividem-se em controlos gráficos, dos quais

fazem parte os botões (Push Button) e as caixas de edição (Edit Text), em

elementos estáticos, sendo um exemplo as caixas de texto (Static Text), em

menus (Pop-up Menu) e em eixos (Axes). Os botões geram uma acção quando

são clicados, as caixas de edição permitem ao usuário inserir ou modificar

sequências de texto que podem ser usadas como input, as caixas de texto

estático exibem linhas de texto usadas para dar indicações úteis ao utilizador, os

menus exibem uma lista de opções quando se clica na seta e os eixos permitem

que a interface exiba elementos gráficos (gráficos e imagens).

Figura 2 – Componentes de uma Interface Gráfica.

Page 20: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 13

Como o principal objectivo da interface feita neste trabalho era facilitar a

comparação dos resultados obtidos ao usar várias técnicas de pré-processamento

e de segmentação, foram criadas duas janelas de eixos para abrir duas imagens,

vários botões que permitem a execução de varias acções e menus e caixas de

edição para definir a técnica a utilizar e os seus parâmetros (Figura 3).

Figura 3 – Desenho da Interface pretendida.

Depois de completar o desenho da interface, pode-se seguir para a sua

programação de maneira a que funcione da maneira que se pretende. Quando se

grava o desenho são criados dois ficheiros, um ficheiro M-file onde se encontra o

código que controla a interface e onde é feita a sua programação, e um ficheiro

Fig-file que contém a descrição completa do layout e dos componentes do GUI e

que não pode ser modificada (apenas alterando o guide). Assim, quando se grava

as edições feitas no guide estas alterações ficam gravadas no Fig-file e quando

se programa a interface, o código fica armazenado no M-file.

Com a estrutura da interface construída, falta apenas programa-la para que

cada botão e cada componente existente funcionem da maneira que se desejou,

ou seja, para que o GUI responda aos eventos (cliques no botão, selecção de

componentes de menu, etc.). Esta programação tem a forma de um conjunto de

funções, chamadas de callbacks, para cada componente e para a figura do

próprio GUI.

Page 21: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 14

Por fim, depois de finalizada a edição do M-file e do Fig-file, a interface está

pronta a ser utilizada.

22..33..22.. IINNTTEERRFFAACCEE DDEESSEENNVVOOLLVVIIDDAA

A interface desenvolvida tem o seguinte Fig-File mostrado na Figura 4

(estando o M-file correspondente apresentado em anexo):

Figura 4- Fig-File da interface construída.

Como já foi dito anteriormente, o objectivo desta GUI é a comparação dos

resultados obtidos por técnicas de pré-processamento e de segmentação. Assim

vamos ter duas janelas para as duas figuras. O primeiro botão, Load, vai carregar

a figura original e mostrá-la na primeira área de imagem (Figura 5 e Figura 6).

Page 22: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 15

Figura 5 – Janela da pasta onde estão as imagens, que abre ao clicar no botão Load, onde se escolhe a imagem inicial.

Figura 6 – Imagem inicial colocada na primeira área de imagem.

De seguida, selecciona-se o tipo de operação de pré-processamento que se

quer utilizar (Operation to Execute), o valor dos parâmetros dessa operação (Size

of the Mask ou Size of the Structural Element) e carrega-se no botão Execute the

Operation que coloca o resultado do processamento na segunda área de imagem

(Figura 7).

Page 23: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 16

Figura 7 – Selecção da operação a executar, dos seus parâmetros, e imagem processada na segunda área de imagem.

Como pode ser necessário executar outra operação sobre a imagem já

processada, pode-se substituir a imagem inicial pela imagem resultado

colocando-a na primeira área de imagem e limpando a segunda área de imagem

da interface. Para tal, clica-se no botão Swap the Initial Image (Figura 8).

Figura 8 – Troca da imagem original pela imagem processada e “limpeza” da segunda área de imagem.

Depois de alterada a imagem inicial, selecciona-se outra operação de

processamento e atribui-se um valor ao respectivo parâmetro, se for necessário, e

Page 24: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 17

volta-se a carregar no botão Execute the Operation para executar essa operação

(Figura 9).

Figura 9 – Execução de uma segunda operação de processamento sobre uma imagem já processada anteriormente.

Sempre que for necessário visualizar a imagem processada em tamanho

superior numa janela independente, basta seleccionar o botão Output e é criada

uma nova figura com a imagem processada (Figura 10).

Figura 10 – Nova figura independente criada ao clicar no botão Output.

Se for pretendido guardar a imagem processada para futuramente poder ser

visualizada, sem ser necessário correr novamente o código, clica-se no botão

Page 25: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 18

Save Processed Image e esta é guardada na pasta onde está guardado o código

(Figura 11).

Figura 11 – Selecção do botão Save Processed Image que vai guardar a imagem processada na pasta pretendida.

Finalmente, quando todas as operações pretendidas estiverem terminadas,

e se quiser fechar a interface, basta pressionar o botão Close The Window e a

janela é automaticamente encerrada (Figura 12).

Figura 12 – Selecção do botão Close the Window que vai fechar a janela da interface.

Page 26: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 19

3. ANÁLISE DOS RESULTADOS

Nesta secção são analisados os resultados experimentais obtidos no

processamento e análise de imagens de focos de criptas aberrantes utilizando,

para uma análise mais amigável, a interface gráfica desenvolvida.

33..11.. PPRRÉÉ--PPRROOCCEESSSSAAMMEENNTTOO

Primeiro analisou-se os resultados obtidos, para uma das imagens, com os

filtros de suavização (média, Gaussiano, mediana, mínimo e máximo) com

diferentes tamanhos de máscaras: 5x5, 9x9, 15x15 e 19x19. Para cada filtro

escolheu-se o melhor resultado.

Em cada filtro escolheu-se a máscara que retira-se o ruído da imagem, mas

ao mesmo tempo que não distorce-se em demasia os limites das criptas. Na

Tabela 1 e nas Figura 13, Figura 14, Figura 15, Figura 16 e Figura 17 pode-se ver

qual o melhor resultado obtido para cada filtro.

Tabela 1 – Melhor máscara para cada um dos filtros de suavização.

Filtro Aplicado Melhor Máscara

Média 9x9

Gaussiano 19x19

Mediana 9x9

Mínimo 5x5

Máximo 5x5

Page 27: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 20

Figura 13 – Resultados do Filtro Média para diferentes tamanhos de máscara.

Figura 14 - Resultados do Filtro Gaussiano para diferentes tamanhos de máscara.

Page 28: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 21

Figura 15 - Resultados do Filtro Mediana para diferentes tamanhos de máscara.

Figura 16 - Resultados do Filtro Mínimo para diferentes tamanhos de máscara.

Page 29: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 22

Figura 17 - Resultados do Filtro Máximo para diferentes tamanhos de máscara.

A partir dos “melhores” resultados obtidos verificou-se que o mais apropriado

a utilizar como filtro de suavização foi o filtro de Mediana, Figura 18.

Page 30: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 23

Figura 18 – Melhor resultado para cada filtro de suavização.

Depois de feita a selecção do melhor filtro de suavização e de qual o melhor

parâmetro a utilizar testou-se este resultado com a expansão e com a equalização

do histograma para verificar se a imagem ficaria com uma distribuição das

intensidades mais favorável.

Pode-se concluir ao visualizar a Figura 19 que ao aplicar a expansão do

histograma obtém-se bons resultados.

Figura 19 – Equalização e Expansão do Histograma sobre a Imagem Suavizada .

Page 31: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 24

Para tentar dar mais realce aos contornos da cripta aplicaram-se os filtros de

realce (Laplaciano, High-Boost e Unsharp). Como se pode ver na Figura 20, o

filtro que obtém melhores resultados é o High-Boost.

Figura 20 – Aplicação dos Filtros de Realce à imagem depois da expansão.

33..22.. SSEEGGMMEENNTTAAÇÇÃÃOO

Neste trabalho foram estudadas duas técnicas de segmentação de baixo-

nível: o método de Otsu (segmentação por threshold) e o método de Watershed

(segmentação baseada em regiões). Assim, às imagens resultantes da sequência

de pré processamento foram aplicadas essas duas técnicas de segmentação.

O método de Otsu é um método de detecção automática de um threshold,

por essa razão as imagens não podem ter grandes variações de intensidade.

Assim, antes da aplicação do método foram aplicadas operações morfológicas

(abertura e fecho), com um elemento estruturante linear, para atenuar tais

variações (Figura 21). Só depois da aplicação destes operadores é que foi

aplicado o método de Otsu e como se pode ver na Figura 22, a operação de fecho

apresenta melhores resultados a nível de segmentação devido ao aumento de

contraste entre a cripta e o fundo da imagem.

Figura 21 – Aplicação de operações morfológicas (à esquerda: abertura e à direita: fecho).

Page 32: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 25

Figura 22 – Aplicação do método de Otsu às imagens depois processadas com os operadores morfológicos (à esquerda: abertura e à direita: fecho) .

O operador de segmentação Watershed detecta picos de elevada

intensidade, e como as criptas, nas imagens até agora processadas, têm baixa

intensidade, é feito o negativo da imagem para inverter as intensidades (Figura

23).

Figura 23 – Negativo da imagem depois do pré-processamento.

Depois de inverter as intensidades aplicou-se o algoritmo do método de

Watershed, onde são feitas varias combinações de operadores morfológicos, com

um elemento estruturante circular, para trabalhar as imagens de modo a se

obterem resultados mais favoráveis (Figura 24).

Page 33: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 26

Figura 24 – Aplicação do Watershed à imagem pré-processada com ajuda de operadores morfológicos.

33..33.. AAPPLLIICCAAÇÇÃÃOO DDOO PPRROOCCEESSSSAAMMEENNTTOO EEMM OOUUTTRRAASS IIMMAAGGEENNSS

Para todas as imagens nas quais foi aplicada a segmentação foram usados

os mesmos métodos de pré-processamento, bem como os seus parâmetros

definidos anteriormente. Assim, só é mostrado, para cada imagem, o resultado

final do pré-processamento e os resultados das duas segmentações com

metodologias diferentes (Tabela 2 e Figura 25Figura 26 e Figura 27).

Tabela 2 – Parâmetros usados para cada imagem nas operações morfológicas realizadas antes das técnicas de segmentação.

Imagem Parâmetro no

Método de Otsu

Parâmetro na Operação

de Watershed

A 60 15

B 70 9

C 10 15

Page 34: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 27

Figura 25 – Imagem A pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo).

Figura 26 - Imagem B pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo).

Page 35: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 28

Figura 27 - Imagem C pré-processada (em cima à esquerda), com aplicação do método de Otsu (em cima à direita) e com aplicação do método de Watershed (em baixo).

Page 36: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 29

4. CONCLUSÃO

O cancro, incluindo o cancro colorectal, é uma das doenças mais

preocupantes do mundo moderno e este acto motiva a pesquisa de novas

soluções mais rigorosas para a detecção, diagnóstico e tratamento.

Pensa-se que as criptas de focos aberrantes possam ter um papel crucial na

sequência adenoma-carcinoma do cancro colorectal, embora este facto ainda não

seja certo e estando ainda em curso várias estudos na tentativas de esclarecer

este conceito.

A detecção pode ser realizada através de endoscopia/colonoscopia ou por

endoscopia por cápsula; no entanto, o tempo gasto durante a análise pelo

especialista das imagens resultantes destes tipos de exames pode ser

substancialmente reduzido usando técnicas de processamento e análise

computacional de imagens.

Para isso existem algoritmos que podem ser aplicados às imagens

endoscópicas, como os métodos de pré-processamento e de segmentação

apresentados neste trabalho. Neste contexto, o desenvolvimento futuro será

baseado em desenvolver um algoritmo adequado para segmentar, detectar e

quantificar com robustez as estruturas dos focos das criptas aberrantes existentes

em imagens endoscópicas.

Trabalho Futuro:

Desenvolvimento e implementação de metodologias computacionais

para a detecção e quantificação de focos de criptas aberrantes a partir de

imagens de endoscopia in vivo; ou seja, metodologias para segmentar e registar

imagens de endoscopia.

Aplicação, ensaio e análise das metodologias desenvolvidas em

casos experimentais e clínicos.

Page 37: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 30

5. REFERÊNCIAS

[1] Figueiredo P.. “Focos de Criptas Aberrantes e Carcinogénese Colo-

rectal”. O canto do Envestigador. Nº 13, Janeiro/Março 2006. ENDOnews.

[2] Filho, O., Neto, H.. “Processamento Digital de Imagens”. 1999. Brasport.

[3] Gonzalez, Rafael C.. “Digital Image Processing”. Second Edition. Prentice

Hall.

[4] Oliveira, B., Magalhães F.. “Filtragem de Imagens Fixas usando Matlab”.

Relatório. Faculdade de Engenharia da Universidade do Porto. 2005

[5] MATLAB Image Processing Toolbox – User’s Guide. The MathWorks.

Version 5.

[6] Silva, José S.. “Segmentação Pulmonar em Estudos de Tomografia Axial

Computadorizada”. Tese de Doutoramento. Universidade de Aveiro. 2005

[7] Ashi, R.. “Introduction to Graphical User Interface (GUI) MATLAB 6.5”.

UAE University.

[8] Santos, S., Teixeira, J., Figueiredo, M.. “Análise de Imagens do Sistema

Cardiovascular: Métodos e Aplicações em Imagens do Ventrículo Esquerdo”.

Projecto em Engenharia Biomédica. Universidade Católica Portuguesa. 2011.

Page 38: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 31

ANEXOS

M-File da Interface Desenvolvida

function varargout = trabalhospraticos(varargin) % TRABALHOSPRATICOS M-file for trabalhospraticos.fig % TRABALHOSPRATICOS, by itself, creates a new TRABALHOSPRATICOS or

raises the existing % singleton*. % % H = TRABALHOSPRATICOS returns the handle to a new

TRABALHOSPRATICOS or the handle to % the existing singleton*. % % TRABALHOSPRATICOS('CALLBACK',hObject,eventData,handles,...) calls

the local % function named CALLBACK in TRABALHOSPRATICOS.M with the given

input arguments. % % TRABALHOSPRATICOS('Property','Value',...) creates a new

TRABALHOSPRATICOS or raises the % existing singleton*. Starting from the left, property value pairs

are % applied to the GUI before trabalhospraticos_OpeningFcn gets

called. An % unrecognized property name or invalid value makes property

application % stop. All inputs are passed to trabalhospraticos_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

% Edit the above text to modify the response to help trabalhospraticos

% Last Modified by GUIDE v2.5 15-Jun-2011 18:22:27

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @trabalhospraticos_OpeningFcn, ... 'gui_OutputFcn', @trabalhospraticos_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

Page 39: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 32

gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before trabalhospraticos is made visible.

function trabalhospraticos_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 trabalhospraticos (see VARARGIN)

% Choose default command line output for trabalhospraticos

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

global B

B=0;

% UIWAIT makes trabalhospraticos wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = trabalhospraticos_OutputFcn(hObject, eventdata, handles)

% 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;

% --- Executes on button press in Load.

function Load_Callback(hObject, eventdata, handles)

% hObject handle to Load (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

F=uigetfile('*.jpg', 'Pick a Figure');

G=imread(F);

G=im2double(G);

axes(handles.image1);

Page 40: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 33

imshow(G);

global A

A=rgb2gray(G);

% --- Executes on selection change in tipodefiltro.

function tipodefiltro_Callback(hObject, eventdata, handles)

% hObject handle to tipodefiltro (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns tipodefiltro contents as cell array

% contents{get(hObject,'Value')} returns selected item from tipodefiltro

% --- Executes during object creation, after setting all properties.

function tipodefiltro_CreateFcn(hObject, eventdata, handles)

% hObject handle to tipodefiltro (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu 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 caixatexto1_Callback(hObject, eventdata, handles)

% hObject handle to caixatexto1 (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,'String') returns contents of caixatexto1 as text

% str2double(get(hObject,'String')) returns contents of caixatexto1 as a double

% --- Executes during object creation, after setting all properties.

function caixatexto1_CreateFcn(hObject, eventdata, handles)

% hObject handle to caixatexto1 (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'))

Page 41: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 34

set(hObject,'BackgroundColor','white');

end

function caixatexto2_Callback(hObject, eventdata, handles)

% hObject handle to caixatexto2 (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,'String') returns contents of caixatexto2 as text

% str2double(get(hObject,'String')) returns contents of caixatexto2 as a double

% --- Executes during object creation, after setting all properties.

function caixatexto2_CreateFcn(hObject, eventdata, handles)

% hObject handle to caixatexto2 (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 Execute.

function Execute_Callback(hObject, eventdata, handles)

% hObject handle to Execute (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global A

A;

global B

B;

global I

if B==0

I=A;

else

I=B;

end

val=get(handles.tipodefiltro,'Value');

str=get(handles.tipodefiltro,'string');

Page 42: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 35

n=str2double(char(get(handles.caixatexto1,'String')));

r=str2double(char(get(handles.caixatexto2,'String')));

global C

switch char(str(val))

case 'Media'

w=fspecial('average',[n n]);

C=imfilter(I,w,'symmetric');

case 'Gaussiano'

w=fspecial('gaussian',[n n]);

C=imfilter(I,w,'symmetric');

case 'Mediana'

C=medfilt2(I,[n n]);

case 'Minimo'

C=ordfilt2(I,n*n,ones(n,n),'symmetric');

case 'Maximo'

C=ordfilt2(I,1,ones(n,n),'symmetric');

case 'Equalizacao'

C=histeq(I);

case 'Expansao'

C=imadjust(I);

case 'Laplaciano'

w=fspecial('laplacian',0.2);

C=I-imfilter(I, w, 'replicate');

case 'Unsharp'

a=fspecial('unsharp');

C=imfilter(I, a, 'replicate');

case 'High-Boost'

x=[-1 -1 -1;-1 9 -1;-1 -1 -1];

C=imfilter(I,x,'replicate');

case 'Open'

se=strel('line',r,315);

C=imopen(I,se);

case 'Close'

se=strel('line',r,315);

C=imclose(I,se);

Page 43: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 36

case 'Negativo'

C=imadjust(I, [0 1], [1 0]);

case 'Otsu'

level=graythresh(I);

C=im2bw(I,level);

case 'Watershed'

hy = fspecial('sobel');

hx = hy';

Iy = imfilter(double(I), hy, 'replicate');

Ix = imfilter(double(I), hx, 'replicate');

gradmag = sqrt(Ix.^2 + Iy.^2);

se = strel('disk',r);

Ie = imerode(I, se);

Iobr = imreconstruct(Ie, I);

Iobrd = imdilate(Iobr, se);

Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));

Iobrcbr = imcomplement(Iobrcbr);

fgm = imregionalmax(Iobrcbr);

se2 = strel(ones(5,5));

fgm2 = imclose(fgm, se2);

fgm3 = imerode(fgm2, se2);

fgm4 = bwareaopen(fgm3, 20);

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

D = bwdist(bw);

DL = watershed(D);

bgm = DL == 0;

gradmag2 = imimposemin(gradmag, bgm | fgm4);

L = watershed(gradmag2);

C = I;

C (imdilate(L == 0, ones(5, 5)) | bgm | fgm4) = 255;

end

axes(handles.image2);

imshow(C);

Page 44: Análise Computacional de Imagens de Focos de Criptas ...tavares/downloads/... · Nas técnicas de processamento orientadas à vizinhança (operadores locais), o valor resultante

Página | 37

% --- Executes on button press in Change.

function Change_Callback(hObject, eventdata, handles)

% hObject handle to Change (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global C

C;

axes(handles.image1);

imshow(C);

D=1;

axes(handles.image2);

imshow(D);

global B

B=C;

% --- Executes on button press in Output.

function Output_Callback(hObject, eventdata, handles)

% hObject handle to Output (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global C

D=C;

figure, imshow(D);

% --- Executes on button press in Save.

function Save_Callback(hObject, eventdata, handles)

% hObject handle to Save (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global C

G=C;

imwrite(G, 'Imagem_filtrada.tif');

% --- Executes on button press in Close.

function Close_Callback(hObject, eventdata, handles)

% hObject handle to Close (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

display Goodbye

close(handles.figure1);