Prelucrarea imaginilor -- Laboratorul 5 -- 2007-2008 -- info.uvt.ro

From Wikiversity

Navigare[edit]

Filtre liniare[edit]

Spre deosebire de filtrele punctuale prezentate în laboratoarele anterioare, filtrele liniare folosesc pentru calcularea fiecărui pixel din imaginea destinaţie un set de pixeli din imaginea sursă. Astfel pixelul din imaginea destinaţie este obţinut printr-un proces de convoluţie aplicat setului de pixeli din imaginea sursă şi a unei matrici de valori numită nucleu (sau kernel).


Convoluţia[edit]

Convoluţia
Este un proces matematic care permite combinarea celor două intrări
  • setul de pixeli din imaginea sursă;
  • matricea nucleu;
pentru obţinerea valoarii unui pixel din imaginea destinaţie.

Astfel, putem spune că pixelul rezultat este o combinaţie liniară a setului de pixeli sursă.

Convoluţia liniară aplicată unei matrici x cu nucleul hMxM:

Principala problemă în aplicarea convoluţiei este numărul mare de calcule care trebuie efectuate pentru aplicarea unui filtru. De exemplu, pentru o imagine de 320x200 căreia i se aplică un filtru de convoluţie de 9x9, vom avea aproximativ 5000000 de înmulţiri şi adunări (320x200x9x9).

Există diferite tipuri de filtre:

  • low pass (pentru netezire, smoothing)
  • high pass (sharpening)
  • detectarea muchiilor
  • embossing


Filtre low pass[edit]

Aceste filtre se folosesc in general pentru:

  • netezirea imaginii;
  • eliminarea zgomotului;
  • dau un efect de blur;


Filtru uniform -- mediere aritmetică[edit]

Acest filtru estompează muchiile prin medierea pixelilor din jurul acestora.

Prin utilizarea unei matrici 9x9 se va obţine un efect de blur mai puternic.


Filtru Gaussian[edit]

Avantaje:

  • este circular simertic, muchiile şi liniile în direcţii diferite sunt tratate la fel;
  • matricea nucleu se poate separa într-un produs de 2 vectori (orizontal şi vertical) => aplicarea matricii filtru poate fi realizată prin aplicarea secvenţială a unor matrici mai mici.

sau


Algoritmul este:

  • Pentru fiecare pixel (i,j):
    • Se aplică formula de convoluţie pentru matricea de pixeli a imaginii şi vectorul orizontal al matricii nucleu descompuse : (1 2 1)

Pentru fiecare pixel (i,j):

    • Se aplică formula de convoluţie pentru matricea de pixeli a imaginii şi vectorul vertical al matricii filtru descompuse : (1 2 1)^T

Se va folosi o matrice intermediară în care se vor reţine rezultatele după aplicarea primei etape de convolutie şi asupra căreia se va aplica etapa a doua de convoluţie (înmulţirea cu vectrul vertical).


Filtre high pass[edit]

Sunt filtre destinate creşterii contrastului şi accentuării detaliilor.

Matrici nucleu pentru filtre low pass:


Filre pentru detectarea muchiilor[edit]

Matrici nucleu pentru:

  • Detectarea muchiilor pe diferite direcţii:
    • Vertical:
    • Orizontal:
    • Diagonal:
  • Detectarea tuturor muchiilor -- filtru Laplacian:

Observaţie: Suma elementelor matricii nucleu este 0 de aceea, pentru a evita impărţirea cu 0, se va adauga sumei în formula de convoluţie valoarea 128 pentru a menţine valoarea lui y[r,c] în domeniul [0..255].


Embossing[edit]

Efectul de embossing dă senzaţia că unele obiecte ar fi mai departe sau mai aproape de fundalul imaginii -- un fel de efect 3D.

Matrici nucleu pentru filtre de tip emboss:

Observaţie:

  • Dacă suma elementelor matricii nucleu este 0 se va aplica acelaşi artificiu de calcul ca şi la detectarea muchiilor (se adaugă 128 sumei).
  • Înainte de a aplica convoluţia, imaginea sursă trebuie sa fie în tonuri de gri. Dacă nu este îndeplinit acest criteriu, se fa aplica o transformare adecvată.



Ciprian Dorin Craciun, 2007-11-05, ccraciun@info.uvt.ro