Imagini și procesare a imaginilor
Sfat
Consultați fila Text și imagini pentru mai multe detalii!
Pentru un computer, o imagine este o matrice de valori numerice ale pixelilor . De exemplu, luați în considerare următoarea matrice:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Matricea este formată din șapte rânduri și șapte coloane, reprezentând valorile pixelilor pentru o imagine de 7x7 pixeli (care este cunoscută sub numele de rezoluția imaginii). Fiecare pixel are o valoare cuprinsă între 0 (negru) și 255 (alb); cu valori între aceste limite reprezentând nuanțe de gri. Imaginea reprezentată de această matrice arată similar cu următoarea imagine (mărită):
Matricea de valori de pixeli pentru această imagine este bidimensională (reprezentând rânduri și coloane sau coordonatele x și y ) și definește un singur dreptunghi de valori de pixeli. Un singur strat de valori de pixeli ca acesta reprezintă o imagine în tonuri de gri. În realitate, majoritatea imaginilor digitale sunt multidimensionale și constau din trei straturi (cunoscute sub numele de canale) care reprezintă nuanțe de culoare roșu, verde și albastru (RGB). De exemplu, am putea reprezenta o imagine color prin definirea a trei canale de valori de pixeli care creează aceeași formă pătrată ca și exemplul anterior în tonuri de gri:
Red:
150 150 150 150 150 150 150
150 150 150 150 150 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 150 150 150 150 150
150 150 150 150 150 150 150
Green:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Blue:
255 255 255 255 255 255 255
255 255 255 255 255 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 255 255 255 255 255
255 255 255 255 255 255 255
Iată imaginea rezultată:
Pătratele violet sunt reprezentate de combinația:
Red: 150
Green: 0
Blue: 255
Pătratele galbene din centru sunt reprezentate de combinația:
Red: 255
Green: 255
Blue: 0
Filtre
O modalitate obișnuită de a efectua activități de procesare a imaginilor este să aplicați filtre care modifică valorile pixel ale imaginii pentru a crea un efect vizual. Un filtru este definit de una sau mai multe matrice de valori pixeli, numite kerneluri de filtrare. De exemplu, puteți defini filtrul cu un kernel 3x3, așa cum se arată în acest exemplu:
-1 -1 -1
-1 8 -1
-1 -1 -1
Kernelul este apoi convolved în imagine, calculând o sumă ponderată pentru fiecare corecție de 3x3 de pixeli și atribuind rezultatul unei imagini noi. Este mai ușor să înțelegeți cum funcționează filtrarea explorând un exemplu pas cu pas.
Să începem cu imaginea în tonuri de gri pe care am explorat-o anterior:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Mai întâi, aplicăm kernelul filtrului la corecția din stânga sus a imaginii, înmulțind fiecare valoare pixel cu valoarea de greutate corespunzătoare din kernel și adăugând rezultatele:
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (0 x -1) + (255 x -1) = -255
Rezultatul (-255) devine prima valoare dintr-o matrice nouă. Apoi mutăm kernelul de filtrare de-a lungul unui pixel la dreapta și repetăm operațiunea:
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (255 x -1) + (255 x -1) = -510
Din nou, rezultatul este adăugat la matricea nouă, care conține acum două valori:
-255 -510
Procesul se repetă până când filtrul a fost convolat în întreaga imagine, așa cum se arată în această animație:
Filtrul este comutat în imagine, calculând o matrice nouă de valori. Unele dintre valori pot fi în afara intervalului de valori de la 0 la 255 de pixeli, deci valorile sunt ajustate pentru a se potrivi în zona respectivă. Din cauza formei filtrului, marginea exterioară a pixelilor nu este calculată, astfel că se aplică o valoare de umplere (de obicei 0). Matricea rezultată reprezintă o nouă imagine în care filtrul a transformat imaginea originală. În acest caz, filtrul a avut efect de evidențiere a marginilor ale formelor din imagine.
Pentru a vedea mai clar efectul filtrului, iată un exemplu de același filtru aplicat unei imagini reale:
| Imagine originală | Imagine filtrată |
|---|---|
|
|
Deoarece filtrul este convolved în imagine, acest tip de manipulare a imaginilor este adesea numit filtrare convoluțională. Filtrul utilizat în acest exemplu este un anumit tip de filtru (numit filtru Laplace ) care evidențiază marginile obiectelor dintr-o imagine. Există multe alte tipuri de filtru pe care le puteți utiliza pentru a crea estompări, claritate, inversarea culorilor și alte efecte.