Ajustarea valorilor intensității
Este posibil să setați valorile intensității în imagine utilizând funcția imadjust, unde este specificat intervalul de intensitate al imaginii rezultate.
Luați în considerare un exemplu de creștere a contrastului unei imagini cu un nivel scăzut de contrast prin redistribuirea valorilor datelor la întregul interval [0, 255].
Imaginea arată imaginea convertită și histograma sa. Rețineți că, datorită creșterii contrastului imaginii, histograma umple întregul interval.
Imaginea convertită și histograma sa
Descrierea ajustării lățimii de bandă
Este posibil să descriem gama de surse și valorile rezultate folosind funcția imadjust. Pentru a face acest lucru, funcția imadjust specifică intervalele sub forma a doi vectori ca argument. Primul vector conține cel mai mic, iar cea mai mare valoare de intensități ale imaginii originale, care va fi afișată în ordinea gama de luminozitate, care este specificată într-un al doilea vector.
Notă.
Rețineți că valorile intensității trebuie să fie între 0 și 1, indiferent de raportul de aspect. Dacă imaginea este reprezentată în format uint8, intervalul de valori conține 255 gradări, iar pentru imaginea în format - 65535 gradații.
De exemplu, reducerea contrastului imaginii este realizată prin reducerea intervalului de intensitate. În imaginea de mai jos, haina bărbatului este prea întunecată și nu există detalii despre ea. Dar acest lucru poate fi corectat folosind funcția imadjust, afișând intervalul [0,51] al imaginii sursă în format uint8 în intervalul [128,255] al imaginii convertite. Această conversie va extinde foarte mult intervalul dinamic și va îmbunătăți percepția vizuală a zonelor întunecate ale imaginii. Rețineți, de asemenea, că toate intensitățile de peste 51 vor fi afișate ca 255, adică culoarea albă.
Imagine după conversia domeniului dinamic
Stabilirea limitelor de corecție automată
De obicei, atunci când utilizați funcția imadjust, trebuie să efectuați două acțiuni de bază:
O modalitate mai ușoară de a descrie aceste limite este de a folosi funcția stretchlim.
Această funcție calculează histograma imaginii și determină automat intervalul de corecție a intervalului. Funcția stretchlim returnează aceste valori ca vector, care este folosit ca argument în funcția imadjust. De exemplu,
Implicit, funcția stretchlim folosește valori de intensitate ce reprezintă mai mică de 1% (0,01), iar segmentul de 1% (0,99) a intervalului de ajustare la frontiera.
Funcția imadjust afișează cele mai mici valori și mai mici, iar cele mai mari chiar și mai mari. În mod implicit, valorile intermediare sunt afișate liniar. De exemplu, valorile de intensitate care sunt în intervalul de mijloc al intensităților imaginii originale corespund valorilor de intensitate care sunt în intervalul de mijloc al imaginii transformate.
În funcția imadjust, puteți specifica un argument opțional care descrie gradul de corecție gamma. În funcție de valoarea gamma, relația dintre valorile imaginii originale și imaginii convertite poate fi neliniară. Prin urmare, valorile de intensitate care sunt în intervalul de mijloc a intensităților imaginii originale nu se potrivesc cu valorile intensităților, care sunt în intervalul de mijloc a imaginii transformat.
Parametrul gama poate lua valori de la 0 la infinit. Dacă gama este 1 (implicită), conversia este liniară. Dacă gama este mai mică de 1, atunci intervalul cu valori mici de intensitate este comprimat și intervalul cu valori mari de intensitate este întins. Dacă gama este mai mare decât 1, atunci dimpotrivă - intervalul cu valori de intensitate mică este întins și intervalul cu valori mari de intensitate este întins.
Cele de mai sus sunt prezentate în figură. Trei curbe de transformare arată afișarea valorilor intensității pentru diferite valori gamma - mai mică decât, egală și mai mare decât una. (În imagine, coordonatele x reprezintă intensitățile imaginii originale, iar coordonatele y reprezintă valorile intensității imaginii rezultate.)
Afișarea a trei setări diferite de corecție gamma
Să luăm în considerare un exemplu de corecție gamma a unei imagini. Rețineți că atunci când utilizați funcția imadjust, intervalele de date ale sursei și imaginile rezultate sunt descrise ca matrici goale. Dacă acestea sunt descrise în acest fel, adică sub formă de matrice goale, funcția imadjust utilizează întreaga gamă [0,1]. Rezultatul aplicării acestei abordări este prezentat în imagine.
Imagine înainte și după aplicarea corecției gamma
Contrast-limitate alinierea histogramei adaptive
Alternativ, puteți utiliza funcția histeq, care efectuează EQ de histogramă adaptivă limitată de contrast, utilizând funcția adaptthisteq. Funcția funcționează cu întreaga imagine și funcția adapthisteq poate funcționa cu zone mici ale imaginii. Contrastul fiecărei părți a imaginii crește, datorită modificării formei histogramei. După efectuarea alinierii, funcția adapthisteq combină marginile zonelor locale folosind interpolarea bilineară, excluzând marginile create artificial.
Pentru a evita amplificarea zgomotului pe imagini, puteți utiliza funcția adapthisteq cu parametri specifici pentru a limita contrastul, ceea ce este deosebit de important pentru zonele omogene (omogene).
Pentru a ilustra, luați în considerare utilizarea funcției adapthisteq atunci când reglați contrastul într-o imagine. Imaginea originală are un contrast scăzut, majoritatea valorilor intensității fiind concentrate în mijlocul intervalului. Funcția adapthisteq efectuează o distribuție uniformă a valorilor intensității de-a lungul întregului interval.
Imagine după prelucrare prin metoda alinierii histogramei adaptive limitate la contrast (și a histogramei sale)
Decuplarea decorativă îmbunătățește corelația culorilor din imagine ținând cont de dependențele de corelare. Când îmbunătățiți imaginile, este foarte important să găsiți marja de îmbunătățire, astfel încât îmbunătățirea excesivă să nu ducă la apariția unor părți inexistente. Prin urmare, se recomandă aplicarea metodei de întindere a decorului, care se realizează prin funcția decorrstretch.
În majoritatea cazurilor, numărul de culori dintr-un pachet de imagini pe imagine este de trei. Funcția de decorare poate fi utilizată indiferent de numărul de culori din pachet.
La conversia valorilor culorilor originale ale imaginii, intervalul de afișare crește, în majoritatea cazurilor. Intensitățile de culoare ale fiecărui pixel sunt transformate în spațiul de culoare propriu, cu o matrice de covarianță sau de corelare cu dimensiunea NBANDSxNBANDS, întinsă, aliniată și transformată înapoi.
Exemplu de prelungire decorativ
Aplicăm operațiile de decorare și întindere la unele imagini din bibliotecă, care se află în directorul imdemos al sistemului Matlab. Biblioteca include o imagine LANDSAT a unui mic râu din Colorado. Procesăm această imagine prin întindere decorrelațională:
- Imaginea este formată din șapte game, care trebuie reprezentate de trei culori vizibile:
- Realizam stretching decorativ:
- Vizualizarea rezultatelor:
Comparați cele două imagini. Imaginea originală domină puternic nuanța violet (roșu-albastru), iar imaginea rezultată are o gamă de culori mai extinsă.
Imaginea unui mic râu din Colorado înainte (stânga) și după extensia decorrelațională (pe dreapta)
Să arătăm împrăștierea culorilor diferitelor culori ale imaginii înainte și după decorarelare și aliniere:
Variația culorilor diferitelor intervale de imagini înainte și după decorarelare și aliniere
Contrast liniar suplimentar care se întinde
Acum ia în considerare aceeași transformare, dar vom vorbi despre întinderea liniară a contrastului, care este aplicabilă după întinderea decorativului:
Comparați imaginea sursă și imaginile convertite.
Imaginea unui mic râu din Colorado după întinderea decorrelațională și întinderea liniară a contrastelor
Extinderea liniară a contrastelor este un alt mijloc suplimentar de îmbunătățire după întinderea intervalului de culori al imaginii. În cazul nostru, întinderea gamei de culori afectează fiecare componentă de culoare.
Pentru mai multe informații, consultați descrierea funcției stretchlim.
Notă.
Contrastul liniar poate fi aplicat ca o operație separată după efectuarea stretching-ului decorativ, utilizând funcțiile stretchlim și imadjust. Aceasta este una dintre căile alternative, cu toate acestea, adesea nu duce la rezultate bune pentru imaginile prezentate în formatul uint8 și uint16. Acest rezultat este explicat prin distribuirea de pixeli în intervalul [0 255] (sau [0 65535]). Opțiunile funcției decorrstretch vă permit să ocoliți această restricție.
Imaginile digitale sunt expuse diferitelor tipuri de zgomot. Există mai multe motive principale pentru apariția zgomotului, care depinde și de metoda de formare a imaginii. De exemplu:
- Dacă imaginea este obținută prin scanarea unui film fotografic, granulele de film sunt o sursă de zgomot. Aspectul de zgomot poate fi cauzat de deteriorarea filmului sau a dispozitivului de scanare.
- Dacă imaginea este captată în format digital, mecanismul de generare a datelor (detectorul CCD, cuantificarea) este o sursă de zgomot.
- Transmisia electronică a imaginilor poate fi, de asemenea, o sursă de zgomot.
Aplicația oferă mai multe moduri de a elimina complet sau parțial zgomotul pe imagini. Au fost dezvoltate diferite metode pentru a elimina diferite tipuri de zgomot. Printre ei
- Folosind filtrare liniară;
- Utilizarea filtrării mediane;
- Folosind filtrarea adaptivă.
Pentru a demonstra efectul metodelor de mai sus, aplicația are o funcție de imnoise care adaugă la imagine diferite tipuri de zgomot. Să luăm în considerare câteva exemple de utilizare a acestei funcții.
Folosind filtrare liniară
Filtrarea liniară poate fi utilizată pentru a elimina zgomotul de un anumit tip. Pentru a face acest lucru, sunt potrivite filtre precum filtrul de mediere și filtrul gaussian. De exemplu, filtrul de mediere este utilizat pentru a elimina granulația din imagini. Deoarece valoarea intensității fiecărui pixel este egală cu intensitatea medie a pixelilor din vecinătate, aceasta conduce la suprimarea granularității.
Folosind filtrarea mediană
Filtrarea mediană este similară cu utilizarea unui filtru de mediere, unde valoarea intensității fiecărui pixel este valoarea medie a intensităților pixelilor din vecinătatea corespunzătoare. În multe cazuri, utilizarea unui filtru median în rezolvarea problemelor de eliminare a zgomotului este mai eficientă decât medierea convențională. Folosirea filtrării mediane conduce la o denaturare mai redusă a limitelor, comparativ cu operațiunea de mediere. Funcția medfilt2 efectuează filtrarea mediană.
Notă.
Filtrarea mediană este o filtrare statistică a ordinelor și este, de asemenea, cunoscută sub numele de filtrare pe rang. Pentru mai multe informații, consultați descrierea funcției ordfilt2.
Luați în considerare un exemplu în care se compară utilizarea unui filtru de mediere și a funcției medfilt2 pentru a elimina zgomotul, cum ar fi "sare și piper". Efectul acestui tip de zgomot este acela că pixelii selectați aleatoriu devin negri sau albi (adică li se dau valori extreme dintr-un interval existent). În ambele cazuri, dimensiunea cartierului utilizat este de 3x3.
- Citirea unei imagini dintr-un fișier și vizualizarea acestuia.
Folosind filtrarea adaptivă
Funcția wiener2 se bazează pe filtrul Wiener (unul dintre tipurile de filtre liniare) pentru procesarea imaginilor locale adaptive. Dacă valoarea deviației standard a intensităților pixelilor într-o anumită zonă locală este mare, atunci wiener2 efectuează o mică anti-aliasing. Dacă această deviere este mică, atunci zona anti-aliasing este mai mare.
Această abordare este adesea mai eficientă decât filtrarea liniară convențională. Avantajul filtrului adaptiv este acela că păstrează marginile și alte părți de înaltă frecvență ale obiectelor de imagine. Cu toate acestea, un filtru Wiener necesită mai mult timp pentru calcul decât un filtru liniar.
Funcția wiener2 funcționează mai bine cu zgomotul "alb", de exemplu, Gaussian. Luați în considerare un exemplu de aplicare a funcției wiener2 la procesarea imaginilor de la Saturn, care este zgomotos cu zgomotul Gaussian. Pentru o demonstrație interactivă de filtrare a zgomotului, puteți utiliza nrfiltdemo.
O imagine zgomotoasă (stânga) și o imagine după filtrare (dreapta)
Pentru a demonstra activitatea lucrărilor de eliminare a zgomotului, sunt utilizate imagini cu diferite tipuri de zgomote. Pentru a crea aceste imagini, utilizați funcția imnoise. Apropo, imaginile din această secțiune sunt generate utilizând această funcție.