Implementarea sistemului. Probleme moderne de știință și educație Algoritmi de preprocesare a imaginii

04.03.2021 Știri

Lucrare de laborator nr 1

Algoritmi de procesare a imaginilor

Operație de convoluție

Convoluția este un algoritm aplicabil pe scară largă, care poate fi utilizat atât pentru preprocesarea imaginii, cât și pentru recunoașterea și identificarea obiectelor. Lasă imaginea să fie specificată printr-o matrice de luminozitate bidimensională F" , și matricea răspunsului la impuls H. Conduce matematic o matrice F cu miez H poate fi determinată prin următoarea formulă:

Unde M2xN2 - dimensiunea matricei nucleului de convoluție. Dimensiunea matricei F este egal cu (M1+M2-1)x(N1+N2-1), unde M1xN1 - dimensiunea matricei originale F" . Matrice F se obtine din cel original prin adaugarea elementelor la marginile matricei dupa o anumita regula pentru a o aduce la dimensiunea ceruta. De obicei, matricea originală de la margini este căptușită cu zerouri pe jumătate din lățimea matricei H stânga și dreapta și, în consecință, jumătate din înălțime în sus și aceeași cantitate în jos. Apoi dimensiunea matricei rezultate R va fi aceeași cu matricea F" .

Convoluția poate fi calculată direct prin „rularea” unei matrice peste alta, așa cum se arată mai sus. În fig. Figura 1 prezintă o diagramă pentru calcularea convoluției (dimensiunea matricei măștii este considerată 3x3). Operatorul de convoluție poate fi considerat ca o matrice de coeficienți (măști), care sunt înmulțiți element cu element cu fragmentul de imagine selectat, urmat de însumare pentru a obține o nouă valoare a elementului imaginii filtrate. Această matrice poate fi de orice dimensiune, nu neapărat pătrată.

Orez. 1. Implementarea operației de convoluție.

Exercițiu

    Implementați un algoritm care realizează operația de convoluție a imaginii originale cu o matrice de mască.

    Mărimea și tipul matricei măști sunt specificate de utilizator.

    Utilizați următoarele matrice pentru a implementa diverși algoritmi de procesare a imaginii:

    • Pentru a netezi și a suprima zgomotul din imagine, utilizați o mască matrice 3x3 de următorul tip:

    Pentru a sublinia contururile, se folosesc măști matrice de următorul tip:

1/9*

    Pentru a selecta contururile, utilizați o mască de următorul tip:

4. Implementați un filtru median, care este utilizat pentru a suprima zgomotul punctual și de impuls. Un pixel de imagine și vecinii săi din zona luată în considerare sunt aranjați într-o serie de variații (în ordinea crescătoare sau descrescătoare a valorilor pixelilor) și valoarea centrală a acestei serii de variații este selectată ca o nouă valoare a pixelului. Rezultatul filtrării medii este că orice zgomot aleatoriu conținut în imagine va fi eliminat efectiv. Acest lucru se datorează faptului că orice schimbare bruscă aleatorie a intensității pixelilor în regiunea în cauză va fi sortată, de exemplu. va fi plasat fie în partea de sus, fie în partea de jos a valorilor sortate ale acelei regiuni și nu va fi numărat, deoarece valoarea centrală este întotdeauna selectată pentru noua valoare a elementului.

5. Implementați algoritmul de reliefare. Gofrarea se face similar cu algoritmii de mediere sau accentuare a contururilor. Fiecare pixel din imagine este procesat de un nucleu de relief 3x3 (matrix-mask). De exemplu, puteți lua următoarea matrice de mască ca miez de relief:

După ce valoarea pixelului este procesată de nucleul de gofrare, i se adaugă 128. Astfel, valoarea pixelilor de fundal devine o culoare gri mediu (roșu = 128, verde = 128, albastru = 128). Sumele mai mari de 255 pot fi rotunjite la 255.

În versiunea în relief a imaginii, contururile par a fi extrudate deasupra suprafeței. Direcția de iluminare a imaginii poate fi schimbată prin schimbarea pozițiilor 1 și -1 din nucleu. Dacă, de exemplu, schimbați valorile 1 și -1, direcția luminii de fundal este inversată.

6. Acuarezarea imaginii. Filtrul de acuarelă transformă imaginea, iar după procesare pare că a fost pictată în acuarelă:

    Primul pas în aplicarea unui filtru de acuarelă este netezirea culorilor din imagine. Una dintre metodele de netezire este de a folosi o medie a culorilor în fiecare punct. Valoarea culorii fiecărui pixel și a celor 24 de vecini ai săi (dimensiunea matricei măștii este 5x5) sunt aranjate într-o serie de variații în ordine descrescătoare sau crescătoare. Valoarea medie a culorii (a treisprezecea) din seria de variații este atribuită pixelului central.

    După netezirea culorilor, trebuie să aplicați un filtru de îmbunătățire a marginilor pentru a evidenția limitele tranzițiilor de culoare.

Esența procesării imaginii este reducerea imaginii originale a unei scene la o formă care să permită rezolvarea problemei recunoașterii obiectelor acesteia.

Scopul final al procesării imaginii în VS este pregătirea obiectelor scenei pentru recunoaștere, de exemplu. atribuirea imaginilor lor unor clase predefinite. În ciuda varietății de proceduri de transformare a informațiilor prezentate, trei etape principale de procesare sunt de obicei distinse în VS:

1) preprocesarea imaginii;

2) segmentare;

3) descriere.

Preprocesarea, la rândul ei, are două etape de bază: formarea imaginii și codificarea (comprimarea) a acesteia. Secvența etapelor nu este rigidă și depinde de sarcina specifică.

Preprocesarea imaginii

Toate metodele de preprocesare a imaginii în STS sunt împărțite în spațial și frecvență. Metodele spațiale sunt proceduri care operează direct pe pixelii imaginii. Luminozitatea este folosită ca caracteristică a imaginii Y(x, y). Metodele de frecvență sunt asociate cu conversia unei imagini în plan complex folosind transformata Fourier.

Când luăm în considerare procedurile de preprocesare, ne vom limita doar la metode spațiale, iar imaginea originală va fi considerată semiton.

În prima etapă a preprocesării, formarea imaginii. Formarea imaginii este procedura de obținere directă a unei imagini sub forma unui șir de elemente discrete - pixeli - situate în memoria procesorului video, formând o matrice sau un contur.

În VS, în stadiul formării imaginii, se selectează un prag de luminozitate prin ajustarea luminii și imaginea este filtrată.

Filtrare imaginea este etapa cea mai consumatoare de timp și cea mai complexă a preprocesării. În general, filtrarea rezolvă următoarele probleme principale:

· netezire (suprimarea interferențelor de înaltă frecvență, cum ar fi „zăpada”);

Contrast crescut

· selecția conturului.

Procedura de netezire este implementată imediat după selectarea pragului de luminozitate. Sensul său este de a media valorile funcției de luminozitate conform unei anumite reguli Y(X, y)în interiorul fragmentului de imagine analizat.

Un filtru este folosit pentru a elimina interferențele de înaltă frecvență, cum ar fi „zăpada”. frecvente joase. Dezavantaj filtrare trece-jos este o deteriorare a contrastului imaginii.

Segmentarea



Ca rezultat al preprocesării, imaginea conține una sau mai multe reprezentări de contur ale obiectelor. Procedura de separare a acestor contururi și de raportare la anumite obiecte numit segmentare.

Dacă se știe a priori că imaginea conține mai multe obiecte, procedura de segmentare se realizează după extragerea marginilor înainte de etapa de codificare a imaginii.

Algoritmii de segmentare se bazează de obicei pe căutarea discontinuităților în contur și pe asemănarea zonelor. În primul caz, circuitul este găsit și bypass-ul software-ului acestuia se efectuează conform regulii stabilite. Dacă conturul este închis, se consideră că aparține obiectului. În al doilea caz, sunt determinate zone ale imaginii care au proprietăți comune (de exemplu, aceeași luminozitate a pixelilor). Când sunt găsite astfel de zone, ele sunt atribuite fie fundalului, fie obiectului.

Codificarea imaginilor

Pentru sistemele care procesează imagini semitonuri folosind metode spațiale, există două metode principale de codare:

· codificarea imaginii propriu-zise folosind metoda run length code;

· codificarea conturului imaginii folosind codul de lanț Freeman.

În ambele cazuri, în timpul codificării există o reducere semnificativă a cantității de date care caracterizează imaginea. Eficiența codificării este determinată de gradul de compresie a imaginii.

Esența codificării folosind metoda codului lungimi de serie, implementat folosind algoritmul RLE, constă în reprezentarea imaginii cu segmente uniforme ale liniei de scanare, unde luminozitatea și culorile pixelilor sunt aceleași. Mai mult, fiecare serie este caracterizată de valoarea și lungimea seriei corespunzătoare (numărul de pixeli).

Pentru a codifica direct conturul imaginii, cel mai des este folosită codarea în lanț. Codul Freeman(Fig. 6.22, b).În acest caz, conturul obiectului, începând de la un anumit punct, este specificat printr-o succesiune de vectori care iau valori discrete, cu un unghi de înclinare a modulului care este multiplu de 45. Valoarea modulului este 2 dacă unghiul de înclinare a vectorului este 45 și 1 dacă poziția sa este verticală sau orizontală. Modificarea direcției vectorului atunci când se deplasează de la un punct al curbei la altul reflectă natura modificării curbei modelate.



Descrierea imaginii

Sub Descriere se referă la determinarea parametrilor caracteristici ai unui obiect - semne(discriminatori) necesare pentru a o deosebi dintre toate cele care formează scena.

În funcție de esența lor fizică, semnele sunt împărțite în globale și locale. Semn global imagini este o caracteristică care poate fi calculată pentru orice imagine a unui obiect.

Semne locale folosit mai rar; ele nu caracterizează întreaga imagine, ci doar o parte a acesteia. Acestea includ unghiul dintre două linii de contur, numărul și parametrii găurilor din imaginea obiectului etc.

Recunoașterea imaginii

Recunoaştere este un proces în care, pe baza unui set de trăsături ale unei anumite imagini a unui obiect, se determină apartenența acestuia la o anumită clasă.

Recunoașterea implementează funcția de analiză vizuală a imaginii.

În mod convențional, toate metodele de recunoaștere pot fi împărțite în două grupe: teoretice și structurale. Cele mai comune metode teoretice de recunoaștere folosesc principii din teoria deciziei.

Este imposibil să se determine valoarea reală a atributelor unui obiect, deoarece valorile diferă cu fiecare măsurătoare. Prin urmare, sarcina de recunoaștere este pusă după cum urmează: determinați probabilitatea ca un obiect să aparțină unei clase date.

Una dintre cele mai interesante domenii ale recunoașterii imaginilor în STZ este legată de dezvoltarea algoritmilor de recunoaștere a feței. Algoritmul de recunoaștere (verificare) este aproape de algoritmul de înregistrare. Caracteristicile extrase din imaginea curentă sunt combinate într-un vector de caracteristici, ale cărui componente sunt comparate cu componentele corespunzătoare ale tuturor vectorilor conținuti în baza de date.

Prezentarea imaginilor

Există două tipuri principale de reprezentări de imagini – vector și raster.

În reprezentarea vectorială, o imagine este descrisă printr-un set de linii (vectori), care conțin coordonatele punctelor de început și de sfârșit, curbura liniilor și alte caracteristici geometrice; sunt descrise și regulile pentru construirea diferitelor zone și caracteristici de culoare. . Cu alte cuvinte, pentru o reprezentare raster este necesar să se formeze un model matematic. Prin urmare, reprezentarea vectorială este utilizată în principal la rezolvarea problemelor de sinteză a imaginilor. Deși unii algoritmi de recunoaștere a imaginii necesită o reprezentare vectorială pentru munca lor, care trebuie obținută din imaginea sursă.

O imagine raster este una sau mai multe matrice care descriu distribuția spațială a caracteristicilor imaginii pe o grilă de coordonate carteziene. În acest caz, imaginea este construită din mai multe puncte și are o structură raster. Elementul principal al reprezentării raster a unei imagini este un pixel (prescurtarea expresiei „elementele de imagine” - elemente de imagine), care are coordonate în sistemul de coordonate raster și unele atribute (culoare, luminozitate, transparență etc.). Numărul de pixeli în coordonatele X și Y (orizontale și verticale) determină rezoluția (dimensiunea) prezentării imaginii. Culoarea unui pixel este specificată prin adâncime - numărul de biți necesari pentru a specifica orice culoare.

Imaginile raster, în funcție de metodele de setare a culorii pixelilor și de proprietățile imaginii sursă, sunt împărțite în:

Binar

Semitonuri

Paletă

Culoare plina

În reprezentarea binară, culoarea unui pixel poate fi fie albă, fie neagră și este codificată ca un singur bit. Imaginea este o matrice. Fiecare element I (i, j) al acestei matrice are o valoare fie 0, fie 1, unde i este numărul rândului și este numărul coloanei j al elementului corespunzător unui pixel dat (Fig. 1).

În imaginile în tonuri de gri, pixelii reprezintă valori de luminozitate corespunzătoare nuanțelor de gri. Indicii de matrice care descriu imaginea de semitonuri specifică poziția pixelului pe raster și valoarea elementului de matrice

– își setează luminozitatea I (i, j) (Fig. 2).

Imaginile din paletă sunt descrise de două matrice (Fig. 3). Se stochează valori de index care specifică accesul la un rând al matricei paletei. Matricea paletei este o hartă de culori. Conține 3 grupuri de coloane - corespunzătoare culorilor roșu „R”, verde „G” și albastru „B”. Ei stabilesc culoarea pixelului corespunzător.

Paleta este o matrice de dimensiunea Nc 3, unde Nc este numărul de culori.

Algoritmi de preprocesare a imaginii

Imaginile pline de culoare sunt construite în format RGB și reprezintă trei matrici R (i, j), G (i, j), B (i, j). Elementele corespunzătoare fiecărei matrice conțin intensitățile culorilor roșu, verde și albastru pentru pixelul specificat de indicii matricei. Astfel, o imagine full-color nu are o hartă de culori și culoarea fiecărui pixel este reprezentată de trei numere luate din matricele corespunzătoare (Fig. 4).

Formatul numerelor din matrice poate fi fie întreg, fie virgulă mobilă. Primul caz se referă la așa-numitele imagini digitizate obținute folosind diverse dispozitive– scanere, camere digitale, camere de televiziune etc. În acest format, informațiile despre imagini sunt stocate în fișiere grafice standard.

A doua opțiune este utilizată pentru reprezentarea internă a imaginilor în timpul procesării lor. În acest caz, este convenabil să normalizați datele de intensitate la un interval, de exemplu la intervalul , și să efectuați diferite calcule cu numere plutitoare, apoi convertiți rezultatul în forma întregă originală. Această metodă vă permite să reduceți erorile de calcul și să creșteți acuratețea rezultatului procesării.

Pentru imagini pline color, una dintre opțiuni este suma maxima culori care pot fi reprezentate în acest format. Cele mai frecvent utilizate imagini sunt cele cu 16, 256, 65536 (High Color) și 10,7 milioane (True Color) de culori.

Algoritmi de preprocesare a imaginii

0 0 0 0 1 1 1 0 0

120 122 125 128 115 117 118

1 0 0 0 1 1 1 1 0

119 121 124 125 128 130 133

1 1 0 0 1 1 0 0 1

122 122 124 123 127 126 128

120 121 123 125 127 125 126

1 1 1 0 1 1 0 0 0

118 110 109 108 108 109 110

0 0 1 0 0 1 0 0 1

Algoritmi de preprocesare a imaginii

Matricea indexului

31 15 03 09

Matricea paletei

Algoritmi de preprocesare a imaginii

O imagine colorată poate fi reprezentată nu numai în format RGB, ci și folosind alte sisteme de culoare.

În sistemul HSB, culoarea este reprezentată de următoarele caracteristici de culoare: Nuanță – ton de culoare;

Saturație – saturație; Luminozitate – luminozitate.

Se crede că acest sistem de culori corespunde particularităților percepției umane a culorilor.

În sistemul LAB, culoarea este considerată ca o combinație de luminozitate (luminozitate) și două valori independente de cromaticitate, care determină culoarea adevărată a unui pixel. Cromaticitatea A – componenta de culoare este selectată în intervalul de la violet la verde. Cromaticitatea B - a doua componentă de culoare este selectată din intervalul de la galben la albastru.

Există și alte sisteme de reprezentare a culorilor. Desigur, toate sunt conectate și o reprezentare poate fi folosită pentru a obține alta. Varietatea sistemelor de culoare este determinată de problemele rezolvate cu ajutorul lor. De exemplu, este mai convenabil să efectuați corecția culorii în sistemul LAB, este mai bine să reproduceți imaginea pe ecranul monitorului în sistemul RGB, este mai bine să imprimați,

Algoritmi de preprocesare a imaginii

folosind reprezentarea CMYK. Cu toate acestea, în orice caz, atunci când procesează imagini și le recunoaște, acestea funcționează cu o reprezentare raster a imaginilor care conțin una sau mai multe matrice.

Clasificarea algoritmilor de preprocesare

Algoritmii de preprocesare a imaginilor sunt împărțiți în diferite grupuri, în funcție de caracteristica de clasificare. Toți algoritmii de preprocesare trebuie fie să îmbunătățească calitatea imaginilor într-un anumit sens, fie să le convertească într-o formă care este cea mai convenabilă pentru procesarea ulterioară.

Algoritmii care vizează îmbunătățirea reproducerii culorii unei imagini se numesc algoritmi de corecție a culorii. Acest grup include, de asemenea, algoritmi care funcționează cu imagini în semiton care le modifică caracteristicile de luminozitate și contrast.

Algoritmii care vizează procesarea caracteristicilor spațiale ale imaginilor se numesc algoritmi filtrare spațială. Acest grup include algoritmi de suprimare a zgomotului, algoritmi de netezire spațială și algoritmi de amplificare spațială, algoritmi de suprimare și amplificare a frecvențelor spațiale.

Se numesc algoritmi care efectuează operații geometrice pe o imagine algoritmi de prelucrare geometrică. Acestea includ:

Algoritmi de preprocesare a imaginii

Decuparea unei imagini – selectarea unei anumite părți a unei forme dreptunghiulare din imaginea originală;

Redimensionați imaginea. Acești algoritmi folosesc diverse metode de interpolare fie pentru a completa corect pixelii lipsă într-o imagine mărită, fie pentru a recalcula valorile pixelilor atunci când reduc o imagine

Rotiți imaginea. Acești algoritmi rotesc imaginea originală cu un unghi dat, recalculând corect valorile pixelilor folosind diferite metode de interpolare.

Se numesc algoritmi care efectuează conversii de la un sistem de culori la altul algoritmi de conversie a culorilor. Acestea includ, de asemenea, algoritmi pentru conversia imaginilor color în tonuri de gri și algoritmi de binarizare care convertesc imaginea originală în binar.

Algoritmii care evidențiază anumite zone din imaginea originală în funcție de diverse condiții, adesea informale, sunt numiți algoritmi de segmentare. Un exemplu de astfel de algoritm este, de exemplu, un algoritm care ar trebui să evidențieze zone de text și informații grafice dintr-o imagine de document sau un algoritm care ar trebui să evidențieze zone dintr-o imagine text care se referă la cuvinte individuale.

Algoritmi de preprocesare a imaginii

Algoritmi de filtrare spațială

Filtrarea imaginii spațiale în formă matematică este o convoluție discretă a unei imagini discrete cu un anumit răspuns la impuls al filtrului spațial

Dacă (i, j)

Im(i m , j n )h (m , n ), unde:

m N11 n N21

Im, dacă matrice ale imaginilor originale și filtrate, h matrice a răspunsului la impuls al filtrului,

N 11, N 21 sunt limitele inferioare și superioare ale coloanelor de răspuns la impuls, N 12, N 22 sunt limitele din stânga și din dreapta ale rândurilor de răspuns la impuls.

Matricea răspunsului la impuls poate fi obținută prin calcularea filtrului spațial pe baza parametrilor specificați. O mare cantitate de literatură despre filtrarea digitală este dedicată metodelor de calcul a filtrelor spațiale, de exemplu. Pentru calcule practice, puteți utiliza pachete matematice standard, de exemplu, sistemul MATLAB include sistemul de calcul al filtrului Image Filter Design.

Rețineți că filtrarea poate fi efectuată și în domeniul frecvenței. In aceea

Algoritmi de preprocesare a imaginii

În acest caz, ordinea de filtrare este următoarea:

Convertiți o imagine din domeniul spațial în domeniul frecvenței utilizând o transformată Fourier discretă bidimensională

Efectuați înmulțirea element cu element a matricei de frecvență a imaginii cu matricea de frecvență a filtrului

Convertiți rezultatul obținut în domeniul spațial folosind transformarea Fourier discretă bidimensională inversă.

Im(x, y)

Im(f x , f y )

Dacă (f x , f y ) Im(f x , f y ) H (f x , f y )

Dacă(fx,fy)

Dacă (x, y).

Filtrarea imaginilor în domeniul frecvenței este folosită destul de rar din cauza numărului mare de calcule. Cu toate acestea, această metodă de filtrare este utilizată pe scară largă în calculele teoretice atunci când se analizează opțiunile de procesare a imaginii. Vă permite să vă imaginați destul de clar ce fel de filtrare este necesar. De exemplu, dacă trebuie să evidențiați schimbările bruște ale luminozității într-o imagine, atunci este evident că trebuie să utilizați filtre de trecere înaltă. Dimpotrivă, dacă trebuie să scăpați de interferența de joasă frecvență - circuite tremurătoare, emisii individuale etc., atunci trebuie să utilizați filtre low-pass. Parametrii specifici de filtru sunt selectați pe baza analizei de frecvență a zgomotului și a proprietăților imaginii originale.

1

Acest articol dezvoltă algoritmi pentru procesarea imaginilor cu inteligent roboți mobili bazat pe logica fuzzy și rețelele neuronale, care asigură evidențierea limitelor într-o imagine folosind operatorul Sobel. Esența procesării imaginii este reducerea imaginii originale a unei scene la o formă care să permită rezolvarea problemei recunoașterii obiectelor acesteia. Sunt luate în considerare principalele probleme, precum și modalitățile de rezolvare a acestora în timpul pregătirii inițiale a unei imagini pentru recunoaștere. Algoritmul de preprocesare folosind logica fuzzy și procesul de binarizare a imaginii sunt analizate în detaliu. Un algoritm de procesare neclar a fost construit pentru a identifica limitele unei imagini folosind operatorul Sobel.

procesarea imaginii

logica fuzzy

sistem inteligent

recunoașterea obiectelor

1. Vesnin E.N., Veto A.V., Tsarev V.A. Pe problema dezvoltării și aplicării sistemelor optoelectronice adaptive viziune tehnică// Automatizarea în industrie, 2009.- Nr. 11.- P. 48-52.

2. Grishin V.A. Sisteme tehnice de viziune în rezolvarea problemelor de control al vehiculelor aeriene fără pilot // Senzori și Sisteme, Nr. 2, 2009.- P. 46-52.

3. Klevalin V.A., Polivanov A.Yu. Metode de recunoaștere digitală în sistemele tehnice de viziune ale roboților industriali // Mecatronică, automatizare, control, 2008, Nr. 5.- P. 56-56.

4. Mihailov S.V., Romanov V.V., Zaikin D.A. Sistem tehnic de viziune pentru diagnosticarea procesului de tăiere a materialelor // Buletinul computerului și tehnologia Informatiei, 2007, Nr 3.- P. 12-19.

5. Semin M.S. Revizuirea rezolvării problemelor aplicate folosind sisteme tehnice de viziune // http://www.videoscan.ru/page/718#13.

În prezent, procesarea automată a imaginilor este unul dintre cele mai importante domenii din domeniul inteligenței artificiale și presupune dezvoltarea unor sisteme robotizate care realizează recunoașterea imaginilor. Unul dintre cele mai eficiente instrumente pentru recunoașterea modelelor sunt sistemele construite pe logică fuzzy și rețele neuronale artificiale. Un sistem tehnic de viziune (TVS) necesită mai multe metode și algoritmi care rezolvă aceeași problemă. căi diferite, oferind în același timp indicatorii necesari pentru viteza și fiabilitatea identificării.

Esența algoritmului hibrid de procesare a imaginii în SZ a sistemelor robotizate mobile (MRC) este reducerea imaginii originale a scenei la o formă care să permită rezolvarea problemei recunoașterii obiectelor acesteia.

Algoritm pentru preprocesarea imaginii folosind un sistem fuzzy în STS

În procesarea imaginilor, procesarea fuzzy reprezintă multe abordări fuzzy diferite, care sunt înțelegerea, reprezentarea, procesarea imaginii, segmentarea și seturile fuzzy. În procesul de recunoaștere a modelelor, procesul de procesare preliminară a imaginilor neclare este de mare importanță, deoarece calitatea datelor care intră apoi în intrările rețelei neuronale depinde de aceasta. În cadrul problemei care se rezolvă, algoritmul de procesare pre-fuzzy dezvoltat poate fi reprezentat ca următoarea secvență de pași (Fig. 1): captura de imagini cu ajutorul unei camere web; conversia imaginii color rezultate într-o imagine în tonuri de gri; procesarea imaginilor neclare.

Orez. 1. Algoritm pentru procesarea preliminară a imaginilor neclare

Astfel, primul pas al procesării pre-fuzzy este convertirea imaginii din culoare în tonuri de gri. Convertirea culorilor imaginii în tonuri de gri se face după cum urmează. Întreaga paletă de culori este reprezentată sub formă de cub, ale cărui vârfuri corespund diferitelor culori. Scara de gri este situată pe diagonala cubului care leagă vârfurile alb-negru.

Pentru a converti o imagine în nuanțe de gri, intensitățile componentelor roșii, verzi și albastre ale culorii sunt izolate pentru fiecare punct din imagine, iar apoi culoarea este convertită folosind următoarea formulă:

unde este valoarea noii culori, este intensitatea componentei roșii a culorii, este intensitatea componentei verzi a culorii și este intensitatea componentei albastre a culorii. Ieșirea fiecărui algoritm este în tonuri de gri între 0 și 1. Există unele tehnici pentru conversia imaginilor în imagini doar în tonuri de gri. Metoda luminozității folosește valoarea medie dintre cele două culori cele mai semnificative și cele mai puțin semnificative: . Metoda medie folosește media tuturor celor trei culori: . Metoda luminozității folosește o medie ponderată a tuturor celor trei culori pentru a ține cont de percepția umană. Astfel, întrucât ochiul uman este cel mai sensibil la culoarea verde, greutatea acestuia este considerată cea mai importantă: . Metoda de detectare a luminozității utilizată software pentru prelucrarea imaginilor. A implementat funcția " rgb2gray" în MATLAB și este adesea folosit pentru viziunea computerizată. Preprocesarea neclară are procesul de conversie a imaginilor din culoare (RGB) în tonuri de gri folosind o metodă de detectare a luminozității. Apoi, imaginea este convertită din tonuri de gri în alb-negru (Fig. 2).

Orez. 2. procesul de conversie a imaginilor din culoare în tonuri de gri

Binarizarea imaginii în timpul preprocesării

Scopul prelucrării preliminare a imaginii fuzzy este formarea și îmbunătățirea ulterioară a imaginii, binarizarea și codificarea acesteia (în special, obținerea unei reprezentări de contur). Binarizarea imaginii este procesul de conversie a unei imagini constând dintr-o gradație de o culoare (în cazul nostru, gri) într-o imagine binară, de exemplu. o imagine în care fiecare pixel poate avea doar două culori (în cazul nostru, alb și negru). Ca urmare a acestei transformări, culoarea pixelului este în mod convențional considerată egală cu zero sau unu, în timp ce pixelii cu o valoare zero (în acest caz, aceștia sunt pixeli albi) se numesc fundal, iar pixelii cu o valoare egală cu unu (negru) sunt numite prim-plan. Dar imaginea binară obținută ca urmare a unei astfel de transformări este distorsionată în comparație cu originalul, care se caracterizează prin apariția de rupturi și neclarități pe obiecte, apariția zgomotului imaginii în zone omogene, precum și pierderea integrității. a structurii obiectelor.

Pierderea integrității obiectului, precum și ruperea obiectului, apar din mai multe motive, cum ar fi iluminarea mare neuniformă a obiectului sau atingerea (sau suprapunerea obiectelor unul peste altul). Suprapunerea (sau atingerea - ca un caz special de suprapunere) este cea care provoacă o dificultate deosebită în procesare, deoarece pe de o parte, imaginea mai multor obiecte poate fi interpretată ca un singur obiect, iar pe de altă parte, algoritmii care verifică integritatea geometrică a obiectului vor forma discontinuități în locurile de suprapunere, prezentând aceste zone ca fundal. Dificultatea procesării constă în lipsa unei soluții teoretice la problema interpretării suprapunerii obiectelor, deoarece o parte din informații se pierde. La implementarea algoritmilor în practică, una dintre opțiunile indicate este luată ca decizie corectă - fie intersecția este considerată o continuare a obiectului curent, fie zona de suprapunere va fi considerată fundal.

Thresholding convertește o imagine color sau gri într-o imagine alb-negru. Transformările pragului ocupă un loc central în problemele aplicate de segmentare a imaginii datorită proprietăților lor intuitive și ușurinței de implementare. Pentru fiecare pixel din imagine este examinat nivelul de intensitate al acestuia; dacă valoarea lui este peste un anumit nivel de prag, acesta corespunde culorii alb. Dacă este sub pragul setat, este setat la negru. Nivelul pragului va fi între 0 și 255.

În prezent, există un număr mare de metode de binarizare. Esența acestei conversii a imaginii raster este o analiză comparativă a luminozității pixelului curent cu o anumită valoare de prag: dacă luminozitatea pixelului curent depășește valoarea de prag, i.e. , atunci culoarea pixelului din imaginea binară va fi albă, altfel culoarea va fi neagră. Suprafața pragului este o matrice a cărei dimensiune corespunde cu dimensiunea imaginii originale.

În procesul de binarizare, toate metodele sunt împărțite în două grupuri în conformitate cu principiul construirii unei suprafețe de prag - acestea sunt metode de procesare globală și locală a binarizării. În metodele de procesare a binarizării globale, suprafața pragului este un plan cu o valoare constantă a luminozității pragului, de exemplu. valoarea prag este calculată pe baza analizei histogramei întregii imagini și este aceeași pentru toți pixelii imaginii originale. Limitarea globală are un dezavantaj semnificativ - dacă imaginea sursă are iluminare neuniformă, zonele care sunt mai puțin iluminate sunt în întregime clasificate ca prim-plan. În metodele de procesare a binarizării locale, valoarea pragului se modifică pentru fiecare punct pe baza unor caracteristici ale zonei aparținând unei anumite vecinătăți a acestui punct. Dezavantajul acestui tip de transformare este viteza mica munca algoritmilor asociați cu recalcularea valorilor de prag pentru fiecare punct de imagine.

Ca metodă de rezolvare a problemei, vom folosi metoda lui Bernsen. Metoda se bazează pe ideea de a compara nivelul de luminozitate al pixelului convertit cu valorile mediilor locale calculate în mediul său. Pixelii imaginii sunt procesați unul câte unul prin compararea intensității acestora cu valorile medii de luminozitate în ferestrele centrate pe puncte (Fig. 3).

Orez. 3. Conversie pixeli imagine

Algoritm de procesare fuzzy pentru detectarea marginilor și segmentarea imaginii

După conversia imaginii în alb-negru, se obține o imagine în gradient folosind operatorul Sobel și este transmisă intrărilor de procesare a imaginii fuzzy (FIP) (Fig. 4).

Procesarea imaginilor neclare constă din trei etape principale: fuzzificarea imaginii, sistemul de inferență fuzzy asupra valorilor de membru și defuzzificarea imaginii. Procesarea principală a imaginii neclare este în etapa de mijloc (sistem de inferență neclară). După trecerea datelor de imagine de la nivelul de gri la fuzzificare, sistemul de inferență fuzzy este determinat de valorile de membru. Fuzzificarea este codificarea datelor de imagine, iar defuzzificarea este decodificarea rezultatelor, ceea ce permite procesarea imaginilor cu tehnici fuzzy.

Imagine - dimensiune cu niveluri de gri și poate fi definită ca o matrice de seturi neclare de un punct (seturile neclare pot fi suportate doar cu un singur punct) indicând valoarea de membru a fiecărui pixel în raport cu pre-proprietățile imaginii (de exemplu, luminozitate, netezime etc.).

(1)

unde și sunt apartenența pixelilor în notația seturilor fuzzy. Determinarea valorilor de membru depinde de cerințele specifice ale aplicației specifice și de baza de cunoștințe relevante.

Ieșirea sistemului pentru sistemul de intrare este dată de următoarea formulă:

(2)

Orez. 4. Algoritm de procesare a imaginilor neclare pentru detectarea marginilor

Aplicarea rețelelor neuronale pentru recunoașterea modelelor

Un perceptron multistrat este o rețea neuronală artificială constând din mai multe noduri de intrare care formează un strat de intrare, unul sau mai multe straturi computaționale de neuroni și un strat de ieșire (Fig. 6). În astfel de rețele, semnalul aplicat stratului de intrare este transmis secvențial în direcția înainte de la strat la strat. Acest tip ANN a fost folosit cu succes pentru a rezolva o varietate de probleme, în special pentru problema recunoașterii modelelor.

O rețea neuronală de backpropagation constă din mai multe straturi de neuroni, fiecare neuron din stratul anterior conectat la fiecare neuron din stratul următor. În astfel de rețele, după determinarea numărului de straturi și a numărului de elemente ale fiecărui strat, este necesar să se calculeze valorile greutăților și pragurilor rețelei astfel încât să se minimizeze eroarea de predicție. Această problemă este rezolvată folosind o varietate de algoritmi de învățare. Esența acestor algoritmi este adaptarea rețelei la datele de antrenament. Eroarea rețelei implementate va fi determinată prin rularea tuturor datelor de intrare și compararea valorilor reale obținute la ieșirea rețelei cu valorile țintă. Apoi, diferențele rezultate sunt însumate într-o funcție comună, așa-numita de eroare, care caracterizează eroarea generală a rețelei. Dar, mai des, suma erorilor pătrate este luată în funcție de erori.

Unul dintre cei mai comuni algoritmi pentru antrenarea rețelelor neuronale multistrat este algoritmul de backpropagation. Acest algoritm calculează vectorul de gradient al suprafeței de eroare. Apoi ne deplasăm o anumită cantitate în direcția vectorului (ne va indica direcția de coborâre cea mai abruptă), unde valoarea erorii va fi mai mică. Un astfel de progres constant va duce treptat la minimizarea erorii. Aici apare dificultatea de a determina suma cu care să avansezi. Dacă dimensiunea pasului este relativ mare, aceasta va duce la cea mai rapidă coborâre, dar există posibilitatea de a „sări peste”

punctul dorit sau mergeți în direcția greșită dacă suprafața are o formă destul de complexă. De exemplu, dacă suprafața este o râpă îngustă cu pante abrupte, algoritmul se va mișca foarte lent, sărind de la o pantă la alta. Dacă dimensiunea pasului este mică, aceasta va duce la găsirea celei mai optime direcții, dar poate crește semnificativ numărul de iterații. Pentru a obține cel mai optim rezultat, dimensiunea pasului este luată proporțional cu abruptul pantei cu o anumită constantă - rata de învățare. Alegerea acestei constante se realizează experimental și depinde de condițiile unei probleme specifice.

Să introducem următoarea notație. Să notăm matricea coeficienților de ponderare de la intrările la stratul ascuns și matricea de ponderi care conectează straturile ascunse și de ieșire - . Pentru indici vom folosi următoarea notație: intrările vor fi numerotate numai după index, elementele stratului ascuns - după index, iar ieșirile - după index. Numărul de intrări în rețea este , numărul de neuroni din stratul ascuns este , numărul de neuroni din stratul de ieșire este . Lăsați rețeaua să fie instruită pe un eșantion, . Apoi algoritmul de antrenament al perceptronului multistrat va arăta astfel:

Pasul 1. Inițializarea rețelei. Coeficienților de ponderare li se atribuie valori aleatoare mici, de exemplu, din intervalul (-0,3, 0,3); sunt setate - parametrul de precizie a învățării, - parametrul de viteză de învățare (de regulă, și poate scădea în continuare în timpul procesului de învățare), - numărul maxim admis de iterații.

Pasul 2: Calculați semnalul de ieșire curent. Una dintre imaginile eșantionului de antrenament este furnizată la intrarea rețelei și se determină valorile de ieșire ale tuturor neuronilor rețelei neuronale.

Pasul 3. Configurarea greutăților sinoptice. Calculați modificarea greutăților pentru stratul de ieșire al rețelei neuronale folosind formulele:

Unde , . Calculați modificarea greutăților pentru stratul ascuns folosind formulele: , Unde

Pasul 4. Pașii 2-3 se repetă pentru toți vectorii de antrenament. Antrenamentul este finalizat atunci când fiecare dintre imaginile de antrenament atinge o valoare a funcției de eroare care nu depășește e sau după numărul maxim admis de iterații.

La pasul 2, este mai bine să prezentați vectorii din secvența de antrenament la intrare în ordine aleatorie.

Numărul de intrări și ieșiri ale rețelei, de regulă, este dictat de condițiile problemei, iar dimensiunea stratului ascuns este găsită experimental. De obicei, numărul de neuroni din acesta este de 30-50% din numărul de intrări. Prea mulți neuroni în stratul ascuns duce la pierderea capacității de generalizare a rețelei (pur și simplu memorează bine elementele eșantionului de antrenament și nu răspunde la mostre similare, ceea ce este inacceptabil pentru sarcinile de recunoaștere). Dacă numărul de neuroni din stratul ascuns este prea mic, rețeaua pur și simplu nu poate învăța.

Concluzie

Sunt luate în considerare principalele probleme, precum și modalitățile de rezolvare a acestora în timpul pregătirii inițiale a unei imagini pentru recunoaștere. Algoritmul de preprocesare folosind logica fuzzy și procesul de binarizare a imaginii sunt analizate în detaliu. Un algoritm de procesare neclar a fost construit pentru a identifica limitele unei imagini folosind operatorul Sobel.

Recenzători:

Gagarina L.G., doctor în științe tehnice, profesor, șef al Departamentului de informatică și software pentru sisteme informatice, Universitatea Națională de Cercetare MIET, Moscova.

Portnov E.M., Doctor în Științe Tehnice, Profesor al Departamentului de Informatică și Software pentru Sisteme Calculatoare, Șeful Laboratorului de Cercetare „Manageri” Sisteme de informare» Universitatea Națională de Cercetare „MIET”, Moscova.

Link bibliografic

Aung C.H., Tant Z.P., Fedorov A.R., Fedorov P.A. DEZVOLTAREA ALGORITMILOR DE PROCESARE A IMAGINILOR DE CĂTRE ROBOȚI MOBILI INTELIGENT BAZATE PE LOGICĂ FUZZY ȘI REȚELE NEURALE // Probleme moderne ale științei și educației. – 2014. – Nr 6.;
URL: http://science-education.ru/ru/article/view?id=15579 (data acces: 02/01/2020). Vă aducem în atenție reviste apărute la editura „Academia de Științe ale Naturii”

DIGITAL TRATAMENT SEMNALE

Subiectul 17. PROCESAREA IMAGINII

Nu există nimic pe care imaginația umană îndrăznește să facă.

Titus Lucretius. Filosof și poet roman. secolul I î.Hr e.

Imaginația este un lucru bun. Dar pentru a scoate o persoană fără adăpost din subsol, spălați-l, transformați-l în Apollo, împachetați-l într-o cutie de chibrituri și trimiteți-l unui prieten e-mail un program grafic bun se va descurca mai bine.

Anatoly Pyshmintsev, geofizician din Novosibirsk al școlii din Ural. secolul XX

Introducere.

1. Concepte de bază. Reprezentare grafică imagini. Reprezentarea culorii în grafica computerizată. Culoare Model RGB. Sistem de culoare CIE XYZ.

2. Transformări geometrice ale imaginilor raster. Domenii și etape de transformare. Prelevarea de probe. Serii de interpolare pentru reconstrucția unui semnal bidimensional. Distorsiuni de frecvență ale imaginilor și eliminarea acestora. Reeșantionarea imaginilor.

3. Filtrarea imaginilor. Filtre liniare. Filtre anti-aliasing. Filtre de îmbunătățire a contrastului. Filtre de diferență. Convoluție ciclică bidimensională. Filtre neliniare. Filtrarea pragului. Filtrarea mediană. Filtre extreme.

4. Compresia imaginii. Algoritmi de codare a lungimii repetate (RLE). Dicţionar algorithms. Algoritmi de codare statistică. Compresie cu pierderi de imagine. Estimarea pierderii în imagini. transformata Fourier. Transformarea wavelet.

INTRODUCERE

Domeniul cercetării în domeniul imaginii digitale crește rapid. Acest lucru este determinat de faptul că procesarea imaginii este procesarea semnalelor multidimensionale, iar majoritatea semnalelor din lumea reală sunt multidimensionale.


O imagine în reprezentare matematică este un semnal bidimensional care transportă o cantitate imensă de informații. O imagine color de 500 × 500 de elemente este o matrice de câteva sute de mii de octeți. Astfel de informații pot fi prelucrate numai prin organizarea rațională a calculelor. Pentru sarcini specifice de procesare a imaginii, puteți utiliza moduri eficiente prelucrare ținând cont de caracteristicile și limitările acestei sarcini specifice. Dar dacă vorbim despre procesarea imaginilor pentru a rezolva o clasă largă de probleme, atunci este necesar să evidențiem un set operațiuni standard, din care puteți construi algoritmi pentru rezolvarea problemelor arbitrare. Acestea includ transformări liniare, convoluție 2D și transformată Fourier discretă 2D.

Dar transformările neliniare sunt, de asemenea, utilizate pe scară largă în procesarea imaginilor. Particularitatea imaginilor este că elemente individuale imaginile sunt într-o anumită legătură cu elementele învecinate. Prin urmare, majoritatea algoritmilor de transformare a imaginii sunt de natură locală, adică procesează imaginile pe grupuri de elemente situate în vecinătatea celui dat. Transformările liniare satisfac proprietatea localității și permit construirea de algoritmi a căror complexitate de calcul depinde puțin de dimensiunea vecinătății înconjurătoare. Aceleași proprietăți sunt necesare pentru transformările de imagini neliniare. Clasa unor astfel de transformări include algoritmi numiți algoritmi de filtrare a rangului, bazați pe calculul statisticilor de rang local ale imaginilor. La calcularea statisticilor de rang și a derivatelor acestora, simplificări sunt posibile datorită redundanței informaționale a imaginilor. Cel mai faimos algoritm al acestei clase este algoritmul de filtrare mediană. Alte exemple de algoritmi de rang includ algoritmi de filtrare extremă, care înlocuiesc elementul de imagine analizat cu un maxim sau un minim în vecinătate. O altă proprietate a algoritmilor de rang este adaptarea locală la caracteristicile imaginii procesate și potențialul de utilizare a acestora nu numai pentru netezire și eliminarea zgomotului, ci și pentru evidențierea caracteristicilor în recunoașterea automată a imaginii.

În procesarea imaginilor, metodele de procesare a semnalelor unidimensionale sunt utilizate pe scară largă dacă pot fi generalizate la semnale multidimensionale. În același timp, este necesar să se țină seama de faptul că metodele matematice de descriere a sistemelor multidimensionale nu sunt complete. Sistemele multidimensionale au un număr mare de grade de libertate, iar proiectarea lor capătă o flexibilitate care nu este caracteristică sistemelor unidimensionale. În același timp, polinoamele multidimensionale nu pot fi descompuse în factori primi, ceea ce complică analiza și sinteza sistemelor multidimensionale.

17.1. Noțiuni de bază

Reprezentarea grafică a imaginilor. Pentru prezentarea informațiilor grafice pe un plan bidimensional (ecranul de monitor), se folosesc două abordări: raster și vector.

Cu o abordare vectorială informatii grafice descrisă ca o colecție de abstracte obiecte geometrice- linii drepte, segmente, curbe, dreptunghiuri etc. Descrierea vectorială presupune cunoștințe a priori despre structura imaginii.

Grafica raster funcționează cu imagini arbitrare sub formă de raster. Un raster este o descriere a unei imagini pe un plan prin împărțirea (eșantionarea) acesteia în elemente identice pe o grilă obișnuită și atribuirea fiecărui element propria culoare și orice alte atribute. Cel mai simplu raster este dreptunghiular, cel mai economic din punct de vedere al numărului de mostre pentru transmiterea imaginilor este hexagonal. Din punct de vedere matematic, un raster este o aproximare constantă pe bucăți pe planul unei funcții de imagine continuă.

Un element raster se numește pixel. Identificare standard a pixelilor:


f(i, j) = (A(i, j),C(i, j)), (17.1.1)

unde A(i, j) Ì R2 este aria pixelului, C(i, j) Î C este atributul pixelului (de obicei culoarea). Există două tipuri de atribute cel mai frecvent utilizate:

C(i, j) = I(i, j) - intensitatea pixelilor (luminozitatea);

C(i, j) = (R(i, j), G(i, j), B(i, j)) - atribute de culoare în modelul de culoare RGB.

Sub formă de matrice:

Mij ​​= (Aij, Cij).

La discretizarea imaginilor continue, valorile lui Aij pot fi definite în două moduri, fie ca valori ale punctelor Aij = (i, j), pentru care sunt definite atributele Cij, fie ca valori ale pătratele Aij = (i, i+1) × (j, j+1) sau orice altă formă, cu Cij determinată de valorile medii din cadrul acestei forme (Fig. 17.1.1).

În practică, de regulă, X și Y sunt seturi limitate de numere întregi nenegative ale unui raster pătrat sau dreptunghiular cu un raport de aspect (raport de aspect) dintre lățimea rasterului și înălțimea, care este scris sub forma, de exemplu, " 4:3".

Reprezentarea culorii în grafica computerizată. Conceptul de culoare se bazează pe percepția de către ochiul uman a undelor electromagnetice într-un anumit interval de frecvență. Lumina zilei pe care o percepem are lungimi de undă λ de la 400 nm (violet) la 700 nm (roșu). Descriere flux luminos poate servi drept funcție spectrală I(λ). Lumina se numește monocromatică dacă spectrul său are o singură lungime de undă specifică.

Există două tipuri de receptori pe retina ochiului: bastonașe și conuri. Sensibilitatea spectrală a tijelor (Fig. 17.1.2) este direct proporţională cu luminozitatea luminii incidente. Conurile sunt împărțite în trei tipuri, fiecare dintre ele având o anumită sensibilitate în intervale limitate, cu maxime în roșu, verde și albastru și își pierd brusc sensibilitatea în întuneric. Sensibilitatea ochiului la albastru este mult mai mică decât la celelalte două. O proprietate importantă a percepției umane a luminii este liniaritatea atunci când se adaugă culori cu lungimi de undă diferite.

Model de culoare RGB (Roșu, Verde, Albastru - roșu, verde, albastru) în grafica computerizată este în prezent cea mai comună. În acest model, funcția spectrală este reprezentată ca suma curbelor de sensibilitate pentru fiecare tip de conuri cu coeficienți de ponderare nenegativi (normalizați de la 0 la 1), care sunt desemnați R, G și B. Modelul este caracterizat de proprietatea de aditivitate pentru obţinerea de noi culori. De exemplu, codificarea funcțiilor spectrale:

Negru: fnegru = 0, (R, G, B) = (0,0,0);

Culoarea violet fviolet = fred + falbastru, (R, G, B) = (1,0,1);

Alb falb = fred + fverde + falbastru, (R, G, B) = (1,1,1).

Spațiul de culoare tridimensional al modelului RGB este prezentat în Fig. 17.1.3. Datorită particularităților percepției luminii de către receptori, nu toate culorile vizibile pentru oameni sunt reprezentabile în acest model. Cu toate acestea, proporția de culori care sunt reproduse este semnificativ mai mare decât proporția care nu sunt reprezentate în acest model.

Sistem de culoare CIE XYZ. Standardul internațional de reprezentare a culorilor CIE (CIE - Commission Internationale de l'Eclairage) a fost adoptat de către Comisia Internațională pentru Iluminare în 1931. Acesta definește trei funcții de bază ρX(λ), ρY(λ), ρZ(λ), în funcție de lungime de undă , combinații liniare ale căror coeficienți nenegativi (X, Y și Z) ne permit să obținem toate culorile vizibile pentru om.Aceste funcții țin cont de percepția relativă a intensității luminii de către receptorii oculari.În spațiul tridimensional, sistemul de culoare CIE formează un con în primul cadran și este utilizat pentru afișarea de înaltă calitate a imaginilor color.

17.2. Transformări geometrice ale imaginilor raster

Domenii și etape de transformare. Imaginile pot fi împărțite în textură și detalii. În imaginile cu textură, toate mostrele (elementele) poartă informații (imaginea de pe ecranul televizorului). O imagine detaliată este una în care puteți identifica obiectele care interferează, fundalul și obiectele utile.

Există trei grupuri principale de algoritmi de procesare a imaginilor pe computere:

1. Procesarea primară (preliminară) a imaginii în scopul restaurării, curățarea de zgomot aleatoriu, îmbunătățirea calității, corectarea distorsiunilor geometrice sisteme optice(defocalizare, aberații etc.).

2. Descrierea imaginilor, recunoașterea modelelor. Se efectuează pentru a determina parametrii detaliilor imaginii și include: găsirea de zone ale imaginii care sunt uniforme în nivelul de iluminare și culoare, identificarea caracteristicilor formei imaginilor, determinarea coordonatelor punctelor speciale ale obiectelor etc.

3. Codare eficientă pentru a reduce volumul de transmisie și stocare.

Majoritatea metodelor prelucrare primară se bazează pe utilizarea filtrelor lineare spațial invariante (SPI). Algoritmi liniari sunt realizate folosind analogi bidimensionali ai filtrelor unidimensionale FIR și IIR. Ele pot fi folosite, de exemplu, la implementarea filtrelor pentru a reduce zgomotul din imagini.

Filtrele FIR sunt implementate folosind metoda convoluției. Avantajele filtrelor 2D FIR sunt claritatea, simplitatea și robustețea absolută. Filtrele IIR sunt implementate folosind ecuații de diferență și transformări z. Sunt mai rapide decât filtrele FIR, dar pot fi instabile. Sinteza filtrelor IIR bidimensionale diferă de sinteza celor unidimensionale, deoarece pentru o funcție bidimensională nu este posibilă identificarea explicită a polilor.

Metode neliniare pot fi, de asemenea, necesare pentru a restaura imaginile și pentru a le îmbunătăți calitatea. De exemplu, pentru a suprima zgomotul și, în același timp, a păstra partea de contur a imaginilor, este necesar să se utilizeze filtre neliniare sau liniare spațial non-invariante (SPNI), care sunt implementate de algoritmi de rang. Toate filtrele neliniare de rang se bazează pe algoritmi rapizi pentru calcularea histogramelor locale.

O astfel de metodă este filtrarea mediană. Utilizarea filtrelor mediane este eficientă pentru suprimarea anumitor tipuri de zgomot și interferențe periodice, fără a distorsiona simultan semnalul, de exemplu, pentru suprimarea rafale de rafale de zgomot, inclusiv liniile căzute. Metoda poate fi folosită și pentru a rezolva probleme legate de recunoaștere, de exemplu, pentru a identifica linii subțiri și obiecte mici izolate.

Algoritmii pentru descrierea imaginii și recunoașterea modelelor sunt de obicei neliniari și euristici. Caracteristicile obiectelor sunt de obicei aria imaginii obiectului, perimetrul conturului imaginii și raportul dintre zonă și pătratul perimetrului imaginii. Forma unui obiect poate fi caracterizată prin raza unui cerc înscris în imagine sau descris în jurul imaginii obiectului, lungimea vectorului de rază minimă și maximă de la „centrul de masă” al imaginii.

Prelevarea de probe. Conversiile imaginilor într-un computer și stocarea datelor procesate sunt efectuate în formă discretă. Eșantionarea este utilizată pentru a obține o reprezentare discretă din imagini analogice continue ale lumii reale. În practică, se realizează prin dispozitive de intrare (camera digitală, scanner sau altele). Pentru percepția vizuală a imaginilor procesate pe dispozitivele de ieșire (afișaj, plotter etc.), imaginea analogică este reconstruită din reprezentarea eșantionată.

În cel mai simplu caz de imagini alb-negru avem matrice bidimensională sa(x, y). Pentru imaginile color din modelul RGB, ținând cont de proprietatea aditivității la adăugarea culorilor, fiecare strat R, G și B poate fi considerat și procesat ca o matrice bidimensională, cu sumarea ulterioară a rezultatelor.

Dintre modalitățile de generalizare a discretizării periodice unidimensionale în cazul bidimensional, cea mai simplă este discretizarea periodică în coordonate dreptunghiulare:

s(n, m) = sa(nDx, mDy),

unde Dx și Dy sunt intervalele de eșantionare orizontale și verticale ale unui semnal continuu bidimensional sa(x, y) cu coordonate continue x și y. Mai jos, valorile lui Dx și Dy, ca și în cazul unidimensional, sunt luate egale cu 1.

Eșantionarea unui semnal bidimensional duce, de asemenea, la periodizarea spectrului său și invers. Condiția de echivalență informațională a reprezentărilor de coordonate și frecvență ale unui semnal discret este de asemenea păstrată cu un număr egal de puncte de eșantionare în domeniile principale ale semnalului. Pentru eșantionarea dreptunghiulară, transformările Fourier directe și inverse sunt date de:

S(k, l) =s(n, m) exp(-jn2pk/N-jm2pl/M), (17.2.1)

S(k, l) =exp(-jn2pk/N) s(n, m) exp(-jm2pl/M), (17.2.1")

s(n, m) =S(k, l) exp(-jn2pk/N-jm2pl/M). (17.2.2)

s(n, m) =exp(-jn2pk/N) S(k, l) exp(-jm2pl/M). (17.2.2")

Orez. 17.2.1. Periodizarea spectrului.

Aceste expresii arată că un DFT bidimensional dintr-un raster de eșantionare a datelor dreptunghiulare poate fi calculat folosind DFT-uri secvențiale unidimensionale. A doua sumă de expresii (17.2.1") și (17.2.2") sunt DFT unidimensionale ale secțiunilor funcțiilor s(n, m) și S(k, l) de-a lungul liniilor n și, respectiv, și primele sunt DFT-uri unidimensionale ale funcțiilor calculate în secțiuni de m și l. Cu alte cuvinte, matricele inițiale ale valorilor s(n, m) și S(k, l) sunt mai întâi recalculate în matrici intermediare cu DFT în rânduri (sau în coloane), iar matricele intermediare în matrici finale cu DFT în coloane (sau, respectiv, în rânduri).

Pentru ca repetarea periodică a spectrului (Fig. 17.2.1), cauzată de eșantionarea unui semnal analogic cu o frecvență Fx=1/Dx și Fy=1/Dy, să nu modifice spectrul în gama de frecvență principală ( raportat la spectrul semnalului analog original), este necesar și este suficient ca componentele de frecvență maximă fmax din spectrul semnalului analogic, atât în ​​rânduri, cât și în coloane, să nu depășească frecvența Nyquist (fmax. x £ fN = Fx/2, fmax y £ fM = Fy/2). Aceasta înseamnă că rata de eșantionare a semnalului trebuie să fie de cel puțin două ori mai mare decât componenta de frecvență maximă din spectrul semnalului:

Fx ³ 2fmax. x, Fy ³ 2fmax. y, (17.2.3)

care asigură că funcțiile spectrale ating valori zero la sfârșitul intervalului principal de spectru.

Serii de interpolare pentru reconstrucția unui semnal bidimensional. Dacă semnalul continuu sa(x, y) este un semnal cu un spectru limitat, iar perioadele de eșantionare sunt alese suficient de mici încât spectrele perioadelor adiacente să nu se suprapună:

Sa(Wx, Wy) = 0 pentru |Wx|p/Dx, |Wy|p/Dx,

atunci, ca și în cazul unidimensional, semnalul sa(x, y) poate fi restabilit dintr-un semnal discret folosind un analog bidimensional al seriei Kotelnikov-Shannon:

sa(x, y) = Sn Sm s(n, m) . (17.2.4)

Distorsiuni de frecvență ale imaginilor și eliminarea acestora. Un semnal cu un spectru nelimitat poate fi, de asemenea, eșantionat, dar în acest caz există o aliasare a spectrelor în perioade adiacente și frecvente inalte, frecvențele Nyquist mai mari vor fi „mascate”, ca în cazul unidimensional, sub frecvente joase perioada principala. Efectul „reflecției” de la limitele perioadei oferă o imagine și mai complexă datorită interferenței frecvențelor reflectate de-a lungul diferitelor coordonate. Un efect similar, cunoscut sub numele de aliasing, va fi observat și atunci când rata de eșantionare a imaginii este insuficientă. Acest efect poate fi observat mai ales în mod clar în schimbările contrastante ascuțite ale luminozității.

Pentru a combate astfel de fenomene, se utilizează prefiltrarea (antialiasing) - convoluția preliminară a unei imagini analogice cu o funcție de filtru de ponderare care decupează componentele de înaltă frecvență care pot duce la aliasing. În cazul bidimensional, filtrarea este descrisă după cum urmează:

z(x, y) = h(x", y") ③③ s(x-x", y-y"). (17.2.5)

Trebuie remarcat faptul că imaginile analogice există doar în domeniul optic, de exemplu, sub forma unui afișaj luminos pe un ecran, hârtie fotografică sau film, dar nu pot exista în memoria computerului. Prin urmare, implementarea fizică a prefiltrării este posibilă numai la înregistrarea unei imagini prin defocalizarea acesteia, care, de regulă, nu este utilizată. Informațiile primare ar trebui să fie întotdeauna înregistrate cu maximă completitate și acuratețe, iar curățarea informațiilor primare de detalii inutile și redundanță este o chestiune de prelucrare ulterioară a datelor. Prin urmare, în raport cu ecuația 17.2.5, prefiltrarea bidimensională, în ea implementare practică, poate reprezenta doar filtrarea imaginilor eșantionate cu o marjă mare peste intervalul de frecvență principal (cu rezoluție excesivă) și este utilizat, de regulă, la reeșantionarea la un pas mai mare, de exemplu, la comprimarea imaginilor. Prefiltrarea poate fi integrată și în algoritmii de construcție a imaginii.

În fig. 17.2.3 și mai jos, Tabelul 17.2.1 prezintă exemple ale celor mai comune filtre unidimensionale pentru anti-aliasing. Ele pot fi implementate și sub formă de filtre analogice și utilizate, de exemplu, la transmiterea liniilor de imagini de televiziune în formă analogică prin canale radio (antialiasing orizontal). În principiu, o operație similară poate fi efectuată pe coloane (dublu - imagine), iar după însumarea imaginii, se va efectua o operație completă de anti-aliasing, dar această metodă aparține mai mult domeniului cercetării științifice speciale.

Tabelul 17.2.1.

Funcții de bază de greutate

Fereastra de timp

Funcția de greutate

Imagine Fourier

Natural (P)

P(t) = 1, |t|£t; П(t) = 0, |t|>t

П(w) = 2t sinc

Bartlett (D)

B(w) = t sinc2(wt/2).

Henninga, Ganna

p(t) = 0,5

0,5P(w)+0,25P(w+p/t)+0,25P(w-p/t)

Borduri

p(t) = 0,54+0,46 cos(pt/t)

0,54P(w)+0,23P(w+p/t)+0,23P(w-p/t)

Carre (a doua fereastră)

p(t) = b(t) sinc(pt/t)

t·B(w)*П(w), П(w) = 1 pentru |w|

Laplace-Gaussian

p(t) = exp[-b2(t/t)2/2]

[(t/b) exp(-t2w2/(2b2))] ③ П(w)

Analogii bidimensionali ai filtrelor unidimensionale f1(x) sunt construiți în două opțiuni de simetrie: sau în funcție de rază:

f2(x, y) = f1(),

sau ca lucrare:

f2(x, y) = f1(x) × f1(y).

Prima opțiune este mai corectă, dar a doua are proprietatea de separabilitate, adică convoluția bidimensională poate fi efectuată prin două convoluții unidimensionale succesiv de-a lungul rândurilor cu f1(x) și de-a lungul coloanelor cu f1(y).

Reeșantionarea imaginii sau reeșantionarea este o modificare a frecvenței de eșantionare a unui semnal digital. Când se aplică imaginilor digitale, aceasta înseamnă redimensionarea imaginii.

Există diferiți algoritmi de reeșantionare a imaginilor. De exemplu, pentru a mări o imagine de 2 ori folosind metoda de interpolare biliniară, coloanele și rândurile intermediare sunt obținute prin interpolarea liniară a valorilor coloanelor și rândurilor adiacente. Fiecare punct al noii imagini poate fi obținut ca sumă ponderată a unui număr mai mare de puncte din imaginea originală (bicubic și alte tipuri de interpolare). Reeșantionarea de cea mai înaltă calitate se obține atunci când se utilizează algoritmi care iau în considerare nu numai domeniul timpului, ci și domeniul frecvenței semnalului.

Să luăm în considerare un algoritm de reeșantionare cu păstrarea maximă a informațiilor despre frecvența imaginii. Vom lua în considerare funcționarea algoritmului pe semnale unidimensionale, deoarece o imagine bidimensională poate fi mai întâi întinsă sau comprimată orizontal (de-a lungul rândurilor) și apoi vertical (de-a lungul coloanelor), și reduce reeșantionarea unei imagini bidimensionale la reeșantionare. a semnalelor unidimensionale.

Să presupunem că avem un semnal unidimensional (Fig. 17.2.4), specificat pe intervalul 0-T și eșantionat cu un pas Dt=1 (N intervale). Este necesar să „întindeți” semnalul de m ori. Spectrul de semnal prezentat în figură este calculat prin transformată Fourier rapidă (FFT, numărul de probe de spectru este egal cu numărul de eșantioane de semnal) și este dat în intervalul FFT principal (0-2p, frecvența Nyquist wN = p/Dt = p, sau 0,5N în funcție de numerotarea probelor de spectru cu un pas de-a lungul spectrului Df = 1/T sau Dw = 2p/T). Există 2 pași pentru a efectua o întindere.

Primul pas este interpolarea zero, care mărește lungimea semnalului de m ori. (Fig. 17.2.5). Trebuie să înmulțiți toate mostrele semnalului original cu m și apoi să introduceți o valoare zero m-1 după fiecare eșantion de semnal. Intervalul 0-T, a cărui valoare rămâne neschimbată, conține acum de m-ori mai multe intervale de eșantionare (mN), iar noua etapă de eșantionare va fi egală cu Dx=Dt/m. În consecință, noua frecvență Nyquist pentru acest semnal este mp/Dt = mp. Dar valoarea fizică a pasului de spectru în unități de frecvență este inversa valorii fizice a intervalului de setare a semnalului (Df = 1/T) și, prin urmare, FFT din mN puncte ale semnalului va calcula mN puncte de spectru în intervalul FFT principal de 0-2pm cu pasul de spectru al semnalului original, în care va conține m-perioade ale spectrului semnalului original (o parte principală și m-1).

Al doilea pas este filtrarea benzilor laterale ale spectrului folosind un filtru trece-jos fie în domeniul timpului, fie în domeniul spectral. În fig. 17.2.6 spectrul a fost curățat și a fost efectuată transformarea Fourier inversă, rezultând un semnal de m ori mai lung decât cel inițial cu păstrarea completă a tuturor informațiilor de frecvență.

Folosind un principiu similar, se poate construi un algoritm pentru comprimarea (decimarea) semnalului de n ori, cu ordinea pașilor inversată. La comprimarea unui semnal, etapa de eșantionare a semnalului este crescută și, în consecință, frecvența Nyquist este redusă, în timp ce frecvențele înalte tăiate (zgomot și părți nesemnificative de înaltă frecvență ale spectrului de semnal) vor fi reflectate de la limita intervalului principal. și însumat cu informațiile principale, creând distorsiuni. Pentru a elimina acest fenomen, semnalul este mai întâi filtrat trece-jos cu o frecvență de tăiere egală cu noua frecvență Nyquist (antialiasing) și abia apoi semnalul este decimat prin decimare.

Când reeșantionarea este efectuată numai în domeniul timpului, algoritmii de întindere și compresie sunt combinați, de regulă, într-un singur proces secvenţial prin specificarea unei modificări a etapei de eșantionare sub forma unui raport m/n, care vă permite să specificați valori întregi ale lui m și n pentru valorile fracționale ale modificării etapei de eșantionare. Acest lucru simplifică semnificativ algoritmii și crește eficiența și calitatea muncii lor. De exemplu, la întinderea unui semnal de 1,5 ori la m/n = 3/2, semnalul este mai întâi întins de 3 ori (o adăugare simplă și uniformă de zerouri la toate probele, apoi se efectuează filtrarea trece-jos, după care semnalul este redus cu un factor de doi. Nu este necesar un filtru anti-aliasing, deoarece frecvența sa de tăiere este suprapusă de frecvența primului filtru trece-jos. În operația de compresie inversă (de exemplu, m/n = 2 /3), numai filtrul anti-aliasing este utilizat în mod similar.

17.3. filtrarea imaginilor

Filtrarea imaginilor este o operație care are ca rezultat o imagine de aceeași dimensiune, obținută din cea originală după anumite reguli. În mod obișnuit, intensitatea (culoarea) fiecărui pixel din imaginea rezultată este determinată de intensitățile (culorile) pixelilor aflați într-o vecinătate a acestuia în imaginea originală.

Regulile de filtrare pot fi foarte diverse. Filtrarea imaginilor este una dintre cele mai fundamentale operațiuni ale vederii computerizate, recunoașterii modelelor și procesării imaginii. Munca majorității mari a metodelor de procesare a imaginilor începe cu una sau alta filtrare a imaginilor sursă.

Filtre liniare au o descriere matematică foarte simplă. Vom presupune că imaginea inițială în semitonuri A este dată și vom nota intensitățile pixelilor săi ca A(x, y). Un filtru liniar este definit de o funcție cu valoare reală h (nucleul de filtru) definită pe raster. Filtrarea în sine se realizează folosind operația de convoluție discretă (sumare ponderată):

B(x, y) = h(i, j) ③③A(x, y) = h(i, j) A(x-i, y-j). (17.3.1)

Rezultatul este imaginea B. În mod obișnuit, nucleul de filtru este diferit de zero numai în vecinătatea N a punctului (0, 0). În afara acestei vecinătăți, h(i, j) este egal cu zero sau foarte aproape de acesta și poate fi neglijat. Însumarea se realizează peste (i, j) О N, iar valoarea fiecărui pixel B(x, y) este determinată de pixelii imaginii A care se află în fereastra N centrată în punctul (x, y) (notat prin mulțimea N(x, y) ). Un nucleu de filtru definit pe o vecinătate dreptunghiulară N poate fi privit ca o matrice m cu n unde lungimile laturilor sunt numere impare. Când specificați un nucleu ca matrice, acesta ar trebui să fie centrat. Dacă un pixel (x, y) este situat în vecinătatea marginilor imaginii, atunci coordonatele A(x-i, y-j) pentru anumite (i, j) pot corespunde pixelilor A inexistenți în afara imaginii. Această problemă poate fi rezolvată în mai multe moduri.

Evitați filtrarea acestor pixeli decupând marginile imaginii B sau aplicând valorile originale ale imaginii A la valorile acestora.

Nu includeți pixelul lipsă în însumare, distribuindu-și greutatea h(i, j) uniform între alți pixeli din vecinătatea N(x, y).

Determinați valorile pixelilor în afara limitelor imaginii folosind extrapolarea.

Definiți valorile pixelilor dincolo de limitele imaginii folosind o continuare în oglindă a imaginii.

Alegerea metodei se face ținând cont de caracteristicile specifice ale filtrului și ale imaginii.

Filtre anti-aliasing. Cel mai simplu filtru de netezire dreptunghiular cu raza r este specificat folosind o matrice de dimensiune (2r+1) × (2r+1), toate valorile cărora sunt egale cu 1/(2r+1)2 și suma valorile sunt egale cu unu. Acesta este un analog bidimensional al unui filtru unidimensional în formă de U cu medie în mișcare trece-jos. La filtrarea cu un astfel de nucleu, valoarea pixelilor este înlocuită cu valoarea medie a pixelilor dintr-un pătrat cu latura 2r+1 în jurul acestuia. Exemplu de mască de filtru 3×3:

.

O utilizare a filtrelor este reducerea zgomotului. Zgomotul variază independent de la pixel la pixel și, cu condiția ca așteptarea matematică a valorii zgomotului să fie zero, zgomotul pixelilor vecini se va anula reciproc atunci când este însumat. Cu cât fereastra de filtrare este mai mare, cu atât intensitatea medie a zgomotului va fi mai mică, cu toate acestea, va exista și o estompare corespunzătoare a detaliilor semnificative ale imaginii. Imaginea unui punct alb pe un fundal negru în timpul filtrării (reacție la un singur impuls) va fi un pătrat uniform gri.

Reducerea zgomotului folosind un filtru dreptunghiular are un dezavantaj semnificativ: toți pixelii din masca de filtru la orice distanță de cel procesat au același efect asupra rezultatului. Un rezultat ceva mai bun se obține prin modificarea filtrului prin creșterea greutății punctului central:

.

Se poate obține o reducere mai eficientă a zgomotului dacă influența pixelilor asupra rezultatului scade odată cu creșterea distanței față de cel procesat. Un filtru gaussian cu un nucleu are această proprietate: h(i, j) = (1/2ps2) exp(-(i2+j2)/2s2). Un filtru gaussian are un nucleu diferit de zero de dimensiune infinită. Cu toate acestea, valorile nucleului de filtru scad foarte repede la n) și, prin urmare, în practică, se poate limita la convoluție cu o fereastră de dimensiuni mici în jurul (0, 0), de exemplu, luând raza ferestrei egală cu 3σ .

Filtrarea gaussiană este, de asemenea, netezită. Totuși, spre deosebire de un filtru dreptunghiular, imaginea unui punct cu filtrare gaussiană va fi o pată neclară simetrică, cu luminozitatea care scade de la mijloc la margini. Gradul de estompare a imaginii este determinat de parametrul σ.

Filtre de îmbunătățire a contrastului . În timp ce filtrele anti-aliasing reduc contrastul local al unei imagini prin estomparea acesteia, filtrele de îmbunătățire a contrastului au efectul opus și sunt în esență filtre cu frecvență spațială înaltă. Nucleul unui filtru de îmbunătățire a contrastului în punctul (0, 0) are o valoare mai mare decât 1, cu o sumă totală de valori egală cu 1. De exemplu, filtrele de îmbunătățire a contrastului sunt filtre cu un nucleu definit de matrice :

. .

Un exemplu de utilizare a unui filtru este prezentat în Fig. 17.3.1. Efectul de îmbunătățire a contrastului este obținut prin faptul că filtrul subliniază diferența dintre intensitățile pixelilor vecini, depărtând aceste intensități unul de celălalt. Acest efect va fi mai puternic cu cât valoarea termenului central al nucleului este mai mare. Un artefact caracteristic de filtrare liniară de îmbunătățire a contrastului este lumina vizibilă și halourile întunecate mai puțin vizibile în jurul granițelor.

Filtre de diferență – acestea sunt filtre liniare specificate prin aproximări discrete ale operatorilor diferenţiali (folosind metoda diferenţelor finite). Aceste filtre joacă un rol vital în multe aplicații, de exemplu, pentru găsirea marginilor într-o imagine.

Cel mai simplu operator diferențial este derivata în raport cu coordonata x d/dx, care este definită pentru funcții continue. Variante obișnuite ale operatorilor similari pentru imagini discrete sunt filtrele Prewitt și Sobel:

. .

Filtrele care aproximează operatorul derivat de coordonate y d/dy sunt obținute prin transpunerea matricelor.

Cel mai simplu algoritm pentru calcularea normei gradientului din trei puncte adiacente:

G(x, y) = .

Se folosește și o formulă de calcul simplificată:

Calculul normei gradientului pe patru puncte adiacente (operatorul Roberts):

Algoritmul Sobel folosește opt mostre de luminozitate în vecinătatea punctului central:

G(x, y) = , G(x, y) @ ,

Gxx, y = - ,

Gyx, y = - .

Alături de o determinare mai precisă a normei de gradient, algoritmul Sobel permite să se determine direcția vectorului de gradient în planul analizei imaginii sub forma unghiului j dintre vectorul de gradient și direcția rândurilor matricei:

j(x, y) = argtg(Gyx, y /Gxx, y).

Spre deosebire de filtrele de netezire și de îmbunătățire a contrastului, care nu modifică intensitatea medie a imaginii, aplicarea operatorilor de diferență are ca rezultat de obicei o imagine cu o valoare medie a pixelilor aproape de zero. Diferențele verticale (bordurile) ale imaginii originale corespund pixelilor cu valori mari de modul în imaginea rezultată. Prin urmare, filtrele de diferență sunt numite și filtre de selecție a limitelor obiectelor.

Similar cu filtrele de mai sus, filtrele pentru alți operatori diferențiali pot fi construite folosind metoda diferențelor finite. În special, operatorul diferențial Laplace (Laplacian) D= 2/x2 + 2/y2, care este important pentru multe aplicații, poate fi aproximat pentru imagini discrete folosind un filtru cu o matrice (una dintre opțiuni):

.

După cum se poate observa în Fig. 17.3.2, ca urmare a utilizării Laplacianului discret, valorile mari în valoare absolută corespund atât diferențelor de luminozitate verticale, cât și orizontale. Filtrul este astfel un filtru care găsește limite de orice orientare. Găsirea limitelor într-o imagine se poate face prin aplicarea acestui filtru și luând toți pixelii a căror valoare absolută depășește un anumit prag.

Cu toate acestea, un astfel de algoritm are dezavantaje semnificative. Principala este incertitudinea în alegerea valorii de prag. Pentru diferite părți ale imaginii, se obține de obicei un rezultat acceptabil cu valori de prag semnificativ diferite. În plus, filtrele de diferență sunt foarte sensibile la zgomotul imaginii.

Convoluție ciclică bidimensională. Ca și în cazul semnalelor unidimensionale, convoluția bidimensională poate fi efectuată în domeniul frecvenței spațiale folosind algoritmi rapidi de transformare Fourier și înmulțirea spectrelor bidimensionale ale imaginii și a nucleului de filtru. Este, de asemenea, ciclic și se realizează de obicei într-o versiune glisantă. Ținând cont de ciclicitate, pentru a calcula un model constant al spectrului nucleului, dimensiunile măștii filtrului nucleului sunt dublate de-a lungul axelor și sunt umplute cu zerouri, iar aceleași dimensiuni ale măștii sunt utilizate pentru a selecta o fereastră care alunecă peste imagine, în cadrul căreia se efectuează FFT. Implementarea unui filtru FIR folosind FFT este eficientă în special dacă filtrul are o zonă de referință mare.

Filtre neliniare . În procesarea digitală a imaginilor, algoritmii neliniari bazați pe statistici de rang sunt folosiți pe scară largă pentru a restaura imaginile deteriorate de diferite modele de zgomot. Acestea vă permit să evitați distorsiunea suplimentară a imaginii atunci când eliminați zgomotul și, de asemenea, îmbunătățiți semnificativ rezultatele filtrelor pentru imaginile cu un grad ridicat de zgomot.

Să introducem conceptul de M-vecinătate al unui element de imagine A(x, y), care este central pentru această vecinătate. În cel mai simplu caz, cartierul M conține N-pixeli - puncte care se încadrează în masca de filtru, inclusiv (sau neincluzând) pe cea centrală. Valorile acestor N-elemente pot fi aranjate într-o serie de variații V(r), ordonate în ordine crescătoare (sau descrescătoare), iar anumite momente ale acestei serii pot fi calculate, de exemplu, valoarea medie a luminozității mN și varianza dN. Valoarea de ieșire a filtrului, care înlocuiește proba centrală, este calculată folosind formula:

B(x, y) = aA(x, y) + (1-a)mN. (17.3.2)

Valoarea coeficientului a = este asociată printr-o anumită dependență cu statisticile eșantioanelor din fereastra de filtrare, de exemplu:

a = dN /(dN + k dS), (17.3.3)

unde dS este dispersia zgomotului peste imaginea în ansamblu sau peste vecinătatea S pentru S > M și MÎS, k este constanta de încredere pentru dispersia vecinătăților S. După cum rezultă din această formulă, pentru k = 1 și dN » dS a » 0,5 are loc, iar valoarea B(x, y) = (A(x, y) + mN)/2, adică se adună în mod egal pe valorile eșantionului central și valoarea medie a pixelilor din vecinătatea sa M. Pe măsură ce valorile dN cresc, contribuția la rezultatul valorii centrale de referință crește, iar pe măsură ce valorile dN scad, valoarea mN crește. Ponderea contribuției valorilor medii în cartierul M poate fi modificată cu valoarea coeficientului k.

Alegerea funcției statistice și natura dependenței coeficientului a de aceasta poate fi destul de diversă (de exemplu, în funcție de dispersia diferențelor de eșantioane în cartierul M cu un eșantion central), și depinde atât de dimensiunea a diafragmei filtrului și a naturii imaginilor și a zgomotului. În esență, valoarea coeficientului a ar trebui să specifice gradul de deteriorare a eșantionului central și, în consecință, funcția de împrumut pentru corectarea acesteia a eșantioanelor din vecinătatea M.

Cele mai simple și mai comune tipuri de filtre neliniare pentru procesarea imaginilor sunt filtrele de prag și filtrele mediane.

Filtrarea pragului este dat, de exemplu, după cum urmează:

B(x, y) =

Magnitudinea p este pragul de filtrare. Dacă valoarea punctului central al filtrului depășește valoarea medie a probelor mN din vecinătatea sa M cu valoarea pragului, atunci aceasta este înlocuită cu valoarea medie. Valoarea pragului poate fi fie o constantă, fie dependentă funcțional de valoarea punctului central.

Filtrarea mediană este definită după cum urmează:

B(x, y) = med (M(x, y)),

adică rezultatul filtrării este valoarea mediană a pixelilor din vecinătate, a căror formă este determinată de masca de filtru. Filtrarea mediană poate elimina eficient zgomotul dintr-o imagine care afectează în mod independent pixelii individuali. De exemplu, o astfel de interferență este pixeli „morți” în timpul fotografierii digitale, zgomotul „zăpadă” atunci când unii dintre pixeli sunt înlocuiți cu pixeli cu intensitate maximă etc. Avantajul filtrarii mediane este că pixelul „fierbinte” este fundal întunecat va fi înlocuit cu unul întunecat și nu „untat” în jurul zonei.

Filtrarea mediană are o selectivitate pronunțată în ceea ce privește elementele matricei, care sunt o componentă nemonotonă a secvenței de numere din deschiderea filtrului. În același timp, filtrul median lasă componenta monotonă a secvenței neschimbată. Datorită acestei caracteristici, filtrele mediane cu o deschidere selectată optim păstrează limitele clare ale obiectelor fără distorsiuni, suprimând zgomotul necorelat sau slab corelat și detaliile de dimensiuni mici.

Filtre extreme sunt determinate conform regulilor:

Bmin(x, y) = min (M(x, y)),

Bmax(x, y) = max (M(x, y)),

adică rezultatul filtrării este valorile minime și maxime ale pixelilor din masca de filtru. Astfel de filtre sunt de obicei folosite pentru imagini binare.

17.4. COMPRESIA IMAGINII

O imagine tipică cu o rezoluție de aproximativ 3000x2000 la 24 de biți per pixel pentru transmisia de culoare are un volum de 17 megaocteți. Pentru dispozitivele profesionale, dimensiunea rasterului de imagine rezultat poate fi mult mai mare, adâncimea culorii de până la 48 de biți per pixel, iar dimensiunea unei imagini poate fi mai mare de 200 de megaocteți. Prin urmare, algoritmii de compresie a imaginii sunt foarte relevanți pentru a reduce cantitatea de date care reprezintă o imagine.

Există două clase principale de algoritmi:

1. Compresie fără pierderi A (compresie fără pierderi), dacă există un astfel de algoritm invers A-1 încât pentru orice h - imagine A[h] = h1 avem A-1 = h. Compresia fără pierderi este utilizată în astfel de cazuri formate grafice reprezentări de imagini, cum ar fi: GIF, PCX, PNG, TGA, TIFF și este utilizată atunci când se prelucrează informații primare deosebit de valoroase (imagini medicale, fotografii aeriene și spațiale etc.), când chiar și cea mai mică distorsiune este nedorită

2. Compresie cu pierderi, dacă nu oferă capacitatea de a restaura cu acuratețe imaginea originală. Algoritmul aproximativ de restaurare a imaginii asociat cu A va fi notat cu A*. Perechea (A, A*) este selectată pentru a oferi rapoarte de compresie ridicate, menținând în același timp calitatea vizuală. Compresia cu pierderi este utilizată în formatele de imagine: JPEG, JPEG2000 etc.

Toți algoritmii și instrucțiunile se aplică atât imaginilor, cât și secvențelor arbitrare, ale căror elemente pot lua un număr finit de valori. Trebuie avut în vedere faptul că nu există algoritmi ideali care să poată comprima orice set de date fără pierderi.

Algoritmi Repeat Length Encoding (RLE). se bazează pe un principiu simplu: înlocuirea grupurilor repetate de elemente ale secvenței inițiale cu o pereche (cantitate, element), sau numai cu cantitate.

Nivel de biți. Vom considera datele sursă la nivelul unei secvențe de biți, de exemplu, reprezentând o imagine alb-negru. De obicei, există mai multe 0 sau 1 pe rând și puteți codifica numărul de cifre identice pe rând. Dar și numărul de repetări trebuie să fie codificat în biți. Putem considera că fiecare număr de repetare variază de la 0 la 7 (cod de 3 biți), alternând o secvență de coduri de unu și zero. De exemplu, secvențele pot fi comparate cu numerele 7 0 4, adică 7 uni, 0 zerouri, 4 uni, și avem un an nou - Cu cât lungimea secvențelor de biți identici este mai mare, cu atât efectul este mai mare. Astfel, o secvență de 21 de unități, 21 de zerouri, 3 uni și 7 zerouri va fi codificată după cum urmează: , adică, din secvența originală de 51 de biți, avem o secvență de 36 de biți.

Nivel de octet. Să presupunem că intrarea este o imagine cu semitonuri, unde 1 octet este alocat pentru valoarea intensității pixelului, iar așteptarea unui lanț lung de biți identici este redusă semnificativ.

Vom împărți fluxul de intrare în octeți (cod de la 0 la 255) și vom codifica octeți care se repetă cu o pereche (cantitate, literă). Un singur octet poate fi lăsat neschimbat. Deci, codificăm octeții AABBBCDAA (2A) (3B) (C) (D) (2A).

Cu toate acestea, modificările acestui algoritm sunt rareori utilizate pe cont propriu (de exemplu, în format PCX), deoarece subclasa de secvențe pentru care algoritmul este eficient este relativ îngustă. Mai des sunt folosite ca una dintre etapele conductei de compresie.

Dicţionar algorithms În loc să codificați doar un element din secvența de intrare, este codificat un lanț de elemente. În acest caz, un dicționar de lanțuri (creat din secvența de intrare) este folosit pentru a codifica altele noi.

Algoritmul LZ77 a fost unul dintre primii care a folosit un dicționar. Ultimele N elemente deja codificate ale secvenței sunt folosite ca dicționar. În timpul procesului de compresie, dicționarul de subsecvență „alunecă” de-a lungul secvenței de intrare. Lanțul de elemente de la ieșire este codificat astfel: poziția părții potrivite a lanțului de elemente procesate în dicționar - offset (față de poziția curentă), lungime, primul element care urmează părții potrivite a lanțului. Lungimea lanțului de potrivire este limitată mai sus de numărul n. În consecință, sarcina este de a găsi cel mai mare lanț din dicționar care se potrivește cu secvența procesată. Dacă nu există potriviri, atunci sunt înregistrate decalajul zero, lungimea unității și primul element al secvenței necodificate.

Schema de codare descrisă mai sus duce la conceptul de fereastră glisantă, constând din două părți:

O secvență de elemente deja codificate de lungime N-dicționar - tampon de căutare;

O secvență de lungime n dintr-un lanț de elemente pentru care se va încerca să găsească o potrivire - un buffer previzualizare(tampon de anticipare).

Decodificarea unei secvențe comprimate este o decodare a codurilor înregistrate: fiecare înregistrare este asociată cu un lanț din dicționar și un element scris în mod explicit, după care dicționarul este mutat. Dicționarul este recreat pe măsură ce algoritmul de decodare rulează.

Acest algoritm este fondatorul unei întregi familii de algoritmi. Avantajele sale includ un grad decent de compresie pe secvențe destul de mari și decompresie rapidă. Dezavantajele includ viteza mica compresie și un raport de compresie mai mic decât algoritmii alternativi.

Algoritmul LZW. Dicţionar in acest algoritm este un tabel care este umplut cu lanțuri de elemente pe măsură ce algoritmul rulează. În timpul procesului de compresie, se găsește cel mai lung lanț deja înregistrat în dicționar. De fiecare dată când un nou lanț de elemente nu este găsit în dicționar, acesta este adăugat în dicționar și codul lanțului este înregistrat. În teorie, nu există restricții cu privire la dimensiunea mesei, dar limitarea dimensiunii vă permite să îmbunătățiți raportul de compresie, deoarece se acumulează lanțuri inutile (care nu apar). Cu cât un tabel are mai multe intrări, cu atât mai multe informații trebuie alocate codurilor de stocare.

Decodarea constă în descifrarea directă a codurilor, adică construirea unui dicționar și scoaterea în evidență a lanțurilor corespunzătoare. Dicționarul este inițializat în același mod ca și în codificator. Avantajele algoritmului includ un grad ridicat de compresie și suficient de mare viteză, atât compresie, cât și decodare.

Algoritmi de codare statistică atribuiți un cod fiecărui element al secvenței, astfel încât lungimea acestuia să corespundă probabilității de apariție a elementului. Comprimarea are loc prin înlocuirea elementelor secvenței inițiale care au aceeași lungime (fiecare element ocupă același număr de biți) cu elemente de lungimi diferite, proporțional cu logaritmul negativ al probabilității, adică elementele care apar mai des decât altele au un cod. de lungime mai scurtă.

Algoritmul lui Huffman folosește un cod de prefix de lungime variabilă care are proprietatea specială de a fi mai mic coduri scurte nu se potrivesc cu prefixul (partea inițială) a celor mai lungi. Acest cod permite codificarea unu-la-unu. Procesul de compresie presupune înlocuirea fiecărui element al secvenței de intrare cu codul său. Construcția unui set de coduri se realizează de obicei folosind așa-numitele arbori de coduri.

Algoritmul Huffman este un algoritm cu două treceri. Prima trecere prin imagine creează un tabel cu greutățile elementelor, iar în timpul celei de-a doua are loc codificarea. Există implementări ale algoritmului cu un tabel fix. Se întâmplă adesea ca distribuția de probabilitate a priori a elementelor alfabetului să fie necunoscută, deoarece întreaga secvență nu este disponibilă deodată și sunt utilizate modificări adaptive ale algoritmului Huffman.

Compresie cu pierderi de imagine. Cantitatea de informații necesare pentru stocarea imaginilor este de obicei mare. Algoritmi clasici, fiind algoritmi scop general, nu țineți cont de faptul că informația comprimată este o imagine - un obiect bidimensional și nu oferă într-o măsură suficientă comprimare.

Compresia cu pierderi se bazează pe caracteristicile percepției imaginii umane: cea mai mare sensibilitate într-o anumită gamă de unde de culoare, capacitatea de a percepe imaginea ca un întreg fără a observa distorsiuni minore. Principala clasă de imagini la care se adresează algoritmii de compresie cu pierderi sunt fotografiile și imaginile cu tranziții netede de culoare.

Estimarea pierderii în imagini. Există multe măsuri pentru evaluarea pierderilor în imagini după ce sunt restaurate (decodificate) din cele comprimate, dar pentru toate acestea este posibil să selectați două imagini astfel încât măsura lor de diferență să fie destul de mare, dar diferențele vor fi aproape invizibile. la ochi. Și invers - puteți selecta imagini care sunt foarte diferite pentru ochi, dar au o mică măsură de diferență.

O măsură numerică standard a pierderii este de obicei abaterea standard (RMS) a valorilor pixelilor imaginii reconstruite față de cea originală. Cu toate acestea, cea mai importantă „măsură” de evaluare a pierderilor este opinia observatorului. Cu cât un observator detectează mai puține diferențe (sau mai bine zis, nicio diferență), cu atât este mai mare calitatea algoritmului de compresie. Algoritmii de compresie cu pierderi oferă adesea utilizatorului posibilitatea de a alege cantitatea de date „pierdută”, adică dreptul de a alege între calitate și dimensiune imagine comprimată. Desigur, cu cât calitatea vizuală este mai bună la un raport de compresie mai mare, cu atât algoritmul este mai bun.

transformata Fourier. În general, o imagine poate fi privită ca o funcție a două variabile, definite în punctele unui raster final. Un set de astfel de funcții în punctele unui raster finit fix formează un spațiu euclidian finit-dimensional și le poate fi aplicată o transformată Fourier discretă, adică o reprezentare spectrală a imaginii. Oferă:

Coeficienți de spectru necorelați și independenți, adică acuratețea reprezentării unui coeficient nu depinde de niciun alt coeficient.

- Compactarea energiei. Transformarea stochează informații de bază într-un număr mic de coeficienți. Această proprietate Acest efect este cel mai pronunțat în imaginile fotorealiste.

Coeficienții de reprezentare spectrală sunt amplitudinile frecvențelor spațiale ale imaginii. În cazul imaginilor cu tranziții netede, cea mai mare parte a informațiilor este conținută în spectrul de joasă frecvență.

Algoritmul de compresie utilizat în format JPEG, este construit pe utilizarea transformării Fourier discrete cosinus. Schema de compresie din algoritm este o conductă, în care această transformare este doar una dintre etape, dar una dintre cele principale. Algoritmul conține următoarele operații principale:

1. Conversie în spațiul de culoare YCbCr. Aici Y este componenta de luminozitate, Cb și Cr sunt componentele cromatice. Ochiul uman este mai sensibil la luminozitate decât la culoare. Prin urmare, este mai important să se mențină o precizie mai mare atunci când se transferă Y decât când se transferă Cb și Cr.

2. Transformată cosinus discretă (DCT). Imaginea este împărțită în blocuri de 8 × 8. O transformare cosinus discretă este aplicată fiecărui bloc (separat pentru componentele Y, Cb și Cr).

3. Reducerea componentelor de înaltă frecvență în matricele DCT. Ochiul uman cu greu observă modificări ale componentelor de înaltă frecvență, prin urmare, coeficienții responsabili pentru frecvențele înalte pot fi stocați cu mai puțină acuratețe.

4. Ordonarea în zig-zag a matricelor. Aceasta este o trecere specială a matricei pentru a obține o secvență unidimensională. Mai întâi vine elementul T00, apoi T01, T10, T1 Mai mult, pentru imaginile fotorealiste tipice, mai întâi vor exista coeficienți non-zero corespunzători componentelor de joasă frecvență, iar apoi un set de zerouri (componente de înaltă frecvență).

5. Compresie mai întâi folosind metoda RLE și apoi metoda Huffman.

Algoritmul de restaurare a imaginii funcționează în ordine inversă. Raportul de compresie este de la 5 la 100 de ori sau mai mult. În același timp, calitatea vizuală pentru majoritatea imaginilor fotorealiste rămâne la nivel bun când este comprimat de până la 15 ori. Algoritmul și formatul sunt cele mai comune pentru transmiterea și stocarea imaginilor color.

Transformarea wavelet semnale este o generalizare a transformatei Fourier clasice. Termenul „wavelet” tradus din engleză înseamnă „undă mică (scurtă)”. Waveletele sunt un nume generalizat pentru familiile de funcții matematice de o anumită formă, care sunt locale în timp și frecvență și în care toate funcțiile sunt obținute de la o bază una prin deplasările și întinderile sale de-a lungul axei timpului.

În algoritmii de compresie cu pierderi, de regulă, toate operațiunile conductei de compresie sunt reținute și transformata Fourier discretă este înlocuită cu o transformată wavelet discretă. Transformările wavelet au o localizare spațială de frecvență foarte bună și, în acest sens, sunt superioare transformărilor Fourier tradiționale. În acest caz, devine posibilă aplicarea unei cuantizări mai puternice, îmbunătățind proprietățile secvenței pentru compresia ulterioară. Algoritmii de compresie a imaginilor bazați pe această transformare arată rezultate mai bune în păstrarea calității imaginii la același raport de compresie.

literatură

46. ​​​​și altele.Algoritmi rapizi în procesarea digitală a imaginilor. – M.: Radio și Comunicații, 1984. – 224 p.

47. Procesarea imaginii Soifer. Partea 2. Metode și algoritmi. – Revista educațională Soros Nr. 3, 1996.

48. , Zgomotul cartuşului din imagini bazate pe algoritmi neliniari care utilizează statistici de rang. - Universitatea de Stat din Iaroslavl, 2007.

49. Andreev sisteme de televiziune observatii. Partea a II-a. Fundamente și algoritmi aritmetici și logici. Tutorial. - Sankt Petersburg: Sankt Petersburg, GUITMO, 2005. – 88 p.

51. Introducere în prelucrare digitală semnale (fundamente matematice) - M.: MSU, Laborator grafica pe computerși multimedia, 2002. – http://pv. *****/dsp/dspcourse. pdf, http://dsp-book. *****/dspcours. djvu, http://geogin. *****/arhiv/dsp/dsp4.pdf.

1i. si altele.fundamente algoritmice grafică raster. – Universitatea de Tehnologii Informaționale pe Internet. – http://www. *****/goto/course/rastrgraph/

2i. Lukin -sisteme electronice: Note de curs. ITMO, 2004. - Sankt Petersburg, ITMO IFF, 2004. - http://iff. *****/kons/oes/KL. htm

Despre erorile observate și sugestii de completări: *****@***ru.

Drepturi de autor©2008DavydovA.V.