Beruflich Dokumente
Kultur Dokumente
A filtragem espacial consiste no processamento da vizinhana, ou seja, clculos lineares so realizados nos pixels da vizinhana de um pixel central (x, y) e os resultados desse processo so aplicados ao pixel central.
Tipo average
sendo que um nico nmero corresponder a uma mscara quadrada. disk gaussian laplacian log motion fspecial(disk, r). Uma mscara mdia circular de raio padro 5. fspecial(gaussian, [r c], sig). Um filtro Gaussiano, cujos padres so 3 x 3 para [r c] e 0,5 para sig. fspecial(laplacian, alpha). Um filtro Laplaciano 3x3 com alpha no intervalo [0 1] e padro 0,5. fspecial(log, [r c], sig). a Laplaciana de uma Gaussiana, com padres 5x5 e 0,5. fspecial(motion, len, theta). O filtro aproxima a imagem de um esboo de movimento linear, onde len o nmero de pixels movimentados e theta a direo do movimento. Os padres para len e theta so 9 e 0. fspecial(prewitt). Um filtro de Prewitt 3x3, wv, que aproxima a imagem do gradiente vertical. fspecial(sobel). Um filtro de Sobel 3x3, sv, que aproxima a imagem do gradiente vertical. fspecial(unsharp, alpha). Um filtro de nitidez. O parmetro alpha controla a forma e varia no intervalo [0 1], o padro 0,2.
TABELA 1
g = medfilt2(A)
Usando o domain ones(2, 2) obtemos o bloco [1 2; 5 3]. Ordenando-o obtemos [1 2 3 5]. Como a ordem que escolhemos 3, o terceiro menor nmero ser o escolhido para preencher a posio (1, 1) da matiz J, que nesse caso 3. Assim obtemos a matriz resultante
J = [ 3 ? ? ? ; ? ? ? ? ; ? ? ? ? ; ? ? ? ? ];
2.1) Dilatao
A dilatao uma operao que cresce uma imagem binria atravs da aplicao de uma espcie de filtro, chamado de elemento estrutural (structuring element, se). No MATLAB, podemos implementar essa funo utilizando a seguinte sintaxe A2 = imdilate(A, se) onde: A a imagem que deseja-se dilatar; se o elemento estrutural que deseja-se aplicar imagem. Para gerar o elemento estrutural se usa-se a funo se = strel(shape, parameters) onde: shape uma string especificando o formato desejado; parameters uma lista de parmetros que especificaro as informaes sobre o formato (shape) da estrutura, como o tamanho. A Image Processing Toolbox (IPT) do MATLAB nos trs uma srie de elementos estruturais que podem ser usados. Alguns deles esto listados na tabela abaixo.
Sintaxe se = strel(diamond, R)
Descrio Gera uma estrutura plana na forma de um diamante, onde R a distncia da origem do se at as pontas extremas do diamante. Gera uma estrutura plana na forma de um disco de raio R. Gera uma estrutura plana na forma de uma linha, onde LEN especifica a largura da linha e DEG o ngulo em relao origem. Gera uma estrutura plana na forma de um octgono, onde R especifica a distncia do
se = strel(octagon, R)
centro do octgono at um de seus lados. se = strel(pair, OFFSET) Gera uma estrutura plana contendo dois membros. Um membro est localizado na origem, enquanto a posio do outro especificada pelo vetor OFFSET de dois inteiros. Gera uma estrutura plana contendo 2*P + 1 elementos. Um dos elementos se posiciona na origem, enquanto os outros so especificados pelo vetor V de dois inteiros que representam as linhas e as colunas. Gera uma estrutura plana retangular. M e N especificam as dimenses desse retngulo, onde M o nmero de linhas e N o de colunas. Gera uma estrutura plana quadrada, onde W especifica a largura do quadrado. Gera uma estrutura de formato arbitrrio. NHOOD uma matriz de 0s e 1s que especifica o formato. A segunda forma uma simplificao da primeira.
TABELA 2
se = strel(periodicline, P, V)
se = strel(rectangle, MN)
2.2) Eroso
A eroso uma operao que encolhe a imagem. Assim como na dilatao, a maneira de controlar esse encolhimento com o uso de elementos estruturais. No MATLAB podemos implementar uma eroso atravs do uso da funo A2 = imerode(A, se) onde: A a imagem que deseja-se dilatar; se o elemento estrutural que deseja-se aplicar imagem. Bem como na dilatao, os formatos para se esto indicados na TABELA 2.
2.3.1) Opening
A operao de abertura de uma imagem realizada atravs de uma eroso de uma imagem A por uma B (onde B um elemento estrutural) seguida de uma dilatao do resultado por B. A abertura nos dar uma imagem emaciada, onde todas as ligaes e contornos finos so erodidos. Essa operao pode ser obtida atravs do uso da funo C = imopen(A, se) onde: C a imagem que ser gerada aps a abertura; A a imagem de entrada; se o elemento estrutural a ser usado.
2.3.2) Closing
A operao de fechamento de uma imagem realizada atravs de uma dilatao de uma imagem A por uma B (elemento estrutural) seguida de uma eroso do resultado por B. O fechamento nos dar uma imagem emaciada, assim como na abertura, porm, no fechamento, os espaos abertos das imagens sero dilatados, e pequenos buracos na imagem sero preenchidos. Essa operao pode ser obtida atravs do uso da funo: C = imclose(A, se) onde: C a imagem que ser gerada aps o fechamento; A a imagem de entrada; se o elemento estrutural a ser usado.
A transformada hit-or-miss capaz de identificar as configuraes especficas dos pixis, tais como isolar pixels de primeiro plano, ou pixels que so os pontos de extremidade dos segmentos de linha (deteco de bordas), ou seja, uma operao para a identificao de forma. Para isso, ela usa um par de elementos estruturais, B1 e B2, onde B2 o complemento de B1. No MATLAB, podemos implementar essa funo da seguinte maneira C = bwhitmiss(A, B1, B2) onde: C o resultado da operao; B1 o elemento estrutural; B2 o segundo elemento estrutural, complemento de B2.
% % % % % %
Copyright 2002-2009 R. C. Gonzalez, R. E. Woods, and S. L. Eddins From the book Digital Image Processing Using MATLAB, 2nd ed., Gatesmark Publishing, 2009. Book web site: http://www.imageprocessingplace.com Publisher web site: http://www.gatesmark.com/DIPUM2e.htm
persistent lut if isempty(lut) lut = makelut(@endpoint_fcn, 3); end g = applylut(f,lut); %------------------------------------------------------------------% function is_end_point = endpoint_fcn(nhood) % Determines if a pixel is an end point. % IS_END_POINT = ENDPOINT_FCN(NHOOD) accepts a 3-by-3 binary % neighborhood, NHOOD, and returns a 1 if the center element is an % end point; otherwise it returns a 0. interval1 = [0 1 0; -1 1 -1; -1 -1 -1]; interval2 = [1 -1 -1; -1 1 -1; -1 -1 -1]; % Use bwhitmiss to see if the input neighborhood matches either % interval1 or interval2, or any of their 90-degree rotations. for k = 1:4 % rot90(A, k) rotates the matrix A by 90 degrees k times. C = bwhitmiss(nhood, rot90(interval1, k)); D = bwhitmiss(nhood, rot90(interval2, k)); if (C(2,2) == 1) || (D(2,2) == 1) % Pixel neighborhood matches one of the end-point % configurations, so return true. is_end_point = true; return end end % Pixel neighborhood did not match any of the end-point % configurations, so return false. is_end_point = false;
Operao bothat
Descrio Operao Bottom-Hat que usa um elemento estrutural 3x3. A operao remove pequenos elementos e detalhes da imagem que estiverem cercados com elementos mais escuros. Conecta pxels separados por lacunas de pxel nico. Remove pxels isolados no primeiro plano. Operao de fechamento com um elemento estrutural 3x3. Preenche pixels isolados do primeiro plano conectados. Operao de dilatao com um elemento estrutural 3x3. Operao de eroso com um elemento estrutural 3x3. Preenche buracos de pxel nico. Usa-se imfill para buracos maiores. Remove pxels do primeiro plano conectados em H.
10
majority
Faz um pxel p ser do primeiro plano se ele tiver uma vizinhana de, pelo menos, 5 pxels do primeiro plano. Caso contrrio, ele se tornar um pxel do background. Operao de abertura com um elemento estrutural 3x3. Remove pxels interiores (pixels do primeiro plano que no tem vizinhos no background). Transforma objetos sem buracos em pontos e objetos com buracos em anis. Faz o esqueleto de uma imagem. Remove pxels isolados, ou seja, no concatenados. Engrossa a imagem sem juntar as suas partes desconexas. Afina as imagens sem buracos para linhas finas conectadas. Objetos com buracos se tornam anis finos. Operao Top-Hat usando um elemento estrutural de 3x3. A operao remove pequenos elementos e detalhes da imagem que estiverem cercados com elementos mais brilhantes..
TABELA 3
tophat
11