Sunteți pe pagina 1din 4

EUGEN ZAHARESCU - MORFOLOGIA MATEMATICA A IMAGINILOR BINARE

OPERAIILE MORFOLOGICE DERIVATE


DESCHIDEREA I NCHIDEREA
WHITE TOP HAT SI BLACK TOP HAT
Definiia 3!" De#$%i&e'ea a imaginii f printr-un element structurant E se noteaz cu
E
(f ) i
este definit ca erodarea lui f de ctre E, urmat de dilatarea cu elementul structurant transpus *:

E
( f ) +
*
[
E
( f ) ]
(3.1)
i.e.
E
+
*

E
. n ecuaia (3!) este esenial s considerm transpusul ES pentru dilatare.
function [out] = mmdeschidere(in,es,oes_x,oes_y,nr,ng)
% autor: Eugen ZAHAE!"#
% e$mai%: e&aharescu'uni($o(idius)ro
% data: martie *++,
% ea%i&ea&a deschiderea imagini%or -inare sau cu ni(e%e de gri)
% .i(e%e%e de gri sunt cu/rinse in inter(a%u% [0,.1](im/%icit .1=*23)
% 4aca (a%oarea de iesire ca%cu%ata iese din inter(a%u% [0, .1] =5 i se atri-uie (a%oarea extrema)
% 4eschidere 04=daca semna%u% de intrare 6. si e%ementu% structurant E! sunt (ectori)
% 4eschidere *4=daca imaginea de intrare 6. si e%ementu% structurant E! sunt matrici)
% 7riginea e%ementu%ui structurant [oes_x oes_y] /oate fi oriunde in interioru% E! (ector8matrice)
% 6maginea de iesire 7#9 este erodata imaginii de intrare 6. du/a e%ementu% structurant E!,
% iterata de . ori (im/%icit .=0))
% :entru imagini%e -inare, (a%oarea /uncte%or de funda% este 0, iar (a%oarea
% /uncte%or o-iect este *23)
% function [imagine_out]=mmdeschidere(imagine_in,e%em_struc,origes_x,origes_y,nr_iter,ni(_gri)
% imagine_out : 6maginea de iesire (erodata)
% imagine_in : 6maginea de intrare su- forma de (ector8matrice
% e%em_struc : E%ementu% structurant su- forma de (ector8matrice
% origes_x : A-scisa originii e%ementu%ui structurant(indice%e %iniei /o&itiei din E!)
% origes_y : 7rdonata originii e%ementu%ui structurant(indice%e co%oanei /o&itiei din E!)
% nr_iteratii : .r) de iteratii a%e o/eratiei de erodare (im/%icit 0)
% ni(_gri : .r) de ni(e%e de gri a%e imaginii (im/%icit *23)
%Exem/%u%0 : in=magic(;)<es=ones(,)<oes_x=*<oes_y=*<out=mmdeschidere(in,es,oes_x,oes_y)
%Exem/%u%* : in*=in(0,:)<es*=&eros(0,,)<out*=mmdeschidere(in*,es*,0,*,*)
out=[]<
[es_r es_c]=si&e(es)<
[ir ic]=si&e(in)<
if nargin=>
dis/(?.r) de argumente tre-uie sa fie minim >)?)<
return<
end
if (ir=es_r @ ic=es_c)
dis/ (? 6maginea de intrare este mai mica decat e%ementu% structurant?)<
return<
end
if es_r==+ A es_c==+
dis/(?4imensiunea e%ementu%ui structurant tre-uie sa fie nenu%a)?)<
return<
end
if oes_x5es_r @ oes_x=0@ oes_y5es_c @ oes_y=0
dis/(?7riginea e%ementu%ui structurant nu este in interioru% acestuia?)<
return<
end
if (exist(?nr?,?(ar?)==+)
nr=0<
end
if (exist(?ng?,?(ar?)==+)
ng=*23<
end
out = mmerodare(in,es,oes_x,oes_y,nr,ng)<
out = mmdi%atare(out,es,oes_x,oes_y,nr,ng)<
Definiia 3," n$%i&e'ea a unei imagini f printr-un element structurant E este notat cu
E
(f) i
este definit ca dilatarea lui f cu elementul structurant E- urmat de erodarea cu elementul
structurant transpus
*
:

E
( f ) +
*
[
E
( f ) ]
(3.3)
i.e.
E
+
*

E
.
1
EUGEN ZAHARESCU - MORFOLOGIA MATEMATICA A IMAGINILOR BINARE
function [out] = mminchidere(in,es,oes_x,oes_y,nr,ng)
% o-ser(atii : ace%easi (erificari ca %a mmdeschidere
%BBBBBBB)
out = mmdi%atare (in,es,oes_x,oes_y,nr,ng)<
out = mmerodare (out,es,oes_x,oes_y,nr,ng)<
Definiia 33" Tranformarea W%i.e T/01Ha. a unei imagini f este definit ca diferena dintre
i2a3inea iniia45 f i &e#$%i&e'ea i2a3inii cu elementul structurant E"
function [out] = mmChiteto/hat(in,es,oes_x,oes_y,nr,ng)
out = in$ mmdeschidere(in,es,oes_x,oes_y,nr,ng)<
Definiia 36" Tranformarea B4a$7 T/01Ha. a unei imagini f este definit ca diferena dintre
8n$%i&e'ea i2a3inii cu elementul structurant E i i2a3inea iniia45 f"
function [out] = mm-%acDto/hat(in,es,oes_x,oes_y,nr,ng)
out = mminchidere(in,es,oes_x,oes_y,nr,ng)$in<
% (erif_E74AE_46EA9AE04)m
%E74AEA F 46EA9AEA 6GA16.6E7 "# .6HEEE 4E 16 (!EG.AEE 04)
in = rand(2+)<
in*=f%oor(in(:,0)I*22)
es=&eros(,,0)<
erodata=mmerodare(in*,es,*,0)<%E74AEA "# E! :EA9 !6GE96"
di%atata=mmdi%atare(in*,es,*,0)<%46EA9AEA "# E! :EA9 !6GE96"
t0=[?JE#E=6GA16.EA 6.696AEA in* < 1EE.=6GA16.EA E74A9A< E4=6GA16.EA 46EA9A9A?]<%969E#E K61#66 0
figure(0)<set(0,?.ame?,t0,?GenuJar?,?none?)<%!E9EAZA A96J#9#E 4E :7Z696E A K61) !6 A.#EEAZA GE.#JA
/%ot(in*,?$-?)<ho%d on<grid</ause<
/%ot(erodata,?$g?)</ause<
/%ot(di%atata,?$r?)</ause< c%ose a%%
%(erif_6."H64EE_4E!"H64EE04_!)m
%6."H64EEA F 4E!"H64EEA !6GE96"A A 6GA16.6E7 "# .6HEEE 4E 16 (!EG.AEE 04)
in = rand(2+)<
in*=f%oor(in(:,0)I*22)
es=&eros(,,0)<
c%ose=mminchidere(in*,es,*,0)<%6."H64EEA "# E! :EA9 !6GE96"
o/en=mmdeschidere(in*,es,*,0)<%4E!"H64EEA "# E! :EA9 !6GE96"
t0=[?E4=6GA1)6.696AEA< 1EE.=6GA1)6."H6!A< JE#E=6GA1)4E!"H6!A?]<%969E#E K61#66 0
figure(0)<set(0,?.ame?,t0,?GenuJar?,?none?)<%!E9EAZA A96J#9#E 4E :7Z696E A K61) !6 A.#EEAZA GE.#JA
/%ot(in*,?$r?)<ho%d on<grid</ause<
/%ot(c%ose,?$g?)<ho%d on</ause<
/%ot(o/en,?$-?)</ause<c%ose a%%
% (erif_LH69E97:HA9_!)m
%LH69E97:HA9 !6GE96"A A 6GA16.6E7 "# .6HEEE 4E 16 (!EG.AEE 04)
in = rand(2+)<
in*=f%oor(in(:,0)I*22)
es=&eros(,,0)<
Chiteto/hat=mmChiteto/hat(in*,es,*,0)<%LH69E97:HA9 "# E! :EA9 !6GE96"
o/en=mmdeschidere(in*,es,*,0)<%4E!"H64EEA "# E! :EA9 !6GE96"
t0=[?E4=6GA1)6.696AEA< 1EE.=4E!"H64EEA< JE#E=LH69E97:HA9 ?]<%969E#E K61#66 0
figure(0)<set(0,?.ame?,t0,?GenuJar?,?none?)<%!E9EAZA A96J#9#E 4E :7Z696E A K61) !6 A.#EEAZA GE.#JA
/%ot(in*,?$r?)<ho%d on<grid</ause<
/%ot(o/en,?$g?)</ause<
/%ot(Chiteto/hat,?$-?)</ause<c%ose a%%
%JEA"M97:HA9 !6GE96"A A 6GA16.6E7 "# .6HEEE 4E 16 (!EG.AEE 04)
in = rand(2+)<
in*=f%oor(in(:,0)I*22)
es=&eros(,,0)<
-%acDto/hat=mm-%acDto/hat(in*,es,*,0)<%JEA"M97:HA9 "# E! :EA9 !6GE96"
c%ose=mminchidere(in*,es,*,0)<%6."H64EEA "# E! :EA9 !6GE96"
t0=[?E4=6GA1)6.696AEA< 1EE.=6."H64EEA< JE#E=JEA"M97:HA9 ?]<%969E#E K61#66 0
figure(0)<set(0,?.ame?,t0,?GenuJar?,?none?)<%!E9EAZA A96J#9#E 4E :7Z696E A K61) !6 A.#EEAZA GE.#JA
/%ot(in*,?$r?)<ho%d on<grid</ause<
/%ot(c%ose,?$g?)</ause<
/%ot(-%acDto/hat,?$-?)</ause<c%ose a%%
2
EUGEN ZAHARESCU - MORFOLOGIA MATEMATICA A IMAGINILOR BINARE
3
EUGEN ZAHARESCU - MORFOLOGIA MATEMATICA A IMAGINILOR BINARE
4

S-ar putea să vă placă și