Sie sind auf Seite 1von 6

SEGMENTAO DE IMAGENS

A segmentao se refere ao processo de dividir uma imagem digital em mltiplas regies (conjunto de pixels) ou objetos, com o objetivo de simplificar e/ou mudar a representao de uma imagem para facilitar a sua anlise. Esse processo tipicamente usado para localizar objetos e formas (linhas, curvas, etc) em imagens. Daremos nfase para a segmentao de imagens no intuito da deteco de bordas.

1) Deteco de borda usando a funo edge


A deteco de bordas , sem dvida, a aproximao mais comum na identificao de descontinuidades de uma imagem . Essas mudanas de intensidades podem ser detectadas usando-se as derivadas de primeira e segunda ordem, onde a primeira faz referncia ao vetor gradiente e a segunda operao Laplaciana. A funo edge nos fornece uma srie de aproximaes para as derivadas de primeira e segunda ordem. Em MATLAB ela pode ser usada atravs da sintaxe [g, t] = edge(f, method, parameters) onde: f a imagem de entrada; method uma das aproximaes listadas na tabela 1, logo abaixo; parameters so parmetros adicionais que sero abordados futuramente; t um parmetro opcional, que nos d a threshold usada pela funo edge para determinar quais valores gradientes so fortes o suficientes para serem tidos como pontos de borda.

Detector de Borda Sobel

Propriedades Bsicas Detecta as bordas atravs da aproximao de Sobel

para as derivadas. Prewitt Roberts Laplacian of a Gaussian (LoG) Zero crossings Canny Detecta as bordas atravs da aproximao de Prewitt para as derivadas. Detecta as bordas atravs da aproximao de Roberts para as derivadas. Detecta as bordas atravs do cruzamento de zeros (Zero crossings) aps filtr-la com um filtro Gaussiano. Detecta as bordas atravs do cruzamento de zeros aps filtr-la com um filtro qualquer, especificado pelo usurio. Detecta as bordas atravs da procura pelo local de mxima do gradiente da imagem. O gradiente calculado usando-se a derivada de um filtro Gaussiano. O mtodo usa duas thresholds para detectar bordas fracas e fortes, e coloca as bordas fracas na sada somente se elas estiverem conectadas bordas fortes. No entanto, o mtodo mais aconselhado para a deteco de verdadeiras bordas fracas.
TABELA 1

1.1) Detector de bordas Sobel


A sintaxe da funo edge usando o detector de bordas Sobel [g, t] = edge(f, sobel, T, dir) onde: f a imagem de entrada;

T um threshold especfico. Caso o campo esteja vazio [ ], o threshold ser determinado automaticamente; dir especifica a direo na qual se prefere fazer a deteco: horizontal, vertical ou both (o padro). A funo edge usa o detector Sobel como padro, ou seja, caso no seja especificado um detector (g = edge(f)), a funo edge ir utilizar o detector de bordas Sobel.

1.2) Detector de bordas Prewitt


A sintaxe da funo edge usando o detector de bordas Prewitt [g, t] = edge(f, prewitt, T, dir) onde: f a imagem de entrada; T um threshold especfico. Caso o campo esteja vazio [ ], o threshold ser determinado automaticamente; dir especifica a direo na qual se prefere fazer a deteco: horizontal, vertical ou both (o padro). Sua implementao e execuo mais simplificada do que a do detector de bordas Sobel, no entanto, ela tende a produzir mais rudos e, portanto, menos usada.

1.3) Detector de bordas Roberts


A sintaxe da funo edge usando o detector de bordas Roberts [g, t] = edge(f, roberts, T, dir) onde: f a imagem de entrada; T um threshold especfico. Caso o campo esteja vazio [ ], o threshold ser determinado automaticamente;

dir especifica a direo na qual se prefere fazer a deteco: horizontal, vertical ou both (o padro). Um dos detectores mais antigo, atualmente pouco usado, j que no consegue detectar bordas que so mltiplos de 45. Entretanto, ainda usado frequentemente em implementaes de Hardware.

1.4) Detector de bordas Laplaciano de uma Gaussianda (LoG)


A sintaxe da funo edge usando o detector de bordas LoG [g, t] = edge(f, log, T, sigma) onde: sigma o desvio padro que o detector sofrer. O valor padro 1; T um threshold especfico. Caso o campo esteja vazio [ ], o threshold ser determinado automaticamente; f a imagem de entrada;

1.5) Detector de bordas Zero-crossings


A sintaxe da funo edge usando o detector de bordas Zero-crossings [g, t] = edge(f, zerocross, T, H) onde: f a imagem de entrada; T um threshold especfico. Caso o campo esteja vazio [ ], o threshold ser determinado automaticamente; H um filtro a ser escolhido, que carregar a convuluo da imagem.

Esse detector baseado nos mesmos conceitos do mtodo LoG, com o diferencial da escolha do filtro H.

1.6) Detector de bordas Canny


A sintaxe da funo edge usando o detector de bordas Canny [g, t] = edge(f, canny, T, sigma) onde: f a imagem de entrada; T um vetor T = [T1, T2] contendo dois thresholds. Caso no sejam especificados, sero escolhidos automaticamente; sigma o desvio padro que o detector sofrer. O valor padro 1. Geralmente, o detector de bordas que possui os resultados mais satisfatrios e com menos rudos.

2) Thresholding
Devido s suas propriedades intuitivas e a simplicidade de sua implementao, o thresholding amplamente aplicado na segmentao de imagens. Nesse tpico, iremos discutir meios para escolher automaticamente os valores dos threholds. O melhor mtodo para se escolher o melhor threhold para uma certa imagem a obteno de seu histograma. Ele mostrar a configurao da vizinhana e de toda a imagem em si. Para a obteno do thresholding usamos a seguinte funo T = graythresh(f) onde: f a imagem de entrada, da qual se deseja obter o histograma e, consequentemente, o threhold.

T o threhold resultante. Para segmentar a imagem e obter o threhold, ela deve estar em preto e branco, ou seja, deve ser uma imagem de tipo lgido. Caso a imagem seja colorida ou esteja em escala de cinza, pode-se usar a funo im2bw.

Das könnte Ihnen auch gefallen