Você está na página 1de 12

FILTRAGEM ESPACIAL

Afiltragemespacialconsistenoprocessamentodavizinhana,ouseja,clculoslinearesso
realizadosnospixelsdavizinhanadeumpixelcentral(x,y)eosresultadosdesseprocesso
soaplicadosaopixelcentral.

1.1) Filtragem Espacial Linear

Asoperaeslinearesdeinteresseconsistemnamultiplicaodecadapixeldavizinhanapor
umcoeficienteenasomadessesresultadosparaobterumarespostaacadapontocentral
(x,y).
EmMATLABtodoesseprocessopodeserfeitocomousodafuno

g=imfilter(f,w,filtering_mode,boundary_options,sizeoptions)

onde:

faimagemdeentrada
wamscara
gaimagemfiltrada,nasada
filterng_modeacorrelao1 (corr)ouconvoluo2 (conv)
boundary_optionstratadoproblemadeborderpadding(preenchimentodeborda)
size_optionspodeserfull,queretornaaimagempreenchidacomoresposta,ousame,
queretornaumaimagemdomesmotamanhodef.

Afuno

g=imfilter(f,w,replicate)

utilizadaparaimplementarumafiltragemlinearpadro.

AImageProcessingToolboxdoMATLABjtrazalgunsfiltrospadres,quepodemserobtidos
atravsdafuno

w=fspecial(type,parameters)

1
Acorrelaooprocessodafiltragempropriamentedito,comamscarawnaposiooriginal,ouseja,
0.

2
Aconvoluo,naverdade,omesmoprocessoqueacorrelao,pormcomamscarawtransladada
de180,ouseja,invertida.
1
ondetypeumdostiposdefiltrosaseguir:

Tipo DescrioeSintaxe

average fspecial(average,[rc]).recsoasdimensesdofiltroaserutilizado,
sendoqueumniconmerocorresponderaumamscaraquadrada.

disk fspecial(disk,r).Umamscaramdiacircularderaiopadro5.

gaussian fspecial(gaussian,[rc],sig).UmfiltroGaussiano,cujospadresso
3x3para[rc]e0,5parasig.

laplacian fspecial(laplacian,alpha).UmfiltroLaplaciano3x3comalphano
intervalo[01]epadro0,5.

log fspecial(log,[rc],sig).aLaplacianadeumaGaussiana,com
padres5x5e0,5.

motion fspecial(motion,len,theta).Ofiltroaproximaaimagemdeumesboo
demovimentolinear,ondelenonmerodepixelsmovimentadose
thetaadireodomovimento.Ospadresparalenethetaso9e0.

prewitt fspecial(prewitt).UmfiltrodePrewitt3x3,wv,queaproximaaimagem
dogradientevertical.

sobel fspecial(sobel).UmfiltrodeSobel3x3,sv,queaproximaaimagemdo
gradientevertical.

unsharp fspecial(unsharp,alpha).Umfiltrodenitidez.Oparmetroalpha
controlaaformaevarianointervalo[01],opadro0,2.

TABELA1

1.2) Filtragem Espacial No Linear

1.2.1) Filtragem Espacial Mediana

Ofiltrolinearmedianosimilaraofiltroaverage(mdio),noentanto,aoinvsdefazera
operaodamdiadosvaloresdavizinhana,essefiltrofazamedianadessesvalorese
computaelesaopixelcentral.
Paraaplicaressefiltropodeserusadaafuno:

g=medfilt2(A,[mn])

onde:

2
Aaimagemaserfiltrada
[mn]amatrizquedeterminaasdimensesdofiltro,ouseja,quantosertomadoda
vizinhanaparaosclculos.

Podesetambmusarafuno,jcomosvalorespadrespara[mn]iguaisa3x3
escrevendose

g=medfilt2(A)

1.2.2) Filtragem Espacial de Ordem-Estatstica

Essefiltronolinearrespondebaseadonaordenaoedospixelscontidosnavizinhanae
entosubstituindoovalordopixelcentralcomovalordeterminadopeloresultadode
classificao.
Elepodeserobtidoatravsdousodafuno

g=ordfilt2(f,order,domain)

onde

gaimagemdesada
faimagemdeentrada
orderaordemdonmeroquedesejamosretirardepartedamatrizfecolocarna
matrizg
domainumamatrizcom0se1s,ondeos1srepresentamosnmerosquesero
usadosnaordenao.

Exemplo1)
Considereamatriz
I=[1245;
5351;
0352;
2 1 7 7 ];
J = ordfilt2(I,3, ones(2,2));

Usandoodomainones(2,2)obtemosobloco[1253].Ordenandooobtemos[1235].Como
aordemqueescolhemos3,oterceiromenornmeroseroescolhidoparapreenchera
posio(1,1)damatizJ,quenessecaso3.Assimobtemosamatrizresultante

3
J=[3???;
????;
????;
? ? ? ? ];

Oprocessoserepetiratquetodaamatrizestejapreenchida.

4
PROCESSAMENTO MORFOLGICO DE IMAGEM

Osprocessosmorfolgicosaplicadossimagensbaseiamsenamodificaodaestruturada
imagemoriginal,muitasvezesparaaremooderudos(comoocasodousodaerosoeda
dilataoconjuntamente).AsoperaesmaisconhecidassoaErosoeaDilataodeuma
imagem.

2.1) Dilatao

Adilataoumaoperaoquecresceumaimagembinriaatravsdaaplicaodeuma
espciedefiltro,chamadodeelementoestrutural(structuringelement,se).NoMATLAB,
podemosimplementaressafunoutilizandoaseguintesintaxe

A2=imdilate(A,se)

onde:

Aaimagemquedesejasedilatar
seoelementoestruturalquedesejaseaplicarimagem.

Parageraroelementoestruturalseusaseafuno

se=strel(shape,parameters)

onde:

shapeumastringespecificandooformatodesejado
parametersumalistadeparmetrosqueespecificaroasinformaessobreo
formato(shape)daestrutura,comootamanho.

AImageProcessingToolbox(IPT)doMATLABnostrsumasriedeelementosestruturaisque
podemserusados.Algunsdelesestolistadosnatabelaabaixo.

5
Sintaxe Descrio

se=strel(diamond,R) Geraumaestruturaplana3 naformadeum


diamante,ondeRadistnciadaorigemdo
seataspontasextremasdodiamante.

se=strel(disk,R) Geraumaestruturaplananaformadeum
discoderaioR.

se=strel(line,LEN,DEG) Geraumaestruturaplananaformadeuma
linha,ondeLENespecificaalarguradalinha
eDEGonguloemrelaoorigem.

se=strel(octagon,R) Geraumaestruturaplananaformadeum
octgono,ondeRespecificaadistnciado
centrodooctgonoatumdeseuslados.

se=strel(pair,OFFSET) Geraumaestruturaplanacontendodois
membros.Ummembroestlocalizadona
origem,enquantoaposiodooutro
especificadapelovetorOFFSETdedois
inteiros.

se=strel(periodicline,P,V) Geraumaestruturaplanacontendo2*P+1
elementos.Umdoselementosseposiciona
naorigem,enquantoosoutrosso
especificadospelovetorVdedoisinteiros
querepresentamaslinhaseascolunas.

se=strel(rectangle,MN) Geraumaestruturaplanaretangular.MeN
especificamasdimensesdesseretngulo,
ondeMonmerodelinhaseNode
colunas.

se=strel(square,W) Geraumaestruturaplanaquadrada,ondeW
especificaalarguradoquadrado.

se=strel(arbitrary,NHOOD) Geraumaestruturadeformatoarbitrrio.
se=strel(NHOOD) NHOODumamatrizde0se1sque
especificaoformato.
Asegundaformaumasimplificaoda
primeira.

TABELA2

3
Porplana,deveseentenderqueesseelementoestruturaltemalturazero,ouseja,elesestcontidoem
umadimenso.Essadenominaosservequandosetrabalhacomimagensdeduasdimensesem
escaladecinza.
6
2.2) Eroso

Aerosoumaoperaoqueencolheaimagem.Assimcomonadilatao,amaneirade
controlaresseencolhimentocomousodeelementosestruturais.NoMATLABpodemos
implementarumaerosoatravsdousodafuno

A2=imerode(A,se)

onde:

Aaimagemquedesejasedilatar
seoelementoestruturalquedesejaseaplicarimagem.

Bemcomonadilatao,osformatosparaseestoindicadosnaTABELA2.

2.3) Combinao da Dilatao e da Eroso

Comumentenecessriosefazerusodasduastcnicasdeprocessamentomorfolgico.Para
isso,existemduasnovasoperaes,aabertura(Opening)eofechamento(Closing).Sero
apresentadastambmasoperaesdeacertoouerro(Hitormiss),astabelasdepesquisa
(Lookuptables)eumusomaisdetalhadodafunobwmorph.

2.3.1) Opening

AoperaodeaberturadeumaimagemrealizadaatravsdeumaerosodeumaimagemA
porumaB(ondeBumelementoestrutural)seguidadeumadilataodoresultadoporB.
Aaberturanosdarumaimagememaciada,ondetodasasligaesecontornosfinosso
erodidos.
Essaoperaopodeserobtidaatravsdousodafuno

C=imopen(A,se)

onde:

Caimagemquesergeradaapsaabertura
Aaimagemdeentrada
seoelementoestruturalaserusado.

7
2.3.2) Closing

Aoperaodefechamentodeumaimagemrealizadaatravsdeumadilataodeuma
imagemAporumaB(elementoestrutural)seguidadeumaerosodoresultadoporB.
Ofechamentonosdarumaimagememaciada,assimcomonaabertura,porm,no
fechamento,osespaosabertosdasimagensserodilatados,epequenosburacosna
imagemseropreenchidos.
Essaoperaopodeserobtidaatravsdousodafuno:

C=imclose(A,se)

onde:

Caimagemquesergeradaapsofechamento
Aaimagemdeentrada
seoelementoestruturalaserusado.

2.3.3) Transformada Hit-or-Miss

Atransformadahitormisscapazdeidentificarasconfiguraesespecficasdospixis,tais
comoisolarpixelsdeprimeiroplano,oupixelsquesoospontosdeextremidadedos
segmentosdelinha(detecodebordas),ouseja,umaoperaoparaaidentificaode
forma.Paraisso,elausaumpardeelementosestruturais,B1eB2,ondeB2ocomplemento
deB1.
NoMATLAB,podemosimplementaressafunodaseguintemaneira

C=bwhitmiss(A,B1,B2)

onde:

Coresultadodaoperao
B1oelementoestrutural
B2osegundoelementoestrutural,complementodeB2.

8
2.3.4) Lookup Tables

Quandooselementosestruturaisdatransformadahitormisssomuitopequenos,uma
maneiramaisrpidadecomputaratransformadausandoumaLookupTable(LUT).
Umatabeladepesquisaumvetorcoluna,emquecadaelementorepresentaovaloraser
retornadoparaumapossvelcombinaodepixelsnumavizinhana.
Paraumavizinhanade3x3,porexemplo,existem512(29)possveiscombinaesdepixels,
logo,aLUTumvetorde512elementos.
AfunousadaparacriarumaLUT

lut=makelut(fun,n)

Comoafunofuncomplexa,notrabalharemoselanestaseo.
UmaaplicaomaistilnousodasLookupTablesadetecodebordasdasimagens,ou
seja,aidentificaodospixelsdeextremidade.Parataltarefa,vamosusaroalgortimo
endpoints.m,mostradoaseguir:

functiong=endpoints(f)
%ENDPOINTSComputesendpointsofabinaryimage.
%G=ENDPOINTS(F)computestheendpointsofthebinaryimageF
%andreturnstheminthebinaryimageG.

%Copyright20022009R.C.Gonzalez,R.E.Woods,andS.L.Eddins
%FromthebookDigitalImageProcessingUsingMATLAB,2nded.,
%GatesmarkPublishing,2009.
%
%Bookwebsite:http://www.imageprocessingplace.com
%Publisherwebsite:http://www.gatesmark.com/DIPUM2e.htm

persistentlut

ifisempty(lut)
lut=makelut(@endpoint_fcn,3)
end

g=applylut(f,lut)

%%
functionis_end_point=endpoint_fcn(nhood)
%Determinesifapixelisanendpoint.
%IS_END_POINT=ENDPOINT_FCN(NHOOD)acceptsa3by3binary
%neighborhood,NHOOD,andreturnsa1ifthecenterelementisan
%endpointotherwiseitreturnsa0.
9
interval1=[010111111]
interval2=[111111111]

%Usebwhitmisstoseeiftheinputneighborhoodmatcheseither
%interval1orinterval2,oranyoftheir90degreerotations.
fork=1:4
%rot90(A,k)rotatesthematrixAby90degreesktimes.
C=bwhitmiss(nhood,rot90(interval1,k))
D=bwhitmiss(nhood,rot90(interval2,k))
if(C(2,2)==1)||(D(2,2)==1)
%Pixelneighborhoodmatchesoneoftheendpoint
%configurations,soreturntrue.
is_end_point=true
return
end
end

%Pixelneighborhooddidnotmatchanyoftheendpoint
%configurations,soreturnfalse.
is_end_point=false

2.3.5) Funo bwmorph

AfunodaIPTbwmorphimplementaumavariedadedeoperaesbaseadasnacombinao
dedilataes,eroseseoperaescomlookuptables.Asintaxedessafuno

g=bwmorph(f,operation,n)

onde:

operationumastringespecificandoaoperaodesejada
numinteiroespecificandoonmerodevezesqueaoperaodeveserrepetida.

AsoperaescontidasnaIPTestolistadasnatabelaabaixo:

10
Operao Descrio

bothat OperaoBottomHatqueusaum
elementoestrutural3x3.Aoperaoremove
pequenoselementosedetalhesdaimagem
queestiveremcercadoscomelementos
maisescuros.

bridge Conectapxelsseparadosporlacunasde
pxelnico.

clean Removepxelsisoladosnoprimeiroplano.

close Operaodefechamentocomumelemento
estrutural3x3.

diag Preenchepixelsisoladosdoprimeiroplano
conectados.

dilate Operaodedilataocomumelemento
estrutural3x3.

erode Operaodeerosocomumelemento
estrutural3x3.

fill Preencheburacosdepxelnico.Usase
imfillparaburacosmaiores.

hbreak Removepxelsdoprimeiroplanoconectados
emH.

majority Fazumpxelpserdoprimeiroplanoseele
tiverumavizinhanade,pelomenos,5pxels
doprimeiroplano.Casocontrrio,elese
tornarumpxeldobackground.

open Operaodeaberturacomumelemento
estrutural3x3.

remove Removepxelsinteriores(pixelsdoprimeiro
planoquenotemvizinhosnobackground).

shrink Transformaobjetossemburacosempontos
eobjetoscomburacosemanis.

skel Fazoesqueletodeumaimagem.

spur Removepxelsisolados,ouseja,no
concatenados.

11
thicken Engrossaaimagemsemjuntarassuas
partesdesconexas.

thin Afinaasimagenssemburacosparalinhas
finasconectadas.Objetoscomburacosse
tornamanisfinos.

tophat OperaoTopHatusandoumelemento
estruturalde3x3.Aoperaoremove
pequenoselementosedetalhesdaimagem
queestiveremcercadoscomelementos
maisbrilhantes..

TABELA3

12

Você também pode gostar