Sunteți pe pagina 1din 20

Segmentarea imaginilor

Conectarea muchiilor si detectarea frontierelor – procesarea locala


Algoritmii de detectare de muchii sunt urmati de regula de proceduri de unire a “bucatilor” de muchii, ce pot
fi intrerupte din diverse motive.
Procesarea locala prespune analizarea pixelilor intr-o vecinatate de mici dimensiuni (3 x 3, sau 5 x 5) si
verificarea daca pixelii care au fost detectati ca apartinand unor muchii sunt similari din anumite puncte de
vedere.
De regula se folosesc doua proprietati:
1. Intensitatea raspunsului operatorului gradient. Astfel, se va considera ca un pixel de coordonate (x 0, y0),
aflat intr-o vecinatate a pixelului de coordonate (x,y), este similar cu acesta din punctul de vedere al
intensitatii raspunsului operatorului gardient, daca:
f ( x, y )  f ( x0 , y0 )  E
unde E este un prag pozitiv.

2. Directia vectorului gradient. Aceasta e data de relatia:


G 
 ( x, y )  tan 1  y 
 Gx 
Doi pixeli ca cei descrisi mai sus se considera similari din acest punct de vedere, daca:
 ( x, y )   ( x0 , y0 )  A
unde A este un unghi prag pozitiv.

12/08/2021 Prelucrarea imaginilor 1


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala 1

Transformarea Hough se bazeaza pe maparea ecuatiei unui segment de dreapta din domeniul spatial in cel
numit spatiul parametric.

Ecuatia dreptei ce trece prin punctul de coordonate (xi, yi): yi  axi  b


b   xi a  yi
se poate scrie si:

Pentru o pereche de valori (xi, yi), dreapta definita de ecuatia de mai sus este unica.
In plus, un punct (xj, yj), are si el o dreapta asociata in spatiul parametric. Aceasta o intersecteaza pe cea
corespunzatoare punctului (xi, yi) in punctul (a’,b’), unde a’ si b’ sunt panta si respectiv ordonata la origine a
dreptei ce trece prin cele doua puncte considerate. De fapt toate punctele de pe aceasta dreapta au drepte
corespunzatoare in spatiul parametric care trec (toate), prin punctul (a’,b’).

12/08/2021 Prelucrarea imaginilor 2


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala 2

Spatiul parametric este divizat in celule de acumulare. Fiecare celula corespunde unei perechi (ai, bj). Pentru
fiecare punct (xk, yk) al imaginii, se dau lui a, succesiv, toate valorile pe care le poate lua in intervalul pantelor
asteptate (amin, amax) si se rezolva ecuatia in b, b=-xka+yk. Valorile gasite sunt rotunjite la nivele acceptabile in
intervalul (bmin, bmax). Daca pentru o valoare ai se gaseste o valoare acceptabila pentru bj, celula de acumulare Ai,j
este incrementata cu 1. Daca la finalul procesului valoarea celulei Ai,j este M, inseamna ca exista M puncte in
domeniul spatial care apartin dreptei y=aix+bj. Este evident ca precizia de lucru depinde de desimea diviziunilor
de pe axele a si b.

12/08/2021 Prelucrarea imaginilor 3


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala 3

In practica, aceasta metoda are dezavantajul ca nu negociaza bine situatiile dreptelor verticale, de panta
tinzand spre infinit. Evitarea acestui fenomen se face prin utilizarea ecuatiei dreptei de forma:
x cos   y sin   
In aceasta situatie, in planul parametric, se opereaza cu sinusoide in loc de segmente de dreapta.

12/08/2021 Prelucrarea imaginilor 4


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala
Exemplu

12/08/2021 Prelucrarea imaginilor 5


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala
Exemplu

imagine=imread('upg.jpg');
imshow(imagine);
l1=edge(imagine,'canny');
figure, imshow(l1);
[H,theta,rho]=hough(l1);

figure, imshow(imadjust(mat2gray(H)),[],'XData',theta,'YData',rho,...
'InitialMagnification','fit');
xlabel('\theta (degrees)'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot)

P = houghpeaks(H,50,'threshold',ceil(0.2*max(H(:))));
x = theta(P(:,2));
y = rho(P(:,1));
plot(x,y,'s','color','black');
lines = houghlines(l1,theta,rho,P,'FillGap',5,'MinLength',7);
figure, imshow(imagine), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
end

12/08/2021 Prelucrarea imaginilor 6


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala
Utilizarea grafurilor - 1
O muchie poate fi considerata ca fiind granita dintre pixeli. In imaginea de mai jos, pixelii p si q sunt 4 vecini.
Putem privi traseele muchiilor ca fiind arcele unui graf. Nodurile grafului sunt punctele unde o muchie incepe (sau se termina).
Relatia: k
c   c(ni 1 , ni )
i2
Defineste costul unui traseu in cadrul unui graf.
Pentru determinarea muchiilor, se defineste costul unui element de muchie (dintre pixelii generici p si q:

c( p, q )  H  [ f ( p )  f (q )]
unde H este cel mai mare nivel de gri din imagine, iar f(p), respectiv f(q) sunt nivelele de gri ale pixelilor p si q.

Se mai face conventia ca in sensul de parcurs, punctul p se gaseste la dreapta.


In aceste conditii, costurile segmentelor de muchie sunt cele din figura de mai jos (centru). Valorile de deasupra corespund
costurilor pentru sensul de deplasare orizontala de la stanga la dreapta, iar valorile de dedesupt, corespund celuilalt sens de
deplasare orizontala.
S-a mai facut presupunerea ca muchiile incep de pe primul rand de pixeli de sus si se termina pe ultimul rand de pixeli de jos.

12/08/2021 Prelucrarea imaginilor 7


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – procesarea globala
Utilizarea grafurilor - 2

Cele de mai sus , aplicate in cazul imaginii cu


dimensiunea 3 x 3 conduc la situatia din imaginea
alaturata.
Costul minim se inregistreaza pe traseul punctat.

In cazul unor imagini reale, de dimensiune mult mai


mare, problema determinarii traseului cu costul
minim nu este simpla.

12/08/2021 Prelucrarea imaginilor 8


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding - 1
Pragurile pot fi folosite si pentru segmentarea imaginilor. Daca histograma unei imagini arata ca mai jos, se poate presupune ca
zonele de maxim corespund fundalului si unui/unor obiecte. Cu ajutorul unui prag (T), sau a doua praguri (T1 si T2), se pot izola
obiectele.

Mecanismul este urmatorul:


1. Pentru un prag: daca f(x,y)>T, punctul apartine obiectului, altminteri fundalului
2. Pentru doua obiecte: daca f(x,y)<=T1, punctul apartine fundalului, daca T1<f(x,y)<=T2, punctul apartine primului obiect, iar
daca f(x,y)>T2, punctul apartine celui de-al doilea obiect.

Uneori, se mai ia in calcul si o proprietate suplimentara, de vecinatate:


T=T[x,y,f(x,y), p(x,y)], unde p(x,y) este o proprietate de vecinatate, cum ar fi de exemplu nivelul mediu de gri al unei zone centrate
in pixelul analizat.
In general, daca se noteaza cu g(x,y) o imagine careia I s-a aplicat un prag, se scrie:
1, daca f ( x, y)  T
g ( x, y )  
0, daca f ( x, y)  T
Unde pixelii ce primesc valoarea 1 (sau orice nivel de gri) apartin obiectelor, iar cei care primesc valoarea 0 (sau orice nivel de gri,
neasignat obiectelor), apatin fundalului.
Data propriecatea T depinde numai de f(x,y), avem de-a face cu prag global, iar daca T depinde si de f(x,y) si de p(x,y) avem de-a
face cu un prag local. Daca T depinde si de coordonatele (x,y), pragul se numeste dinamic sau adaptativ.

12/08/2021 Prelucrarea imaginilor 9


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding - 2

O varianta de algoritm pentru aplicarea unui prag in vederea separarii obiectelor de fundal este urmatoarea:
1. Stabilirea unei valori initiale pentru prag
- Cand fundalul si obiectul ocupa aproximativ aceeasi suprafata din imagine, T se poate lua valoarea
medie de gri a imaginii.
- Cand cele doua suprafete sunt sensibil diferite, T se considera o valoarea mediana intre cele doua
nivele de gri (ale fundalului si obiectului)

2. Se segmenteaza imaginea cu valoarea T stabilita anterior


3. Se calculeaza nivele medii de gri ale celor doua grupe de pixeli rezultate in pasul precedent (m1 si m2)
4. Se calculeaza o noua valoare de prag T=(m1+m2)/2
5. Se repeta pasii 2-4, pana cand doua valori succesive de prag difera cu mai putin decat o valoare de oprire.

In general succesul unei operatii de segmentare prin utilizarea pragurilor depinde de iluminarea obiectelor din
imagine.
Imaginile prost iluminate sunt caracterizate de histograme la care maximele nu mai sunt aproape deloc
separate, ceea ce face aplicarea unui prag imposibila. O solutie ar fi segmentarea imaginii in subimagini si
aplicarea algoritmului de mai sus pentru fiecare subimagine.

12/08/2021 Prelucrarea imaginilor 10


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 1
im2bw
BW = im2bw(I, level)
BW = im2bw(X, map, level)
BW = im2bw(RGB, level)

Functia converteste o imagine de intensitate, indexata sau color intr-o imagine alb-negru. Parametrul level, cu
valori in intervalul [0 1] defineste pragul utilizat.

Exemple:

Imagine initiala prag=.24 prag=0.5

12/08/2021 Prelucrarea imaginilor 11


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 2
graythresh
level = graythresh(I)
[level EM] = graythresh(I)

Functia determina pragul optim ce urmeaza a fi furnizat functiei im2bw.


Parametrul EM reprezinta nivelul de eficienta al pragului.

Exemplu:

[level,EM]=graythresh(imagine);
>> EM
EM =
0.9522
>> level
level =
0.4902

12/08/2021 Prelucrarea imaginilor 12


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 3
grayslice

X = grayslice(I, n)
X = grayslice(I, v)

Functia aplica praguri multiple unei imagini.


Prima sintaxa va aplica pragurile: 1 2 n 1
, ,....,
n n n
A doua sintaxa aplica pragurile specificate in vectorul v. Valorile pragurilor trebuie sa fie cuprinse in intervalul [0 1].
Functia transforma imaginea de intensitate intr-o imagine indexata. Vizualizarea acesteia se face si cu sintaxa:

Imshow(imagine,map), unde map este harta de culoare folosita.

Exemplu:

figure, imshow(tr2); figure, imshow(tr2, jet(2));


12/08/2021 Prelucrarea imaginilor 13
Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 4
threshold
[out, th_value] = threshold(in,type,parameter)

type:
'isodata': Thresholding cu algoritmul Isodata - Ridler and Calvard (1978)
'otsu‘: Thresholding prin utilizarea variantei maximale inter-clase - Otsu (1979)
'minerror' : Thresholding prin utilizarea metodei erorii minime - Kittler si Illingworth (1986)
'triangle': Thresholding prin utilizarea metodei coardei - by Zack, Rogers si Latt (1977)
'background': Thresholding prin utilizarea metodei simetriei de fundal bimodale
'fixed': Thresholding cu o valoare fixa
'double': Thresholding intre doua valori fixe
'volume': Thresholding pentru obtinerea unei fractii de volum
'hysteresis': Din imaginea binara (valoare de gri > low (min), sunt selectati numai regiunile pentru care cel putin
un pixel are valoarea > high (max)
parameter:
Pentru ‘isodata’: numarul de praguri ce se vor folosi. Implicit 1
Pentru 'background’: distanta pana la maximul maximul unde se aplica pragul, masurata la jumatate de latime
si jumatate din maxim. Implicit 2.
Pentru ‘fixed’, : Threshold la valoare fixa. Implicit valoarea medie de gri.
Pentru 'double’: Doua valori de prag. Implicit min+[1/3,2/3]*(max-min).
Pentru 'volume’: Volumul fractiei. Implicit 0.5
Pentru 'hysteresis’: Doua valori: [min,max]

12/08/2021 Prelucrarea imaginilor 14


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 5

Threshold (dip-image)
min=50,
max = 120

12/08/2021 Prelucrarea imaginilor 15


Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor – thresholding
Functii - 6
binarize(M, thresh) – Intoarce forma binara a imaginii M. Pixelii cu valoarea peste thresh sunt setati pe 1, ceilalti pe 0.

binarize2(M, lowThresh, highThresh, inValue, outValue) – Intoarce forma binarizata a imaginii M. Pixelii cu valori
intre lowTresh si highTresh sunt setati pe valoarea inValue, iar ceilalti pe valoarea outValue.

binarize_auto(M) – Intoarce forma binara a imaginii M, cu pragul setat automat.

threshold(M, thresh) – Intoarce imaginea M, cu pixelii cu valoarea sub thresh setati pe thresh.

12/08/2021 Prelucrarea imaginilor 16


Segmentarea imaginilor
Utilizarea informatiilor de frontiera pentru ameliorarea histogramelor si
aplicarea de praguri locale - 1

Eficienta tehnicilor de aplicare de praguri depinde de calitatea histogramelor.


O solutie ar fi sa fie considerati numai pixelii care se gasesc pe sau in apropierea muchiilor dintre obiecte.
In acest caz, se va manifesta o tendinta de adancire a vailor dintre maximele unei histograme.

Modul de lucru este urmatorul:

Se formeaza o imagine ai carei pixeli sunt setati pe 3 nivele, astfel:

 0, daca f  T

s ( x, y )  , daca f  T si  2 f  0
 , daca f  T si  2 f  0

Simbolurile + si – reprezinta nivele de gri distincte.
Astfel, pentru o imagine ce contine un obiect intunecat pe un fond deschis, procedeul descris mai sus va produce
o imagine in care:
- Pixelii care nu sunt pe o muchie (prima conditie), vor primi eticheta (valoarea) 0
- Pixelii pe partea intunecata a unei muchii (conditia 2) eticheta vor primi eticheta “+” (ceea ce poate insemna o
anumita valoare de gri)
-Pixelii care sunt pe partea luminoasa a unei muchii (conditia 3), vor primi eticheta “-”
Se poate obtine astfel o imagine segmentata, binara, la care valorile 1 corespund obiectelor de interes, iar 0-
urile corespund fundalului.

12/08/2021 Prelucrarea imaginilor 17


Segmentarea imaginilor
Utilizarea informatiilor de frontiera pentru ameliorarea histogramelor si
aplicarea de praguri locale - exemplu

12/08/2021 Prelucrarea imaginilor 18


Segmentarea imaginilor
Watersheding - 1

Crearea barajelor se face prin operatii succesive de dilatare

12/08/2021 Prelucrarea imaginilor 19


Segmentarea imaginilor
Watersheding - 2
Functii:

Matlab:
L = watershed(A)
L = watershed(A, conn)

Dipimage:
image_out = watershed(image_in,connectivity,max_depth,max_size)
image_out = waterseed(seed_image,grey_image,connectivity,max_depth,max_size)

12/08/2021 Prelucrarea imaginilor 20

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

  • Curs 4 - Actionari Cu Turatia Variabila
    Curs 4 - Actionari Cu Turatia Variabila
    Document21 pagini
    Curs 4 - Actionari Cu Turatia Variabila
    Mihai Constantinescu
    Încă nu există evaluări
  • PTDEE Curs13
    PTDEE Curs13
    Document36 pagini
    PTDEE Curs13
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs14
    PTDEE Curs14
    Document42 pagini
    PTDEE Curs14
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs12
    PTDEE Curs12
    Document28 pagini
    PTDEE Curs12
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs12
    PTDEE Curs12
    Document28 pagini
    PTDEE Curs12
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs11
    PTDEE Curs11
    Document17 pagini
    PTDEE Curs11
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs8
    PTDEE Curs8
    Document22 pagini
    PTDEE Curs8
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs7
    PTDEE Curs7
    Document32 pagini
    PTDEE Curs7
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs10
    PTDEE Curs10
    Document18 pagini
    PTDEE Curs10
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs10
    PTDEE Curs10
    Document18 pagini
    PTDEE Curs10
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs8
    PTDEE Curs8
    Document22 pagini
    PTDEE Curs8
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs8
    PTDEE Curs8
    Document22 pagini
    PTDEE Curs8
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs9
    PTDEE Curs9
    Document19 pagini
    PTDEE Curs9
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs7
    PTDEE Curs7
    Document32 pagini
    PTDEE Curs7
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs7
    PTDEE Curs7
    Document32 pagini
    PTDEE Curs7
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs1
    PTDEE Curs1
    Document38 pagini
    PTDEE Curs1
    Milcu A-doru
    100% (1)
  • PTDEE Curs6
    PTDEE Curs6
    Document42 pagini
    PTDEE Curs6
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs2
    PTDEE Curs2
    Document47 pagini
    PTDEE Curs2
    Flo Mirca
    Încă nu există evaluări
  • PTDEE Curs6
    PTDEE Curs6
    Document42 pagini
    PTDEE Curs6
    Flo Mirca
    Încă nu există evaluări
  • Turbine Randamente
    Turbine Randamente
    Document34 pagini
    Turbine Randamente
    Cococeanu Adrian
    100% (1)
  • PTDEE Curs5
    PTDEE Curs5
    Document57 pagini
    PTDEE Curs5
    Flo Mirca
    Încă nu există evaluări
  • Biblio Energ
    Biblio Energ
    Document11 pagini
    Biblio Energ
    Flo Mirca
    Încă nu există evaluări
  • Instalatii Electrice
    Instalatii Electrice
    Document128 pagini
    Instalatii Electrice
    mariuszaharia
    Încă nu există evaluări
  • Curs 4 - Actionari Cu Turatia Variabila
    Curs 4 - Actionari Cu Turatia Variabila
    Document21 pagini
    Curs 4 - Actionari Cu Turatia Variabila
    Mihai Constantinescu
    Încă nu există evaluări
  • AE Capitolul II
    AE Capitolul II
    Document60 pagini
    AE Capitolul II
    Flo Mirca
    Încă nu există evaluări
  • Sisteme Automate de Actionare Electromecanica
    Sisteme Automate de Actionare Electromecanica
    Document138 pagini
    Sisteme Automate de Actionare Electromecanica
    Vasile Botezatu
    100% (1)
  • Vega-Senzor de Nivel
    Vega-Senzor de Nivel
    Document36 pagini
    Vega-Senzor de Nivel
    Flo Mirca
    Încă nu există evaluări