Základné algoritmy na spracovanie obrazu. Algoritmy predbežného spracovania obrazu Predspracovanie obrazu

Digitálny šum je chyba obrazu, ktorá predstavuje náhodne umiestnené oblasti, ktoré sú blízke veľkosti pixelov a líšia sa od pôvodného obrazu jasom alebo farbou. Redukcia šumu hrá dôležitú úlohu pri prenose, spracovaní a kompresii videosekvencií a obrázkov.

Šum videa sa môže vyskytnúť z niekoľkých dôvodov:

1. Nedokonalé zariadenie na zachytávanie videa.

2. Zlé podmienky pri fotografovaní - napríklad nočné fotografovanie / natáčanie videa, fotografovanie v nepriaznivom počasí.

3. Rušenie pri prenose cez analógové kanály - rušenie zo zdrojov elektromagnetických polí, vlastný šum aktívnych komponentov (zosilňovačov) prenosového vedenia. Príkladom môže byť televízny signál.

4. Nepresnosti vo filtrovaní pri extrakcii signálov jasu a farebných rozdielov z analógového kompozitného signálu atď.

Množstvo šumu na snímke sa môže pohybovať od takmer neviditeľnej škvrny na digitálnej fotografii zhotovenej pri dobrom svetle až po astronomické snímky, v ktorých šum zakrýva veľa užitočných informácií, ktoré možno získať len pracným spracovaním snímky.

Existujú rôzne typy šumu v závislosti od povahy náhodného rozloženia šumu v obraze. V praxi sú najbežnejšie tieto typy:

Biely Gaussov šum

Jedným z najbežnejších šumov je aditívny gaussovský šum, ktorý sa vyznačuje pridávaním hodnôt s normálnym rozdelením a nulovým priemerom ku každému pixelu v obrázku. Pojem "aditívum" znamená, že tento typ šumu sa pridáva k užitočnému signálu. Vyskytuje sa pri slabom príjme signálu.

Digitálny šum

Príčina digitálneho šumu je najčastejšie spojená so zvláštnosťami zariadení používaných na streľbu - zvyčajne s nedostatočnou citlivosťou matrice na svetlo. Tento typ šumu sa vyznačuje nahradením niektorých pixelov v obraze hodnotami s pevnou alebo náhodnou hodnotou. Ak je jas bodov približne rovnaký, digitálny šum sa nazýva aj „impulz“. Ak sa intenzita bodiek môže meniť od čiernej po bielu, tento zvuk sa nazýva zvuk soli a korenia.

Tento typ šumu zvyčajne ovplyvňuje iba malý počet pixelov na obrázku.

Kombinovaný hluk

Prípady, keď je obraz v rovnakom objeme zašumený s Gaussovým šumom a náhodnými impulzmi, sú oveľa menej bežné. Tento súbor sa nazýva kombinovaný šum.

Chyby skenovania obrázkov

Na obrázku sa môžu objaviť aj cudzie efekty, ako sú praskliny, škrabance, modriny. Tieto artefakty nemajú homogénnu štruktúru a určenie ich tvaru a umiestnenia je do značnej miery mimo matematickej analýzy. Poruchy tohto druhu je možné odstrániť iba ručným spracovaním obrazu, preto sa s nimi v tejto práci nepočíta.

Algoritmy odstraňovania hluku

Existuje veľké množstvo algoritmov na odstraňovanie šumu z obrázkov a môžu ich používať nielen špeciálne programy na spracovanie, ale aj niektoré fotoaparáty a videokamery. Napriek tomu stále neexistuje univerzálny algoritmus filtrovania, pretože pri spracovaní obrazu je vždy potrebné voliť medzi mierou eliminácie nežiaducich efektov a zachovaním malých detailov, ktoré majú vlastnosti podobné šumu. Navyše, algoritmus, ktorý si ľahko poradí s jedným typom šumu, môže pokaziť obraz iba iným typom šumu.

Pozrime sa na niekoľko najznámejších algoritmov na potlačenie šumu obrazu.

Lineárne priemerovanie pixelov

Najjednoduchším nápadom na odstránenie šumu je spriemerovať hodnoty pixelov v priestorovom susedstve. Keďže sa šum mení nezávisle od pixelu k pixelu, šum susedných pixelov sa po pridaní navzájom vyruší. Je špecifikované obdĺžnikové okno, ktoré sa postupne prekrýva s každým pixelom obrázka. Hodnota centrálneho pixelu sa vypočíta na základe analýzy všetkých susedných pixelov, ktoré spadajú do oblasti okna. V súlade s tým, čím väčšie je nasnímané okno, tým viac priemernej hodnoty sa nakoniec získa, čo vedie k silnému efektu rozmazania.

V najjednoduchšej verzii je analýzou susedných pixelov nájsť ich aritmetický priemer. Ak chcete znížiť vplyv pixelov, ktoré nepatria do rovnakej oblasti ako tá, o ktorej sa uvažuje (napríklad tmavý obrys na svetlom pozadí), môžete zadať určitú numerickú hranicu a pri výpočte brať do úvahy iba tých susedov, ktorých rozdiel z centrálneho pixelu neprekročí túto hranicu. Čím vyššia je prahová hodnota, tým silnejšie bude priemerovanie. Uvažovaná možnosť môže byť komplikovaná zavedením váhových koeficientov pre každý susedný pixel v závislosti od ich vzdialenosti od stredu uvažovanej oblasti.

Túto metódu je možné použiť aj v časovej oblasti, pričom sa spriemeruje každý pixel v susedných snímkach toku videa (každý pixel bude spriemerovaný z pixelov umiestnených na rovnakej pozícii v susedných snímkach).

Tento algoritmus je veľmi jednoduchý, ale nedáva dobrý výsledok, zároveň vedie k silnému rozmazaniu detailov obrazu.

Gaussov filter

Má princíp činnosti podobný predchádzajúcemu spôsobu a tiež patrí do počtu vyhladzovacích filtrov. Zníženie šumu pomocou filtra s lineárnym priemerovaním má však značnú nevýhodu: všetci susedia spracovaného pixelu majú na výsledok rovnaký vplyv, bez ohľadu na ich vzdialenosť od neho. Gaussovský filter spriemeruje aj centrálny pixel a jeho susedov v určitej oblasti, len sa tak deje podľa určitého zákona, ktorý je nastavený Gaussovou funkciou.

Kde parameter y nastavuje mieru rozmazania a parameter A poskytuje normalizáciu. Výsledkom je, že centrálny pixel uvažovanej oblasti bude mať najvyššiu hodnotu zodpovedajúcu vrcholu Gaussovho rozdelenia. Hodnoty ostatných prvkov budú mať stále menší vplyv so zväčšujúcou sa vzdialenosťou od stredu.

Matricový filter vypočítaný podľa uvedeného vzorca sa nazýva Gaussov; čím väčšia je jeho veľkosť, tým silnejšie je rozostrenie (s pevným y). Keďže tento filter je oddeliteľný, môže byť reprezentovaný ako:

Z toho vyplýva, že konvolúciu možno vykonávať postupne po riadkoch a stĺpcoch, čo vedie k výraznému zrýchleniu metódy pre veľké veľkosti filtrov.

Algoritmus 2Dcleaner

Nahradí každý pixel na obrázku priemerom susedných pixelov nasnímaných v oblasti ohraničenej určitým polomerom. V tomto prípade sa neberú do úvahy všetky body v rámci polomeru, ale iba tie, ktorých hodnota sa nelíši od centrálneho pixelu o viac ako určitú vopred určenú hodnotu (prah). To spôsobuje, že rovnomerne sfarbené oblasti sú rozmazané viac ako ostré hrany predmetov. Tým sa redukuje nízkoúrovňový šum v obraze, pričom jemné detaily zostávajú nedotknuté.

Stredné filtrovanie

Lineárne algoritmy sa ukázali ako veľmi účinné pri potláčaní Gaussovho šumu, keď susedné pixely, hoci majú určité náhodné rozloženie hodnôt, stále zostávajú v rámci určitej priemernej hodnoty charakteristickej pre oblasť, do ktorej patria. Niekedy sa však musíte vysporiadať s obrazmi skreslenými inými typmi rušenia. Príkladom takéhoto rušenia je impulzný šum, ktorý sa prejavuje v prítomnosti náhodne rozptýlených bodov náhodného jasu v obraze. Spriemerovanie v tomto prípade „rozmaže“ každý takýto bod do susedných pixelov, čo vedie k zhoršeniu kvality obrazu.

Štandardným spôsobom potlačenia impulzného šumu je mediánové filtrovanie. Táto technika nelineárneho spracovania obrazu eliminuje odľahlé hodnoty, ale na rozdiel od algoritmov lineárneho spriemerovania ponecháva monotónne sekvencie pixelov nezmenené. Vďaka tomu sú mediánové filtre schopné bez skreslenia zachovať obrysy objektov a rozdiely medzi oblasťami rôzneho jasu, pričom účinne potláčajú nekorelovaný šum a malé detaily.

Princíp filtrovania: Nastaví sa určité okno nepárnej veľkosti, ktoré sa postupne prekrýva na každý pixel obrázka. Medzi všetkými pixelmi v uvažovanej oblasti, vrátane centrálneho, sa hľadá stredná hodnota, ktorá sa nakoniec priradí k centrálnemu pixelu oblasti. V tomto prípade medián znamená stredný prvok poľa zoradených hodnôt pixelov patriacich do regiónu. Nepárna veľkosť okna je zvolená presne tak, aby sa zabezpečila existencia stredného pixelu.

Na potlačenie bieleho Gaussovho šumu v obraze je možné použiť stredový filter. Štúdia potlačenia šumu pomocou mediánového filtrovania však ukazuje, že jeho účinnosť pri riešení tohto problému je nižšia ako pri lineárnom filtrovaní.

Mediánové filtrovanie nie je bez nevýhod, ktoré sú vlastné väčšine filtrov na potlačenie šumu – zväčšenie veľkosti masky na zlepšenie stupňa potlačenia šumu vedie k zníženiu jasnosti obrazu a rozmazaniu jeho obrysov. Negatívne efekty je však možné minimalizovať aplikáciou mediánového filtrovania s veľkosťou dynamickej masky (aditívne mediánové filtrovanie), ktorého princíp zostáva rovnaký, len veľkosť posuvného filtrovacieho okna sa môže meniť v závislosti od jasu susedných pixelov.

Ostrenie obrazu

Takmer všetky algoritmy na potlačenie šumu v obraze vedú k jeho rozmazaniu, v dôsledku čoho sa strácajú malé detaily a vnímanie obrazu je náročné. Filter doostrenia obrazu dokáže tento negatívny efekt čiastočne kompenzovať a obnoviť stratený obrysový kontrast a farebné prechody. Ostrosť môže závisieť aj od mnohých ďalších faktorov – od kvality objektívu, od použitej clony, od hrúbky anti-moaré filtra, ktorý sa nachádza na matrici väčšiny digitálnych fotoaparátov, rozmazávajúcich obraz v rôznej miere. Taktiež ostrosť obrázkov je často potrebné zvýšiť po zmenšení ich veľkosti, pretože sa tým nevyhnutne stráca časť informácií a tým aj jasnosť kontúr.

Unsharp masking je technika, ktorá umožňuje zvýšením kontrastu prechodov medzi tónmi obrazu zlepšiť jeho vizuálne vnímanie vďaka ilúzii zaostrenia. V skutočnosti ostrosť zostáva na rovnakej úrovni, pretože v zásade nie je možné obnoviť stratené detaily obrazu, ale zlepšenie kontrastu medzi oblasťami s rôznym jasom vedie k tomu, že obraz je vnímaný ako jasnejší.

Obrázok 5.1 - Ilustrácia konceptu "ostrosti obrysu"

Ostrosť obrazu závisí od veľkosti rozdielu jasov medzi oblasťami (W), ktoré tvoria jeho obrysy, a od ostrosti zmeny tohto rozdielu (H).

Technika neostrého maskovania bola prvýkrát použitá na spracovanie filmových fotografií. Metóda prispôsobená na digitálne spracovanie obrazu sa od originálu len málo líši: od obrazu sa odčíta takzvaná „neostrá maska“ – jeho rozmazaná a prevrátená kópia. Výsledkom je nový obrázok obsahujúci iba svetlé obrysy originálu. Tmavé obrysy možno získať jednoduchým prevrátením výsledku.

Ak v budúcnosti z pôvodného obrázka odčítate tmavé obrysy a pridáte svetlé, získate výrazný nárast kontrastu pri každom rozdiele jasu.

Na rozmazanie originálu, aby ste získali „neostrú masku“, môžete použiť ktorýkoľvek z filtrov na potlačenie šumu, ako je napríklad Gaussov filter.

Obrázok 5.2 - Výsledok aplikácie neostrého maskovania

Operácia konvolúcie sa pomerne často používa pri spracovaní obrazu. Okrem doostrovania slúži na rozmazanie, zvýšenie jasu, zosvetlenie atď.

Konvolúcia obrazu je operácia výpočtu novej hodnoty daného pixelu, ktorá berie do úvahy hodnoty okolitých susedných pixelov. Vo všeobecnom zmysle tento pojem znamená nejakú akciu, ktorá sa vykonáva na každej časti obrazu.

Hlavným prvkom konvolúcie je maska ​​konvolúcie - je to matica (ľubovoľnej veľkosti a pomeru strán). Táto maska ​​sa často označuje ako filter, jadro, vzor alebo okno. Hodnoty prvkov matice sa zvyčajne nazývajú koeficienty.

Ako konvolučné jadro sa najčastejšie používa štvorcová matica.

Spracovanie obrazu konvolučnou operáciou je nasledovné: Centrálny prvok matice, nazývaný „kotva“, je postupne superponovaný na každý pixel obrazu. Nová hodnota uvažovaného pixelu sa vypočíta ako súčet hodnôt susedných pixelov vynásobený zodpovedajúcimi koeficientmi konvolučnej masky.

Výsledný efekt závisí od zvoleného konvolučného jadra.

Jadro filtra zvyšujúceho kontrast má hodnotu väčšiu ako 1 v bode (0, 0), pričom celkový súčet všetkých hodnôt sa rovná 1. Filtrom zvyšujúcim kontrast sú napríklad filtre s jadrami špecifikovanými matice:

Efekt zvýšenia kontrastu je dosiahnutý tým, že filter zvýrazňuje rozdiel medzi intenzitami susedných pixelov, pričom tieto intenzity od seba navzájom odstraňuje. Tento efekt bude tým silnejší, čím väčšia bude hodnota centrálneho člena jadra.

Konvolučné lineárne filtrovanie na zvýšenie kontrastu môže spôsobiť viditeľné farebné haluze okolo okrajov obrazu.

Kompenzácia rozdielu osvetlenia

Problémy s osvetlením obrazu sa najčastejšie vyskytujú, keď do rámu vstupujú okná, slnko alebo iné neregulované zdroje svetla.

Táto situácia sa nazýva „nadbytočné svetlo“ a vedie k tomu, že v dôsledku príliš jasného osvetlenia stĺpikov sa strácajú detaily a farba predmetov nachádzajúcich sa na pozadí príliš jasných predmetov a je ťažké ich rozlíšiť.

Bežná je aj situácia nedostatku svetla. Môže to byť spôsobené natáčaním v tmavých miestnostiach so slabým osvetlením, ako aj obmedzeným rozsahom citlivosti video zariadenia.

Algoritmus Retinex v jednej mierke

Keď sa pokúsite zosvetliť obrázok zvýšením jasu každého pixelu o určitú pevnú hodnotu, pôvodne svetlé oblasti môžu byť úplne rozmazané.

V takýchto prípadoch je potrebné použiť „inteligentnú“ korekciu farieb, ktorá by dokázala vyrovnať osvetlenie v obraze a spracovať svetlé oblasti v menšej miere ako tmavé.

Tieto požiadavky spĺňa algoritmus Single Scale Retinex, ktorý je založený na princípoch návrhu retinálnych receptorov. Hlavným cieľom algoritmu je rozdeliť obraz na komponenty, ktoré sú zodpovedné za osvetlenie a detaily samostatne. Pretože problémy v obraze súvisia s osvetlením scény, po prijatí komponentu zodpovedného za osvetlenie je možné ho transformovať oddelene od obrazu, čím sa výrazne zvýši jeho kvalita.

Akýkoľvek obraz môže byť reprezentovaný ako produkt vysokofrekvenčného signálu (odraz - R) a nízkofrekvenčného signálu (osvetlenie - I).

S (x, y) = I (x, y) * R (x, y) (5,6)


Obrázok 5.3 - Zobrazenie obrázka v algoritme Retinex.

Približný obraz osvetlenia je možné získať pomocou dolnopriepustného filtrovania – inými slovami, jednoduchým rozmazaním pôvodného obrazu, napríklad pomocou Gaussovho filtra.

kde G - Gaussov filter

Keďže logaritmus signálu nemení frekvenciu a vzhľadom na vlastnosti logaritmickej funkcie (logaritmus súčinu sa rovná súčtu logaritmov faktorov), problém delenia súčinu signálov môže byť zjednodušené na problém delenia súčtu signálov.

Potom zostáva len odobrať exponent z prijatého signálu, aby sa vrátil do pôvodnej amplitúdovej stupnice. Výslednú vysokofrekvenčnú zložku možno pridať k rozmazanému a zosvetlenému pôvodnému obrazu, ktorý pôsobí ako nový svetelný model.

Efekt dosiahnutý vyrovnaním osvetlenia môže byť príliš silný (tmavé oblasti budú mať rovnaký jas ako svetlé). Na zníženie efektu môžete jednoducho zmiešať spracovaný obrázok s originálom v určitom pomere.

Gamma korekcia

Pôvodným účelom gama korekcie je kompenzovať rozdiely v zobrazených farbách na rôznych výstupných zariadeniach tak, aby obraz vyzeral rovnako pri prezeraní na rôznych monitoroch. Vďaka nelineárnemu vzhľadu aplikovanej výkonovej funkcie umožňuje gama korekcia zvýšiť aj kontrast tmavých oblastí obrazu, bez preexponovania svetlých detailov a bez straty rozlíšiteľnosti okrajov objektov v obraze.

Informácie o jase v analógovej forme v televízii, ako aj v digitálnej forme vo väčšine bežných grafických formátov, sú uložené v nelineárnej mierke. Jas pixelu na obrazovke monitora možno považovať za proporcionálny

kde I je jas pixelu na obrazovke (alebo jas farebných zložiek, červenej, zelenej a modrej samostatne),

V je číselná hodnota farby od 0 do 1 a

d - indikátor gama korekcie.

Ak je r menšie ako 1, potom budú prenosové charakteristiky úrovní konvexné a výsledný obraz bude svetlejší ako originál. Ak je r väčšie ako 1, potom budú charakteristiky prenosu úrovní konkávne a výsledný obraz bude tmavší ako originál.

Štandardne je parameter r rovný 1, čo zodpovedá lineárnej charakteristike prenosu úrovní a absencie gama korekcie.

Výber obrysov obrazu

Kontúrovú analýzu možno použiť na popis, rozpoznávanie, porovnávanie a vyhľadávanie grafických objektov reprezentovaných ako obrysy. Keďže použitie obrysov vylučuje vnútorné body objektu z úvahy, môže to výrazne znížiť výpočtovú a algoritmickú zložitosť týchto operácií.

Obrázok 5.4 - Zmena tvaru výkonovej funkcie v závislosti od parametra r

Obrys objektu je zoznam bodov, ktoré predstavujú určitú krivku na obrázku, ktorá oddeľuje objekt od pozadia. Najčastejšie sa pozdĺž obrysu pozoruje skok v jase alebo farbe.

Pre zjednodušenie hľadania kontúr na obrázku ho môžete predbinarizovať.

Sobelov filter vyberá hranice objektov na základe ich jasu. Keďže sa neberie do úvahy farebná zložka, treba obrázky najskôr previesť do odtieňov sivej.

Sobelov filter sa aplikuje postupne na každý pixel, pričom sa vypočíta približná hodnota jeho gradientu jasu. Gradient pre každý bod obrazu (funkcia jasu) je dvojrozmerný vektor, ktorého zložkami sú horizontálne a vertikálne derivácie jasu obrazu.

V každom bode obrazu je gradientný vektor orientovaný v smere najväčšieho nárastu jasu a jeho dĺžka zodpovedá veľkosti zmeny jasu. Tieto údaje nám umožňujú urobiť predpoklad o pravdepodobnosti nájdenia uvažovaného bodu na hranici určitého objektu, ako aj o orientácii tejto hranice.

To. výsledkom operácie Sobelovho operátora v bode v oblasti konštantného jasu bude nulový vektor a v bode ležiacom na hranici oblastí rôzneho jasu - vektor prekračujúci hranicu v smere zvyšovania jasu.

Na výpočet približných hodnôt derivácií v každom bode na obrázku používa Sobelov filter konvolúciu s maticou 3 × 3.

Koeficienty Sobelovej matice:

Konečná hodnota gradientu sa vypočíta aproximáciou podľa vzorca:

G | = | Gx | + | Gy |

Kennyho hraničný detektor

Hoci Kennyho práca bola vykonaná v počiatkoch počítačového videnia (1986), Kennyho hraničný detektor je stále jedným z najlepších detektorov. Kennyho metóda je viacstupňový algoritmus a zahŕňa nasledujúce kroky:

1. Očistenie obrazu od šumu a nepotrebných detailov.

2. Očistenie obrazu od šumu a nepotrebných detailov.

3. Vyhľadajte prechody obrázkov, napríklad pomocou operátora Sobel.

4. Potlačenie nemaximy. Ako hranice sú označené iba miestne výšky.

5. Dvojité prahové filtrovanie. Potenciálne hranice sú definované prahovými hodnotami.

6. Trasovanie ciest (prepojenie hrán s cestami)

Keďže najmenší šum v obraze môže narušiť integritu jeho obrysov, odporúča sa pred spustením vyhľadávania filtrovať obraz akoukoľvek metódou redukcie šumu. Kvôli vysokej rýchlosti prevádzky a jednoduchosti implementácie sa najčastejšie používa Gaussov filter. Okraje obrázka môžu byť v rôznych smeroch, takže Kennyho algoritmus používa štyri filtre na detekciu horizontálnych, vertikálnych a diagonálnych hrán. Pomocou operátora detekcie hraníc (napríklad Sobelov operátor) sa získa hodnota pre prvú deriváciu v horizontálnom smere (Gy) a vertikálnom smere (Gx). Z tohto gradientu môžete získať uhol smeru hranice:

Uhol smeru okraja je zaoblený do jedného zo štyroch rohov, ktoré predstavujú vertikálnu, horizontálnu a dve uhlopriečky (napríklad 0, 45, 90 a 135 stupňov). Ako hranice sú deklarované len tie pixely, v ktorých je dosiahnuté lokálne maximum gradientu v smere vektora gradientu. Hodnota smeru musí byť násobkom 45°. Po potlačení nemaximy sa okraje stávajú presnejšie a tenšie.

V ďalšom kroku sa prahovým filtrovaním pre každý uvažovaný pixel určí, či patrí k hraniciam obrazu. Čím vyšší je prah, tým rovnomernejšie budú nájdené obrysy, slabé hrany však možno ignorovať. Na druhej strane, zníženie prahu zvyšuje náchylnosť algoritmu na šum. Kennyho výber hraníc používa dva prahové hodnoty filtrovania: ak je hodnota pixelu vyššia ako horná hranica, nadobudne maximálnu hodnotu (hranica sa považuje za platnú), ak je nižšia, pixel je potlačený, body s hodnotou spadajúcou do rozsahu medzi prahové hodnoty majú pevnú priemernú hodnotu (budú spresnené v ďalšom kroku).

Posledným krokom pri spracovaní obrazu je zviazanie jednotlivých hrán do jednotných obrysov. Pixely, ktoré dostali priemer v predchádzajúcom kroku, sú buď potlačené (ak sa nedotýkajú žiadnej z už zistených hrán), alebo sú pripojené k zodpovedajúcemu obrysu.

Segmentácia

Väčšina obrázkov získaných z fotografických a video zariadení je rastrová, to znamená, že pozostávajú z farebných bodov usporiadaných do obdĺžnikovej siete. Ľudia však vnímajú svet okolo seba ako súbor celých predmetov, a nie maticu bodov. Ľudský mozog dokáže spájať nesúrodé detaily obrazu do homogénnych oblastí a podvedome ho rozdeľuje na objekty. Tento proces sa nazýva segmentácia a možno ho implementovať programovo pri riešení problému počítačovej analýzy obrazu a rozpoznávania vzorov. Segmentácia sa vykonáva v počiatočných fázach analýzy a kvalita jej vykonania môže mať silný vplyv na jej rýchlosť a presnosť.

Metódy segmentácie možno rozdeliť do dvoch tried: automatické – nevyžadujúce interakciu používateľa a interaktívne – využívajúce vstup používateľa priamo v procese.

V prvom prípade sa nepoužívajú žiadne apriórne informácie o vlastnostiach oblastí, ale na samotné rozdelenie obrazu sú kladené určité podmienky (napríklad všetky oblasti musia byť jednotné vo farbe a štruktúre). Keďže táto formulácia problému segmentácie nevyužíva apriórne informácie o zobrazovaných objektoch, metódy tejto skupiny sú univerzálne a použiteľné na akékoľvek obrázky.

Na približné posúdenie kvality metódy v konkrétnom probléme sa zvyčajne zaznamená niekoľko vlastností, ktoré by mala mať dobrá segmentácia:

§ jednotnosť regiónov (jednotnosť farby alebo štruktúry);

§ nepodobnosť susedných regiónov;

§ plynulosť hranice regiónu;

§ malý počet malých „dier“ v rámci regiónov;

Segmentácia prahu

Prahovanie je najjednoduchšia metóda zameraná na spracovanie obrazu, ktorého jednotlivé homogénne oblasti sa líšia priemerným jasom. Ak je však obraz nerovnomerne osvetlený, niektoré objekty sa môžu svojou intenzitou zhodovať s pozadím, čo spôsobí, že segmentácia prahu nebude efektívna.

Najjednoduchším a zároveň často používaným typom prahovej segmentácie je binárna segmentácia, kedy sa v obraze rozlišujú len dva typy homogénnych plôch.

V tomto prípade sa transformácia každého bodu zdrojového obrazu na výstup vykonáva podľa pravidla:

kde x0 je jediný parameter spracovania nazývaný prah. Výstupné úrovne jasu y0 a y1 môžu byť ľubovoľné, slúžia len ako štítky, pomocou ktorých je výsledná mapa vyznačená - priraďovaním jej bodov k triedam K1, resp. K2. Ak sa výsledný produkt pripravuje na vizuálne vnímanie, potom ich hodnoty často zodpovedajú úrovniam čiernej a bielej. Ak existujú viac ako dve triedy, potom počas prahovania musí byť nastavená rodina prahov, ktorá oddeľuje jas rôznych tried od seba.

Prahová segmentácia je vhodná na výber malého počtu nepretínajúcich sa objektov na obrázku, ktoré majú homogénnu štruktúru a ostro vystupujú z pozadia. S nárastom stupňa heterogenity obrazu, a tým aj počtu segmentov a ich zložitosti, sa tento typ segmentácie stáva neúčinným.

Segmentácia založená na rozdelení grafu

Metódy teórie grafov sú jednou z najaktívnejšie sa rozvíjajúcich oblastí segmentácie obrazu.

Všeobecná myšlienka metód tejto skupiny je nasledovná. Obrázok je prezentovaný vo forme váženého grafu s vrcholmi v bodoch obrázka. Váha hrany grafu odráža podobnosť bodov v určitom zmysle (vzdialenosť medzi bodmi v určitej metrike). Rozdelenie obrazu je modelované výrezmi grafu.

Zvyčajne sa v metódach teórie grafov zavádza funkcionál „nákladov“ rezu, ktorý odráža kvalitu získanej segmentácie. Takže problém rozdelenia obrazu na homogénne oblasti sa redukuje na optimalizačný problém nájdenia zníženia minimálnych nákladov na graf. Tento prístup umožňuje okrem jednotnosti farby a textúry segmentov kontrolovať tvar segmentov, ich veľkosť, zložitosť hraníc atď.

Na nájdenie zníženia minimálnych nákladov sa používajú rôzne metódy: chamtivé algoritmy (v každom kroku sa vyberie taká hrana, aby celkové náklady na rez boli minimálne), metódy dynamického programovania (je zaručené, že výberom optimálnej hrany v každom kroku skončíme s optimálnou cestou), algoritmus Dijkstra atď.

Interpolácia

V počítačovej grafike sa metóda interpolácie často používa v procese zmeny mierky obrázkov. Zmenou počtu pixelov v obraze pomáha interpolácia predchádzať nadmernej pixelizácii obrazu pri jeho zväčšení alebo strate dôležitých detailov pri jeho zmenšení.

Počas procesu interpolácie sa medzi pixely obrazu vkladajú ďalšie body, ktorých odhadovaný tón a farba sa vypočítava pomocou špeciálneho algoritmu na základe analýzy dostupných údajov o susedných oblastiach. Bohužiaľ, keďže akákoľvek interpolácia je len aproximácia, obraz vždy stratí kvalitu, kedykoľvek bude interpolovaný.

Interpolácia najbližšieho suseda

Tento algoritmus je najjednoduchším druhom interpolácie, jednoducho zväčšuje každý pixel obrazu na požadovanú mierku. Vyžaduje si najmenší čas spracovania, ale prináša najhoršie výsledky.

Bilineárna interpolácia

Tento typ interpolácie sa vykonáva pre každú súradnicu dvojrozmernej siete. V tomto prípade je obraz považovaný za povrch, farba je tretí rozmer. Ak je obrázok farebný, interpolácia sa vykonáva oddelene pre tri farby. Pre každý neznámy bod na novom obrázku bilineárna interpolácia zvažuje štvorec štyroch okolitých známych pixelov. Vážený priemer týchto štyroch pixelov sa používa ako interpolovaná hodnota. Výsledkom je, že obrázky vyzerajú výrazne hladšie ako výsledok metódy najbližšieho suseda.

Bilineárna interpolácia funguje dobre pri veľkých celočíselných faktoroch mierky, ale dosť rozmazáva ostré hrany obrazu.

Bikubická interpolácia ide ešte o krok ďalej ako bilineárna interpolácia, berúc do úvahy pole 4x4 okolitých pixelov – iba 16. Keďže sú v rôznych vzdialenostiach od neznámeho pixelu, najbližšie pixely majú pri výpočte väčšiu váhu. Bikubická interpolácia vytvára výrazne ostrejšie obrázky ako predchádzajúce dve metódy a je pravdepodobne optimálna z hľadiska času spracovania a kvality výstupu. Z tohto dôvodu sa stal štandardom pre mnohé programy na úpravu obrázkov (vrátane Adobe Photoshop), ovládače tlačiarne a vstavanú interpoláciu fotoaparátu.

Zmenšený obrázok môže byť oveľa menej ostrý. Interpolačné algoritmy, ktoré lepšie zachovávajú ostrosť, sú tiež náchylnejšie na moaré, zatiaľ čo tie, ktoré moaré eliminujú, majú tendenciu produkovať jemnejší výsledok. Žiaľ, tomuto kompromisu pri škálovaní sa nedá vyhnúť.

Jedným z najlepších spôsobov, ako proti tomu bojovať, je aplikovať neostrú masku ihneď po úprave mierky, aj keď je originál už zaostrený.

5.2 Zdôvodnenie výberu algoritmov použitých v subsystéme

Hlavnou požiadavkou na vyvinutý softvérový balík bolo minimalizovať oneskorenie prehrávania video streamu počas jeho predspracovania na výpočtovom klastri. Navyše, streľba môže prebiehať za akýchkoľvek podmienok, čo znamená, že v krátkom čase bolo potrebné implementovať veľké množstvo jednoduchých filtrov na neutralizáciu rôznych negatívnych vplyvov. Okrem toho bolo potrebné v krátkom čase naštudovať veľké množstvo negatívnych faktorov, ktoré sa na videu objavujú a implementovať jednoduché filtre na ich neutralizáciu. Algoritmy, ktoré spĺňajú uvedené požiadavky, by mali byť ľahko dostupné, dobre optimalizované, vysoko spoľahlivé a zároveň ľahko implementovateľné. Funkcie knižnice OpenCV majú také vlastnosti, preto pri výbere špecifických metód implementácie filtrov na spracovanie video streamu boli uprednostnené algoritmy obsiahnuté v tejto knižnici v tej či onej forme.

Všetky algoritmy uvažované v teoretickej časti záverečnej kvalifikačnej práce boli implementované v testovacej forme s cieľom porovnať ich charakteristiky v praxi. Predovšetkým bol uprednostnený kompromis medzi rýchlosťou spracovania snímky toku videa a kvalitou získaného výsledku.

V dôsledku toho boli na implementáciu filtrov na spracovanie video streamu vo výpočtovom klastri zvolené nasledujúce algoritmy:

1. Na odstránenie „aditívneho bieleho“ šumu bol zvolený Gaussov algoritmus. Ako najbežnejšia metóda redukcie hluku je veľmi dobre optimalizovaná, a preto má vysokú prevádzkovú rýchlosť.

2. Na odstránenie „aditívneho bieleho“ šumu bol zvolený Gaussov algoritmus. Ako najbežnejšia metóda redukcie hluku je veľmi dobre optimalizovaná, a preto má vysokú prevádzkovú rýchlosť.

3. Na odstránenie „impulzného“ šumu bola zvolená stredná filtrácia. Táto metóda je tiež dobre optimalizovaná a bola špeciálne navrhnutá tak, aby eliminovala impulzný a soľný a korenistý hluk.

4. Konvolúcia bola zvolená na zvýšenie ostrosti obrazu, keďže funguje oveľa rýchlejšie ako neostré maskovanie a zároveň poskytuje prijateľné výsledky.

5. Knižnica OpenCV neobsahuje algoritmy korekcie farieb - preto bolo rozhodnuté implementovať najrozšírenejší a dobre zdokumentovaný algoritmus Single Scale Retinex. Táto metóda je veľmi efektívna, ale vyžaduje optimalizáciu na urýchlenie práce.

6. Kennyho algoritmus bol zvolený ako metóda na extrakciu kontúr, pretože poskytuje lepšie výsledky ako Sobelov filter.

7. Algoritmus pyramídovej segmentácie prezentovaný v knižnici OpenCV pracuje extrémne pomaly, preto bolo rozhodnuté použiť na grafoch predtým diskutovaný segmentačný algoritmus.

8. interpolácia - metóda bikubickej interpolácie bola zvolená ako najrozumnejší kompromis medzi rýchlosťou práce a kvalitou výsledku.

Inštalácia a konfigurácia používaného softvéru.

Použitý výpočtový klaster bol spustený GNU Linux (Ubuntu)

Po inštalácii operačného systému je potrebné nainštalovať niekoľko knižníc, ktoré podporujú čítanie a zápis obrázkových súborov, kreslenie na obrazovku, prácu s videom atď.

Inštalácia CMake

Projekt je vytvorený pomocou CMake (vyžaduje sa verzia 2.6 alebo vyššia). Môžete ho nainštalovať pomocou príkazu:

apt-get install cmake

Možno budete potrebovať aj nasledujúce knižnice:

build-essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorxbis-dev libvorxbis-dev

Inštaluje sa ffmpeg

Aby opencv správne spracoval video súbory, musí byť nainštalovaná knižnica ffmpeg. To sa vykonáva pomocou nasledujúcich príkazov:

1) Stiahnutie zdrojových kódov knižnice

wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz

2) Rozbalenie archívu so zdrojovými kódmi

tar -xvzf ffmpeg-0.7-rc1.tar.gz

3) Konfigurácia knižnice

configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc

Enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb

Enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab

Enable-swscale --enable-shared

4) Vybudovanie a inštalácia knižnice

inštalácia GTK

Zobrazenie okien OpenCV vyžaduje nainštalovanú knižnicu GTK + 2.x alebo vyššiu vrátane hlavičkových súborov (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Inštalácia Opencv

Po nainštalovaní všetkých súvisiacich knižníc sa inštalácia opencv2.2 vykoná pomocou nasledujúcich príkazov:

1) Stiahnutie zdrojových kódov knižnice OpenCV

http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2

2) Rozbalenie archívu so zdrojovými kódmi

tar -xvf OpenCV-2.2.0.tar.bz2

3) generovanie Makefile pomocou CMake.

4) vybudovanie a inštalácia knižnice OpenCV

5) Možno budete musieť zaregistrovať aj cestu ku knižniciam

exportovať LD_LIBRARY_PATH = / používateľ / lokál / lib: $ LD_LIBRARY_PATH

Inštalácia a kompilácia vyvinutého softvérového balíka

Je potrebné skopírovať zdrojové kódy programov z disku priloženého k tejto vysvetlivke. Skopírujte dávkový súbor build_all.sh do rovnakého priečinka a potom ho spustite. Ak je v systéme nainštalovaný kompilátor gcc, zostavenie prebehne automaticky.

DIGITÁLNY LIEČBA SIGNÁLY

Téma 17. SPRACOVANIE OBRAZU

Nie je nič, bez ohľadu na to, na akú fantáziu sa človek odváži.

Titus Lucretius. Rímsky filozof a básnik. 1. storočie pred Kr NS.

Predstavivosť je dobrá vec. Ale dostať vandráka z pivnice, vyprať, premeniť sa na Apolla, zbaliť sa do škatuľky od zápaliek a poslať e-mailom kamarátovi kamarátovi, dobrý grafický program bude lepšie.

Anatolij Pyshmintsev, novosibirský geofyzik Uralskej školy. XX storočia

Úvod.

1. Základné pojmy. Grafické znázornenie obrázkov. Reprezentácia farieb v počítačovej grafike. RGB farebný model. Farebný systém CIE XYZ.

2. Geometrické transformácie rastrových obrázkov. Oblasti a štádiá transformácie. Vzorkovanie. Interpolačný rad rekonštrukcie dvojrozmerného signálu. Frekvenčné skreslenie obrazov a ich eliminácia. Prevzorkovanie obrázkov.

3. Filtrovanie obrázkov. Lineárne filtre. Vyhladzovacie filtre. Filtre zvyšujúce kontrast. Diferenčné filtre. Dvojrozmerná cyklická konvolúcia. Nelineárne filtre. Prahové filtrovanie. Stredné filtrovanie. Extrémne filtre.

4. Kompresia obrázkov. Algoritmy kódovania dĺžky opakovania (RLE). Slovníkové algoritmy. Štatistické kódovacie algoritmy. Stratová kompresia obrazu. Odhad straty obrazu. Fourierova transformácia. Waveletová transformácia.

ÚVOD

Rozsah výskumu v oblasti digitálneho zobrazovania rýchlo rastie. Je to preto, že spracovanie obrazu je viacrozmerné spracovanie signálu a väčšina signálov v reálnom svete je viacrozmerná.


Obraz v matematickom vyjadrení je dvojrozmerný signál, ktorý nesie obrovské množstvo informácií. Farebný obrázok s rozmermi 500 × 500 prvkov predstavuje pole niekoľkých stoviek tisíc bajtov. Takéto informácie je možné spracovať iba racionálnou organizáciou výpočtov. Pre špecifické úlohy spracovania obrazu možno použiť efektívne techniky spracovania, berúc do úvahy charakteristiky a obmedzenia danej konkrétnej úlohy. Ak však hovoríme o spracovaní obrazu na riešenie širokej triedy problémov, potom je potrebné vyčleniť súbor štandardných operácií, z ktorých je možné zostaviť algoritmy na riešenie ľubovoľných problémov. Patria sem lineárne transformácie, 2D konvolúcia a 2D diskrétne Fourierove transformácie.

Nelineárne transformácie sú však tiež široko používané pri spracovaní obrazu. Zvláštnosťou obrazov je, že jednotlivé prvky obrazu sú v určitom spojení so susednými prvkami. Preto je väčšina algoritmov konverzie obrázkov lokálnej povahy, to znamená, že spracúvajú obrázky podľa skupín prvkov nachádzajúcich sa v susedstve daného prvku. Lineárne transformácie vyhovujú vlastnosti lokality a umožňujú konštrukciu algoritmov, ktorých výpočtová náročnosť málo závisí od veľkosti okolitého okolia. Rovnaké vlastnosti sa vyžadujú od nelineárnych transformácií obrázkov. Trieda takýchto transformácií zahŕňa algoritmy, ktoré sa nazývajú algoritmy filtrovania hodnotenia založené na výpočte lokálnych štatistík hodnotenia obrázkov. Pri výpočte štatistiky poradia a ich derivátov sú možné zjednodušenia spojené s informačnou redundanciou obrázkov. Najznámejším algoritmom tejto triedy je algoritmus mediánového filtrovania. Ďalšími príkladmi algoritmov hodnotenia sú algoritmy extrémneho filtrovania, ktoré nahradia analyzovaný prvok obrazu maximom alebo minimom v susedstve. Ďalšou vlastnosťou rank algoritmov je lokálne prispôsobenie sa charakteristikám spracovávaného obrazu a možnosť ich využitia nielen na vyhladzovanie a čistenie od šumu, ale aj na extrakciu vlastností pri automatickom rozpoznávaní obrazu.

Pri spracovaní obrazu sú široko používané metódy na spracovanie jednorozmerných signálov, ak je možné ich zovšeobecniť na viacrozmerné signály. Zároveň je potrebné vziať do úvahy, že matematické metódy na popis viacrozmerných systémov nie sú úplné. Viacrozmerné systémy majú veľký počet stupňov voľnosti a ich dizajn získava flexibilitu, ktorá nie je vlastná jednorozmerným systémom. Zároveň sa viacrozmerné polynómy nerozkladajú na hlavné faktory, čo komplikuje analýzu a syntézu viacrozmerných systémov.

17.1. Základné pojmy

Grafické znázornenie obrázkov. Na zobrazenie grafickej informácie v dvojrozmernej rovine (obrazovke monitora) sa používajú dva prístupy: rastrový a vektorový.

Vo vektorovom prístupe sa grafická informácia popisuje ako súbor abstraktných geometrických objektov - čiar, segmentov, kriviek, obdĺžnikov atď. Vektorový popis predpokladá a priori znalosť štruktúry obrazu.

Rastrová grafika pracuje s ľubovoľnými obrázkami vo forme rastrov. Raster je popis obrázku v rovine jeho rozdelením (diskretizáciou) na identické prvky na pravidelnej mriežke a priradením vlastnej farby a akýchkoľvek iných atribútov každému prvku. Najjednoduchší raster je pravouhlý, najekonomickejší z hľadiska počtu vzoriek na prenos obrazu je šesťuholníkový. Z matematického hľadiska je raster po častiach konštantná aproximácia v rovine spojitej obrazovej funkcie.

Rastrový prvok sa nazýva pixel. Štandardná identifikácia pixelov:


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

kde A (i, j) Ì R2 - plocha pixelu, C (i, j) Î C - atribút pixelu (zvyčajne farba). Najčastejšie sa používajú dva typy atribútov:

C (i, j) = I (i, j) - intenzita pixelov (jas);

C (i, j) = (R (i, j), G (i, j), B (i, j)) - atribúty farieb vo farebnom modeli RGB.

V maticovej forme:

Mij ​​​​= (Aij, Cij).

Pri diskretizácii súvislých obrázkov možno hodnoty Aij definovať dvoma spôsobmi, buď ako hodnoty bodov Aij = (i, j), pre ktoré sú definované atribúty Cij, alebo ako hodnoty štvorce Aij = (i, i + 1) × (j, j + 1) alebo akýkoľvek iný tvar, pričom Cij sa určí strednými hodnotami v rámci tohto tvaru (obr. 17.1.1).

V praxi sú X a Y spravidla obmedzené množiny nezáporných celých čísel štvorcového alebo obdĺžnikového rastra s pomerom strán (pomerom strán) šírky k výške rastra, ktorý sa zapisuje v tvare napr. "4:3".

Reprezentácia farieb v počítačovej grafike. Pojem farby je založený na vnímaní elektromagnetických vĺn v určitom frekvenčnom rozsahu ľudskými očami. Denné svetlo, ktoré vnímame, má vlnové dĺžky λ od 400 nm (fialové) do 700 nm (červené). Opisom svetelného toku môže byť jeho spektrálna funkcia I (λ). Svetlo sa nazýva monochromatické, ak má jeho spektrum iba jednu špecifickú vlnovú dĺžku.

Na sietnici sú dva typy receptorov: tyčinky a čapíky. Spektrálna citlivosť tyčiniek (obr. 17.1.2) je priamo úmerná jasu dopadajúceho svetla. Kužele sú rozdelené do troch typov, z ktorých každý má určitú citlivosť v obmedzených rozsahoch s maximami pre červenú, zelenú a modrú farbu a v tme prudko strácajú citlivosť. Citlivosť oka na modrú farbu je výrazne nižšia ako na ostatné dve. Dôležitou vlastnosťou ľudského vnímania svetla je lineárnosť pri kombinovaní farieb s rôznymi vlnovými dĺžkami.

RGB farebný model (Red, Green, Blue - červená, zelená, modrá) v počítačovej grafike je v súčasnosti najrozšírenejšia. V tomto modeli je spektrálna funkcia reprezentovaná ako súčet kriviek citlivosti pre každý typ kužeľov s nezápornými váhovými koeficientmi (normalizovanými od 0 do 1), ktoré sú označené ako R, G a B. Model je charakterizovaný vlastnosťou aditívnosti na získanie nových farieb. Napríklad kódovanie spektrálnych funkcií:

Čierna: fblack = 0, (R, G, B) = (0,0,0);

Fialová ffialová = fred + fmodrá, (R, G, B) = (1,0,1);

Biela fbiela = fred + fgreen + fblue, (R, G, B) = (1,1,1).

Trojrozmerný farebný priestor RGB modelu je znázornený na obr. 17.1.3. Kvôli zvláštnostiam vnímania svetla receptormi nie sú v tomto modeli reprezentovateľné všetky farby viditeľné pre ľudí. Podiel reprodukovateľných farieb je však oveľa vyšší ako podiel, ktorý nie je v tomto modeli zastúpený.

Farebný systém CIE XYZ. Medzinárodný štandard pre zobrazenie farieb CIE (CIE - Commission Internationale de l "Eclairage) bol prijatý v roku 1931 Medzinárodnou komisiou pre osvetlenie, definuje tri základné funkcie ρX (λ), ρY (λ), ρZ (λ), v závislosti od lineárne kombinácie vlnových dĺžok s nezápornými koeficientmi (X, Y a Z) vytvárajú všetky farby viditeľné pre človeka. Tieto funkcie zohľadňujú relatívne vnímanie intenzity svetla receptormi oka. V trojrozmernom priestore Farebný systém CIE tvorí kužeľ v prvom kvadrante a slúži na kvalitné zobrazenie farebných obrázkov.

17.2. Geometrické transformácie bitových máp

Oblasti a štádiá transformácie. Obrázky možno rozdeliť na textúru a detaily. V obrázkoch textúr nesú všetky vzorky (prvky) informáciu (obrázok na TV obrazovke). Detailný obrázok je obrázok, na ktorom môžete zvýrazniť rušivé predmety, pozadie a užitočné predmety.

Existujú tri hlavné skupiny algoritmov na spracovanie obrazu na počítačoch:

1. Primárne (predbežné) spracovanie obrazu za účelom reštaurovania, čistenia od náhodného šumu, zlepšovania kvality, korekcie geometrických skreslení optických systémov (rozostrenie, aberácie a pod.).

2. Popis obrázkov, rozpoznávanie vzorov. Vykonáva sa na určenie parametrov detailov obrazu a zahŕňa: nájdenie oblastí obrazu, ktoré sú jednotné z hľadiska osvetlenia a farby, zvýraznenie tvarových znakov obrazu, určenie súradníc špeciálnych bodov objektov atď.

3. Efektívne kódovanie na zníženie objemu pri prenose a ukladaní.

Väčšina metód predbežného spracovania je založená na použití lineárnych priestorových invariantných (LPI) filtrov. Lineárne algoritmy sa vykonávajú pomocou dvojrozmerných analógov jednorozmerných filtrov FIR a IIR. Dajú sa využiť napríklad pri implementácii filtrov na zníženie šumu v obrázkoch.

FIR filtre sú implementované pomocou konvolučnej metódy. Výhodou 2D FIR filtrov je prehľadnosť, jednoduchosť a absolútna stabilita. IIR filtre sú implementované pomocou diferenčných rovníc a z-transformácií. Sú rýchlejšie ako FIR filtre, ale môžu byť nestabilné. Syntéza dvojrozmerných IIR filtrov sa líši od syntézy jednorozmerných filtrov, pretože pre dvojrozmernú funkciu nie je možné vybrať póly v explicitnej forme.

Na obnovenie obrázkov a zlepšenie ich kvality môžu byť potrebné aj nelineárne metódy. Takže napríklad na potlačenie šumu a zároveň zachovanie obrysovej časti obrázkov je potrebné použiť nelineárne alebo lineárne priestorovo neinvariantné (LPNI) filtre, ktoré sú implementované rank algoritmami. Všetky rank nelineárne filtre sú založené na rýchlych algoritmoch na výpočet lokálnych histogramov.

Jednou z týchto metód je mediánové filtrovanie. Použitie stredových filtrov je účinné na potlačenie niektorých typov šumu a periodického rušenia bez súčasného skreslenia signálu, napríklad na potlačenie návalov šumu, vrátane výpadkov linky. Metódu možno použiť aj na riešenie problémov súvisiacich s rozpoznávaním, napríklad na zvýraznenie tenkých čiar a malých izolovaných objektov.

Algoritmy na popis obrázkov a rozpoznávanie vzorov sú zvyčajne nelineárne a heuristické. Vlastnosti objektov sú zvyčajne plocha obrazu objektu, obvod obrysu obrazu, pomer plochy k štvorcu obvodu obrazu. Tvar objektu možno charakterizovať polomerom kružnice vpísanej do obrazu alebo opísanej okolo obrazu objektu, dĺžkou minimálneho a maximálneho polomeru-vektora od „ťažiska“ obrazu.

Vzorkovanie. Transformácie obrázkov v počítači a ukladanie spracovaných údajov sa vykonávajú v diskrétnej forme. Vzorkovanie sa používa na získanie diskrétnej reprezentácie zo súvislých analógových obrazov reálneho sveta. V praxi sa to vykonáva pomocou vstupných zariadení (digitálny fotoaparát, skener, prípadne iné). Pre vizuálne vnímanie spracovaných obrazov na výstupných zariadeniach (displej, ploter atď.) sa analógový obraz rekonštruuje podľa jeho diskretizovaného zobrazenia.

V najjednoduchšom prípade čiernobielych obrázkov máme dvojrozmerné pole sa (x, y). Pre farebné obrázky v modeli RGB, berúc do úvahy vlastnosť aditivity pri pridávaní farieb, možno každú vrstvu R, G a B tiež považovať a spracovať ako dvojrozmerné pole s následným sčítaním výsledkov.

Z metód zovšeobecňovania jednorozmerného periodického vzorkovania na dvojrozmerný prípad je najjednoduchšie periodické vzorkovanie v pravouhlých súradniciach:

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

kde Dx a Dy sú horizontálne a vertikálne intervaly vzorkovania dvojrozmerného spojitého signálu sa (x, y) so spojitými súradnicami x a y. Nižšie hodnoty Dx a Dy, ako v jednorozmernom prípade, sa rovnajú 1.

Vzorkovanie dvojrozmerného signálu tiež vedie k periodizácii jeho spektra a naopak. Podmienka informačnej ekvivalencie súradnicových a frekvenčných reprezentácií diskrétneho signálu je tiež zachovaná pri rovnakom počte vzorkovacích bodov v hlavných rozsahoch signálu. Pre pravouhlé vzorkovanie sú priame a inverzné Fourierove transformácie určené výrazmi:

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 ")

Ryža. 17.2.1. Periodizácia spektra.

Tieto výrazy ukazujú, že dvojrozmerný DFT cez obdĺžnikový vzorkovací raster údajov možno vypočítať pomocou jednorozmerných sekvenčných DFT. Druhé súčty výrazov (17.2.1") a (17.2.2") sú jednorozmerné DFT sekcií funkcií s (n, m) a S (k, l) pozdĺž čiar n a k, v tomto poradí. , a prvé sú jednorozmerné DFT vypočítaných funkcií v sekciách m a l. Inými slovami, počiatočné matice hodnôt s (n, m) a S (k, l) sa najskôr prepočítajú na stredné matice s DFT po riadkoch (alebo po stĺpcoch) a stredné matice - na konečné matice s DFT podľa stĺpcoch (resp. po riadkoch).

Aby sa periodické opakovanie spektra (obr. 17.2.1), spôsobené vzorkovaním analógového signálu s frekvenciou Fx = 1 / Dx a Fy = 1 / Dy, nemení spektrum v hlavnom frekvenčnom rozsahu. (vzhľadom na spektrum pôvodného analógového signálu), je potrebné a postačuje, aby maximálne frekvenčné zložky fmax v spektre analógového signálu v riadkoch aj v stĺpcoch nepresiahli Nyquistovu frekvenciu (fmax. x £ fN = Fx / 2, fmax y £ fM = Fy / 2). To znamená, že vzorkovacia frekvencia signálu musí byť aspoň dvojnásobkom maximálnej frekvenčnej zložky v spektre signálu:

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

čo zaisťuje, že spektrálne funkcie dosahujú nulové hodnoty na koncoch hlavného rozsahu spektra.

Interpolačný rad rekonštrukcie dvojrozmerného signálu. Ak je spojitý signál sa (x, y) signálom obmedzeným na spektrum a periódy vzorkovania sú zvolené dostatočne malé a spektrá susedných periód sa neprekrývajú:

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

potom, ako v jednorozmernom prípade, signál sa (x, y) možno rekonštruovať z diskrétneho signálu pomocou dvojrozmerného analógu radu Kotelnikov-Shannon:

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

Frekvenčné skreslenie obrazov a ich eliminácia. Môže sa tiež vzorkovať signál s neobmedzeným spektrom, ale v tomto prípade dochádza k aliasingu v susedných periódach, zatiaľ čo vysoké frekvencie, vyššie ako Nyquistove frekvencie, budú „maskované“, ako v jednorozmernom prípade, pod nízkymi frekvenciami hlavné obdobie. Efekt „odrazu“ od hraníc periódy dáva ešte komplexnejší obraz vďaka interferencii frekvencií odrážaných v rôznych súradniciach. K podobnému efektu, známemu ako aliasing, dôjde aj pri podvzorkovaní obrázkov. Tento efekt možno obzvlášť zreteľne pozorovať pri ostrých kontrastných zmenách jasu.

Na boj proti takýmto javom sa používa predbežné filtrovanie (antialiasing) - predbežná konvolúcia analógového obrazu s funkciou váženia filtra, ktorá oddeľuje vysokofrekvenčné zložky, ktoré môžu viesť k aliasingu. V dvojrozmernom prípade je filtrovanie opísané nasledovne:

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

Treba poznamenať, že analógové obrazy existujú iba v optickom rozsahu, napríklad vo forme svetelného zobrazenia na obrazovke, fotografickom papieri alebo fotografickom filme, ale nemôžu existovať v pamäti počítača. Fyzický výkon predfiltrovania je teda možný len pri registrácii obrazu jeho rozostrením, čo sa spravidla neuplatňuje. Primárne informácie by mali byť vždy zaznamenané s maximálnou úplnosťou a presnosťou a očistenie primárnych informácií od zbytočných detailov a redundancie je otázkou následného spracovania údajov. Preto vo vzťahu k rovnici 17.2.5 môže byť dvojrozmerným predfiltrovaním vo svojej praktickej implementácii iba filtrovanie obrazov vzorkovaných s veľkou rezervou v hlavnom frekvenčnom rozsahu (s nadmerným rozlíšením) a používa sa spravidla pri prevzorkovaní na väčší krok.napríklad pri kompresii obrázkov. Predfiltrovanie môže byť tiež zabudované do zobrazovacích algoritmov.

Na obr. 3 a nižšie, tabuľka 17.2.1 ukazuje príklady najbežnejších jednorozmerných antialiasingových filtrov. Môžu byť realizované vo forme analógových filtrov a môžu byť použité napríklad pri prenose televíznych riadkov obrazu v analógovej forme cez rádiové kanály (horizontálny antialiasing). V zásade je možné podobnú operáciu vykonať na stĺpcoch (dvojitý - obrázok) a po sčítaní obrázka sa vykoná úplná operácia vyhladzovania, táto metóda však patrí skôr do oblasti špeciálneho vedeckého výskumu.

Tabuľka 17.2.1.

Základné váhové funkcie

Časové okno

Funkcia hmotnosti

Fourierova transformácia

Prirodzené (P)

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

P (w) = 2 t sinc

Bartlett (D)

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

Henninga, Ganna

p(t) = 0,5

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

Hamming

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

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

Carre (2. okno)

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

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

Laplace-Gauss

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

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

Dvojrozmerné analógy jednorozmerných filtrov f1 (x) sú konštruované v dvoch variantoch symetrie: alebo ako funkcia polomeru:

f2 (x, y) = f1 (),

alebo ako dielo:

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

Prvá možnosť je správnejšia, ale druhá má vlastnosť oddeliteľnosti, t. j. dvojrozmernú konvolúciu možno vykonať dvoma jednorozmernými konvolúciami postupne pozdĺž riadkov s f1 (x) a pozdĺž stĺpcov s f1 (y).

Prevzorkovanie obrázkov alebo prevzorkovanie je zmena vzorkovacej frekvencie digitálneho signálu. V prípade digitálnych obrázkov to znamená zmenu veľkosti obrázka.

Existujú rôzne algoritmy na prevzorkovanie obrázkov. Napríklad, ak chcete zväčšiť obrázok 2-krát pomocou metódy bilineárnej interpolácie, medziľahlé stĺpce a riadky sa získajú lineárnou interpoláciou hodnôt susedných stĺpcov a riadkov. Každý bod nového obrázku je možné získať ako vážený súčet väčšieho počtu bodov v pôvodnom obrázku (bikubická a iné typy interpolácie). Prevzorkovanie najvyššej kvality sa dosiahne pri použití algoritmov, ktoré zohľadňujú nielen čas, ale aj frekvenčnú oblasť signálu.

Zvážte algoritmus prevzorkovania s maximálnym zachovaním frekvenčných informácií obrazu. Budeme uvažovať o fungovaní algoritmu na jednorozmerných signáloch, pretože dvojrozmerný obraz možno najskôr roztiahnuť alebo stlačiť horizontálne (po riadkoch) a potom vertikálne (po stĺpcoch) a prevzorkovanie dvojrozmerného obrazu môže byť zredukované na prevzorkovanie jednorozmerných signálov.

Predpokladajme, že máme jednorozmerný signál (obr. 17.2.4), špecifikovaný na intervale 0-T a vzorkovaný s krokom Dt = 1 (N intervalov). Signál je potrebné "natiahnuť" m krát. Spektrum signálu znázornené na obrázku je vypočítané rýchlou Fourierovou transformáciou (FFT, počet vzoriek spektra sa rovná počtu vzoriek signálu) a je uvedené v hlavnom rozsahu FFT (0-2p, Nyquistova frekvencia wN = p / Dt = p, alebo 0,5N podľa číslovania vzoriek spektra s krokom pozdĺž spektra Df = 1 / T alebo Dw = 2p / T). Na vykonanie strečingu existujú 2 kroky.

Prvým krokom je interpolácia s nulami, ktorá zväčší dĺžku signálu m-krát. (obr. 17.2.5). Všetky vzorky pôvodného signálu je potrebné vynásobiť m, a potom za každú vzorku signálu vložiť m-1 nulovú hodnotu. Na intervale 0-T, ktorého hodnota zostáva nezmenená, sa teraz nachádza m krát viac vzorkovacích intervalov (mN) a nový krok vzorkovania sa bude rovnať Dx = Dt / m. V súlade s tým je nová Nyquistova frekvencia pre tento signál mp / Dt = mp. Fyzická veľkosť kroku spektra vo frekvenčných jednotkách je však inverzná k fyzickej hodnote intervalu nastavenia signálu (Df = 1 / T), a preto FFT z mN bodov signálu vypočíta mN bodov spektra v hlavný FFT rozsah 0-14pm s krokom spektra pôvodného signálu, v ktorom bude prítomných m-periód spektra pôvodného signálu (jedna hlavná a m-1 strana).

Druhým krokom je odfiltrovanie postranných pásiem spektra pomocou dolnopriepustného filtra buď v časovej doméne alebo v spektrálnej doméne. Na obr. 17.2.6 sa spektrum vyčistilo a vykonala sa inverzná Fourierova transformácia, v dôsledku čoho sa získal signál m-krát dlhší ako pôvodný pri plnom zachovaní všetkých frekvenčných informácií.

Podobným princípom je možné zostrojiť algoritmus kompresie (decimácie) signálu koeficientom n, pričom poradie krokov je obrátené. Keď je signál komprimovaný, krok vzorkovania signálu sa zvyšuje a podľa toho sa znižuje Nyquistova frekvencia, zatiaľ čo hraničné vysoké frekvencie (šum a nevýznamné vysokofrekvenčné časti spektra signálu) sa budú odrážať od hranice hlavného signálu. rozsah a pridaný k hlavným informáciám, čím vzniká skreslenie. Aby sa tento jav eliminoval, signál je najprv filtrovaný dolnou priepustou s medznou frekvenciou rovnou novej Nyquistovej frekvencii (antialiasing) a až potom je signál zdecimovaný decimáciou.

Pri prevzorkovaní iba v časovej oblasti sa algoritmy naťahovania a kompresie spravidla kombinujú do jedného sekvenčného procesu so špecifikovaním zmeny v kroku vzorkovania vo forme pomeru m / n, čo umožňuje nastaviť celé číslo. hodnoty m a n so zlomkovými hodnotami zmeny v kroku vzorkovania. To výrazne zjednodušuje algoritmy a zvyšuje efektivitu a kvalitu ich práce. Takže napríklad, keď sa signál natiahne 1,5-krát pri m / n = 3/2, signál sa najskôr natiahne 3-krát (jednoduché a rovnomerné pridanie núl ku všetkým vzorkám, potom sa vykoná dolnopriepustná filtrácia, po ktorej signál je zdecimovaný dvakrát. Antialiasingový filter nie je potrebný, pretože jeho medzná frekvencia je pokrytá frekvenciou prvého dolnopriepustného filtra. Pri reverznej kompresii (napríklad m/n = 2/3), iba antialiasingový filter sa používa rovnakým spôsobom.

17.3. filtrovanie obrázkov

Filtrovanie obrázkov sa chápe ako operácia, ktorej výsledkom je obrázok rovnakej veľkosti, získaný z pôvodného podľa určitých pravidiel. Zvyčajne je intenzita (farba) každého pixelu výsledného obrázku určená intenzitami (farbami) pixelov nachádzajúcich sa v niektorej z jeho blízkosti na pôvodnom obrázku.

Pravidlá filtrovania môžu byť veľmi odlišné. Filtrovanie obrazu je jednou z najzákladnejších operácií počítačového videnia, rozpoznávania vzorov a spracovania obrazu. Práca drvivej väčšiny metód spracovania obrazu začína jedným alebo druhým filtrovaním zdrojových obrázkov.

Linkové filtre majú veľmi jednoduchý matematický popis. Budeme predpokladať, že je daný pôvodný obrázok A v odtieňoch sivej a označíme intenzity jeho pixelov A (x, y). Lineárny filter je definovaný reálnou hodnotou h (jadro filtra) definovanou na rastri. Samotné filtrovanie sa vykonáva pomocou operácie diskrétnej konvolúcie (vážený súčet):

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

Výsledkom je obrázok B. Zvyčajne je jadro filtra nenulové iba v niektorom okolí N bodu (0, 0). Mimo tohto okolia je h (i, j) nulové alebo veľmi blízko k nemu a možno ho zanedbať. Sčítanie sa vykonáva cez (i, j) Î N a hodnota každého pixelu B (x, y) je určená pixelmi obrázka A, ktoré ležia v okne N so stredom v bode (x, y ) (označenie - množina N (x, y) ). Jadro filtra definované v pravouhlom susedstve N možno vidieť ako maticu m-x-n, kde dĺžky strán sú nepárne čísla. Keď špecifikujete jadro ako maticu, malo by byť vycentrované. Ak je pixel (x, y) v blízkosti okrajov obrázka, potom súradnice A (x-i, y-j) pre určité (i, j) môžu zodpovedať neexistujúcim pixelom A mimo obrázka. Tento problém možno vyriešiť niekoľkými spôsobmi.

Nefiltrujte tieto pixely orezaním okrajov obrázka B alebo použitím pôvodných hodnôt obrázka A na ich hodnoty.

Nezahŕňajte chýbajúci pixel do súčtu tak, že jeho váhu h (i, j) rovnomerne rozdelíte medzi ostatné pixely v okolí N (x, y).

Predefinujte hodnoty pixelov mimo hraníc obrázka pomocou extrapolácie.

Predefinujte hodnoty pixelov mimo hraníc obrázka pomocou zrkadlového pokračovania.

Výber metódy sa robí s prihliadnutím na špecifické vlastnosti filtra a obrazu.

Vyhladzovacie filtre. Najjednoduchší obdĺžnikový vyhladzovací filter s polomerom r je špecifikovaný pomocou matice veľkosti (2r + 1) × (2r + 1), ktorej všetky hodnoty sa rovnajú 1 / (2r + 1) 2 a súčtu hodnoty sa rovnajú jednej. Je to dvojrozmerný analóg nízkofrekvenčného jednorozmerného filtra v tvare U s kĺzavým priemerom. Pri filtrovaní s takýmto jadrom sa hodnota pixelu nahradí priemernou hodnotou pixelu v štvorci so stranou 2r + 1 okolo. Príklad masky filtra 3 × 3:

.

Jednou z aplikácií filtrov je redukcia šumu. Šum sa mení nezávisle od pixelu k pixelu a za predpokladu, že matematické očakávanie hodnoty šumu je rovné nule, šum susedných pixelov počas sčítania sa bude navzájom kompenzovať. Čím väčšie je okno filtrovania, tým menšia bude priemerná intenzita šumu, čo však bude mať za následok aj zodpovedajúce rozmazanie významných detailov obrazu. Obraz bieleho bodu na čiernom pozadí počas filtrácie (reakcia na jeden impulz) bude rovnomerne šedý štvorec.

Redukcia šumu pomocou obdĺžnikového filtra má značnú nevýhodu: všetky pixely v maske filtra v akejkoľvek vzdialenosti od spracovaného majú rovnaký vplyv na výsledok. O niečo lepší výsledok sa dosiahne pri úprave filtra so zvýšením hmotnosti stredového bodu:

.

Efektívnejšiu redukciu šumu je možné dosiahnuť, ak bude vplyv pixelov na výsledok klesať s rastúcou vzdialenosťou od spracovávaného. Túto vlastnosť má Gaussov filter s jadrom: h (i, j) = (1 / 2ps2) exp (- (i2 + j2) / 2s2). Gaussov filter má nenulové jadro nekonečnej veľkosti. Hodnota jadra filtra však veľmi rýchlo klesá na n), a preto sa v praxi môžeme obmedziť na konvolúciu s malým oknom okolo (0, 0), napríklad ak vezmeme polomer okna rovný 3σ.

Gaussovské filtrovanie je tiež anti-aliasing. Na rozdiel od obdĺžnikového filtra však bude obraz bodu s Gaussovým filtrovaním symetrickým rozmazaným bodom s poklesom jasu od stredu k okrajom. Mieru rozmazania obrázkov určuje parameter σ.

Filtre zvyšujúce kontrast ... Zatiaľ čo antialiasingové filtre znižujú lokálny kontrast obrazu jeho rozmazaním, filtre zvyšujúce kontrast vytvárajú opačný efekt a sú to v podstate vysoko priestorové frekvenčné filtre. Jadro filtra na zvýšenie kontrastu v bode (0, 0) má hodnotu väčšiu ako 1, pričom celkový súčet hodnôt sa rovná 1. Filtre na zvýšenie kontrastu sú napríklad filtre s jadrom špecifikovaným maticami:

. .

Príklad použitia filtra je na obr. 17.3.1. Efekt zvýšenia kontrastu je dosiahnutý tým, že filter zvýrazňuje rozdiel medzi intenzitami susedných pixelov, pričom tieto intenzity od seba navzájom odstraňuje. Tento efekt bude tým silnejší, čím väčšia bude hodnota centrálneho člena jadra. Charakteristickým artefaktom lineárneho filtrovania zosilňujúceho kontrast je viditeľné svetlo a menej nápadné tmavé halo okolo okrajov.

Diferenčné filtre Sú lineárne filtre definované diskrétnymi aproximáciami diferenciálnych operátorov (metódou konečných diferencií). Tieto filtre hrajú zásadnú úlohu v mnohých aplikáciách, napríklad pri úlohách hľadania hraníc v obraze.

Najjednoduchším diferenciálnym operátorom je derivácia vzhľadom na x-ovú súradnicu d / dx, ktorá je definovaná pre spojité funkcie. Bežné varianty podobných operátorov pre diskrétne obrázky sú filtre Prewitt a Sobel:

. .

Filtre, ktoré aproximujú operátor derivácie vzhľadom na y-ovú súradnicu d / dy, sa získajú transponovaním matíc.

Najjednoduchší algoritmus na výpočet gradientovej normy z troch susedných bodov:

G (x, y) = .

Používa sa aj zjednodušený vzorec výpočtu:

Výpočet normy gradientu zo štyroch susedných bodov (operátor Roberts):

Sobelov algoritmus používa osem hodnôt jasu v blízkosti stredového bodu:

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

Gxx, y = -,

Gyx, y = -.

Spolu s presnejším určením gradientovej normy umožňuje Sobelov algoritmus určiť aj smer gradientového vektora v rovine analýzy obrazu vo forme uhla j medzi gradientom vektora a smerom maticových riadkov:

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

Na rozdiel od antialiasingových a kontrastných filtrov, ktoré nemenia priemernú intenzitu obrazu, sa v dôsledku použitia rozdielových operátorov spravidla získa obraz s priemernou hodnotou pixelu blízkou nule. Vertikálne okraje (hranice) pôvodného obrázku zodpovedajú pixelom s veľkými absolútnymi hodnotami vo výslednom obrázku. Preto sa delta filtre nazývajú aj hraničné výberové filtre.

Podobne ako vyššie uvedené filtre, pomocou metódy konečných rozdielov môžete zostaviť filtre pre iné diferenciálne operátory. Najmä Laplaceov diferenciálny operátor (Laplacián) D = 𝝏2 / 𝝏x2 + 𝝏2 / 𝝏y2, ktorý je dôležitý pre mnohé aplikácie, možno aproximovať pre diskrétne obrázky pomocou filtra s maticou (jedna z možností):

.

Ako je vidieť na obr. 17.3.2, v dôsledku použitia diskrétneho Laplacianu, veľké absolútne hodnoty zodpovedajú vertikálnym aj horizontálnym rozdielom v jase. Filter je teda filter, ktorý nájde hranice akejkoľvek orientácie. Nájdenie hraníc na obrázku je možné vykonať použitím tohto filtra a zobratím všetkých pixelov, ktorých veľkosť presahuje určitú hranicu.

Tento algoritmus má však značné nevýhody. Hlavnou je neistota pri výbere prahovej hodnoty. Pre rôzne časti obrazu sa zvyčajne získa prijateľný výsledok pri výrazne odlišných prahových hodnotách. Rozdielové filtre sú navyše veľmi citlivé na obrazový šum.

Dvojrozmerná cyklická konvolúcia. Pokiaľ ide o jednorozmerné signály, dvojrozmernú konvolúciu možno vykonať v doméne priestorových frekvencií pomocou algoritmov rýchlej Fourierovej transformácie a znásobením dvojrozmerných spektier obrazu a jadra filtra. Je tiež cyklický a zvyčajne sa vykonáva v posuvnej verzii. Berúc do úvahy cyklickosť, na výpočet konštantného vzoru spektra jadra sa rozmery masky filtra jadra zdvojnásobia pozdĺž osí a doplnia sa nulami a rovnaké veľkosti masky sa použijú na výber okna posúvajúceho sa po obrázku v rámci pri ktorej sa FFT vykonáva. Implementácia FIR filtra s FFT je obzvlášť účinná, ak má filter veľkú referenčnú plochu.

Nelineárne filtre ... V digitálnom spracovaní obrazu sú nelineárne algoritmy založené na štatistike poradia široko používané na obnovu obrázkov poškodených rôznymi modelmi šumu. Umožňujú vyhnúť sa dodatočnému skresleniu obrazu pri odstraňovaní šumu, ako aj výrazne zlepšiť výsledky filtrovania na obrázkoch s vysokým stupňom šumu.

Predstavme si koncept M-okolia obrazového prvku A (x, y), ktorý je pre toto okolie ústredný. V najjednoduchšom prípade M-okolie obsahuje N-pixelov - bodov spadajúcich do masky filtra, vrátane (alebo nezahŕňajúceho) centrálneho. Hodnoty týchto N-prvkov môžu byť usporiadané vo variačnom rade V (r), usporiadané vzostupne (alebo zostupne) a určité momenty tohto radu môžu byť vypočítané, napríklad priemerná hodnota jasu mN a rozptyl dN. Výpočet výstupnej hodnoty filtra, ktorý nahrádza strednú vzorku, sa vykonáva pomocou vzorca:

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

Hodnota koeficientu a = je spojená s určitým vzťahom so štatistikou počtov v okne filtra, napríklad:

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

kde dS je rozptyl šumu v obraze ako celku alebo v S-okolí pre S> M a MÎS, k je konštanta spoľahlivosti rozptylu S-okolia. Ako vyplýva z tohto vzorca, pre k = 1 a dN platí "dS" a" 0,5 a hodnota B (x, y) = (A (x, y) + mN) / 2, to znamená, že sa sčítajú rovnako z hodnôt centrálnej referencie a priemernej hodnoty pixelov jej M-okolia. S nárastom hodnôt dN sa zvyšuje príspevok centrálnej referenčnej hodnoty k výsledku, s poklesom hodnota mN. Váhu príspevku priemerných hodnôt za M-okolie je možné zmeniť o hodnotu koeficientu k.

Voľba štatistickej funkcie a povaha závislosti koeficientu a od nej môže byť značne rôznorodá (napríklad podľa rozptylov rozdielov vo vzorkách v M susedstve s centrálnou vzorkou) a závisí od oboch. na veľkosti otvoru filtra a na povahe obrázkov a šumu. Hodnota koeficientu a by mala v podstate špecifikovať stupeň poškodenia centrálnej referencie a podľa toho aj funkciu zapožičania vzoriek z M-okolia na jej opravu.

Najjednoduchšie a najbežnejšie typy nelineárnych filtrov na spracovanie obrazu sú prahové a mediánové filtre.

Prahové filtrovanie je nastavená napríklad takto:

B (x, y) =

Veľkosť p je prah filtrovania. Ak hodnota stredu filtra prekročí priemernú hodnotu vzoriek mN v jeho M-okolí o hodnotu prahu, potom je nahradená priemernou hodnotou. Prahová hodnota môže byť buď konštantná alebo funkčne závislá od hodnoty stredového bodu.

Stredné filtrovanie je definovaný nasledovne:

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

to znamená, že výsledkom filtrovania je stredná hodnota pixelov okolia, ktorých tvar je určený maskou filtra. Mediánové filtrovanie dokáže efektívne odstrániť šum z obrázka, ktorý nezávisle ovplyvňuje jednotlivé pixely. Takýmito šummi sú napríklad „rozbité“ pixely pri digitálnej fotografii, „snežný“ šum, kedy sú niektoré pixely nahradené pixelmi s maximálnou intenzitou atď. Výhodou mediánového filtrovania je, že „horúci“ pixel na tmavom pozadí budú nahradené tmavými a nie "rozmazané" v okolí.

Mediánové filtrovanie má výraznú selektivitu vzhľadom na prvky poľa, ktoré sú nemonotónnou zložkou postupnosti čísel v otvore filtra. Mediánový filter zároveň ponecháva monotónnu zložku sekvencie nezmenenú. Vďaka tejto funkcii stredné filtre s optimálne zvolenou clonou zachovávajú ostré hrany objektov bez skreslenia, potláčajú nekorelovaný alebo slabo korelovaný šum a malé detaily.

Extrémne filtre sú určené pravidlami:

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

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

to znamená, že výsledkom filtra sú minimálne a maximálne hodnoty pixelov v maske filtra. Takéto filtre sa spravidla používajú pre binárne obrázky.

17.4. KOMPRESIA OBRAZU

Typický obrázok s rozlíšením rádovo 3000 × 2000 pri 24 bitoch na pixel pre farbu je 17 megabajtov. Pri profesionálnych zariadeniach môže byť veľkosť výsledného obrazového rastra oveľa väčšia, farebná hĺbka je až 48 bitov na pixel a veľkosť jedného obrázka môže byť aj viac ako 200 megabajtov. Preto sú algoritmy kompresie obrazu veľmi dôležité na zníženie množstva údajov reprezentujúcich obrázok.

Existujú dve hlavné triedy algoritmov:

1. Bezstratová kompresia, ak existuje inverzný algoritmus A-1 taký, že pre akýkoľvek h-obraz A [h] = h1 máme A-1 = h. Bezstratová kompresia sa používa v takých grafických obrazových formátoch ako sú: GIF, PCX, PNG, TGA, TIFF a využíva sa pri spracovaní obzvlášť cenných primárnych informácií (lekárske snímky, letecké a vesmírne snímky a pod.), kedy aj najmenšie skreslenie nežiaduce

2. Kompresia so stratou (stratová kompresia), ak neposkytuje možnosť presnej obnovy pôvodného obrazu. Algoritmus na približnú obnovu obrazu spárovaný s A bude označený ako A *. Pár (A, A *) je vybraný tak, aby poskytoval vysoký kompresný pomer pri zachovaní vizuálnej kvality. Stratová kompresia sa používa v obrazových formátoch: JPEG, JPEG2000 atď.

Všetky algoritmy a príkazy sa týkajú obrázkov aj ľubovoľných sekvencií, ktorých prvky môžu nadobudnúť konečný počet hodnôt. Treba mať na pamäti, že neexistujú žiadne ideálne algoritmy, ktoré by komprimovali akýkoľvek súbor údajov bez straty.

Algoritmy kódovania dĺžky opakovania (RLE). sú založené na jednoduchom princípe: nahradenie opakujúcich sa skupín prvkov pôvodnej postupnosti dvojicou (množstvo, prvok), alebo len kvantitou.

Bitová úroveň. Pôvodné dáta budeme uvažovať na úrovni sekvencie bitov, napríklad reprezentujúcich čiernobiely obrázok. Zvyčajne je za sebou niekoľko 0 alebo 1 a môžete zakódovať počet po sebe idúcich rovnakých číslic. Ale počet opakovaní musí byť tiež zakódovaný v bitoch. Môžeme predpokladať, že každý počet opakovaní sa mení od 0 do 7 (3-bitový kód), pričom sa strieda sekvencia kódov jednotiek a núl. Postupnosť môžeme prirovnať napríklad k číslam 7 0 4, teda 7 jednotiek, 0 núl, 4 jednotky, pričom máme nový rok - Čím dlhšia je dĺžka postupností identických bitov, tým väčší efekt. Takže sekvencia 21 jednotiek, 21 núl, 3 jednotiek a 7 núl je zakódovaná nasledovne: čiže z pôvodnej sekvencie s dĺžkou 51 bitov máme sekvenciu s dĺžkou 36 bitov.

Úroveň bajtov. Predpokladajme, že na vstup je privedený obrázok v odtieňoch sivej, kde je 1 bajt pridelený hodnote intenzity pixelov, pričom sa výrazne zníži očakávanie dlhého reťazca identických bitov.

Vstupný tok rozdelíme na bajty (kód od 0 do 255) a opakované bajty zakódujeme do párov (číslo, písmeno). Jeden bajt môže zostať nezmenený. Takže bajty AABBBCDAA sú zakódované (2A) (3B) (C) (D) (2A).

Modifikácie tohto algoritmu sa však samy osebe používajú len zriedka (napríklad vo formáte PCX), pretože podtrieda sekvencií, na ktoré je algoritmus účinný, je relatívne úzka. Najčastejšie sa používajú ako jeden zo stupňov kompresného potrubia.

Slovníkové algoritmy namiesto kódovania iba jedného prvku vstupnej sekvencie sa zakóduje reťazec prvkov. V tomto prípade sa na kódovanie nových používa slovník reťazcov (vytvorený zo vstupnej sekvencie).

Algoritmus LZ77 bol jedným z prvých, ktorý používal slovník. Posledných N už zakódovaných prvkov sekvencie sa používa ako slovník. Počas procesu kompresie sa podsekvenčný slovník „skĺzne“ cez prichádzajúcu sekvenciu. Reťazec prvkov na výstupe je zakódovaný nasledovne: pozícia vyhovujúcej časti spracovaného reťazca prvkov v slovníku - posun (vzhľadom k aktuálnej polohe), dĺžka, prvý prvok nasledujúci po zhodnej časti reťazca. Dĺžka zápalkového reťazca je zhora ohraničená číslom n. Úlohou je teda nájsť najväčší reťazec zo slovníka, ktorý zodpovedá spracovávanej sekvencii. Ak neexistujú žiadne zhody, zaznamená sa posun nuly, jedna dĺžka a prvý prvok nekódovanej sekvencie.

Vyššie opísaná schéma kódovania vedie ku koncepcii posuvného okna, ktoré pozostáva z dvoch častí:

Podsekvencia už zakódovaných prvkov dĺžky N-slovník - vyhľadávací buffer;

Podsekvencia dĺžky n z reťazca prvkov, pre ktoré sa uskutoční pokus o nájdenie zhody, je dopredná vyrovnávacia pamäť.

Dekódovanie komprimovanej sekvencie je dešifrovaním zaznamenaných kódov: ku každému záznamu sa priradí reťazec zo slovníka a explicitne zapísaný prvok, po ktorom sa slovník posunie. Slovník sa znova vytvorí pri spustení dekódovacieho algoritmu.

Tento algoritmus je predchodcom celej rodiny algoritmov. Medzi jeho výhody patrí slušný kompresný pomer na dosť veľkých sekvenciách a rýchla dekompresia. Medzi nevýhody patrí nízka rýchlosť kompresie a nižší kompresný pomer ako pri alternatívnych algoritmoch.

Algoritmus LZW. Slovník v tomto algoritme je tabuľka, ktorá sa pri behu algoritmu naplní reťazcami prvkov. Proces kompresie hľadá najdlhší reťazec už zapísaný do slovníka. Zakaždým, keď sa v slovníku nenájde nový reťazec prvkov, pridá sa do slovníka a zapíše sa kód reťazca. Teoreticky neexistuje žiadne obmedzenie veľkosti tabuľky, ale obmedzenie veľkosti vám umožňuje zlepšiť kompresný pomer, pretože sa hromadia zbytočné (nenájdené) reťazce. Čím viac záznamov tabuľka obsahuje, tým viac informácií je potrebné prideliť na uloženie kódov.

Dekódovanie spočíva v priamom dešifrovaní kódov, to znamená vo vytvorení slovníka a výstupe zodpovedajúcich reťazcov. Slovník sa inicializuje rovnakým spôsobom ako v kódovači. Medzi výhody algoritmu patrí vysoký kompresný pomer a pomerne vysoká rýchlosť kompresie aj dekódovania.

Entropické kódovacie algoritmy ku každému prvku sekvencie vložte kód tak, aby jeho dĺžka zodpovedala pravdepodobnosti výskytu prvku. Kompresia nastáva nahradením prvkov pôvodnej sekvencie, ktoré majú rovnakú dĺžku (každý prvok má rovnaký počet bitov) prvkami rôznych dĺžok úmerných zápornému logaritmu pravdepodobnosti, tj prvky, ktoré sú bežnejšie ako ostatné, majú kratšia dĺžka kódu.

Huffmanov algoritmus používa prefixový kód s premenlivou dĺžkou so špeciálnou vlastnosťou: kratšie kódy sa nezhodujú s predponou (počiatočnou časťou) dlhších. Tento kód umožňuje individuálne kódovanie. Proces kompresie spočíva v nahradení každého prvku vstupnej sekvencie jeho kódom. Konštrukcia súboru kódov sa zvyčajne uskutočňuje pomocou tzv kódové stromy.

Huffmanov algoritmus je dvojpriechodový. Prvým prechodom cez obrázok sa vytvorí tabuľka hmotností prvkov a pri druhom dôjde ku kódovaniu. Existujú implementácie algoritmu pevnej tabuľky. Často sa stáva, že predchádzajúce rozdelenie pravdepodobnosti prvkov abecedy nie je známe, pretože celá postupnosť nie je dostupná naraz a používajú sa adaptívne modifikácie Huffmanovho algoritmu.

Stratová kompresia obrazu. Množstvo informácií potrebných na uloženie obrázkov je zvyčajne veľké. Klasické algoritmy, ktoré sú všeobecnými algoritmami, neberú do úvahy, že komprimovaná informácia je obraz - dvojrozmerný objekt, a neposkytujú dostatočný kompresný pomer.

Stratová kompresia je založená na vlastnostiach ľudského vnímania obrazu: najvyššia citlivosť v určitom rozsahu farebných vlnových dĺžok, schopnosť vnímať obraz ako celok bez toho, aby sme zaznamenali malé skreslenia. Hlavnou triedou obrázkov, na ktoré sa zameriavajú stratové kompresné algoritmy, sú fotografie, obrázky s plynulými prechodmi farieb.

Odhad straty obrazu. Existuje mnoho opatrení na posúdenie straty obrázkov po ich obnovení (dekódovaní) z komprimovaných obrázkov, ale pre všetky z nich je možné vybrať dva obrázky tak, aby miera ich rozdielu bola dostatočne veľká, ale rozdiely budú takmer nepostrehnuteľné. oko. A naopak - môžete vyzdvihnúť obrázky, ktoré sa na pohľad veľmi líšia, ale majú malý rozdiel.

Štandardná numerická miera straty je zvyčajne štandardná odchýlka (RMS) hodnôt pixelov rekonštruovaného obrazu od pôvodného. Najdôležitejším „meradlom“ odhadu straty je však názor pozorovateľa. Čím menej rozdielov (alebo lepšie ich absencia) pozorovateľ zaznamená, tým kvalitnejší je kompresný algoritmus. Algoritmy stratovej kompresie často dávajú používateľovi možnosť vybrať si množstvo „stratených“ údajov, to znamená právo vybrať si medzi kvalitou a veľkosťou komprimovaného obrázka. Prirodzene, čím lepšia vizuálna kvalita s vyšším kompresným pomerom, tým lepší je algoritmus.

Fourierova transformácia. Vo všeobecnosti možno obraz považovať za funkciu dvoch premenných, definovaných v bodoch konečného rastra. Množina takýchto funkcií v bodoch pevného konečného rastra tvorí konečnorozmerný euklidovský priestor a možno na ne aplikovať diskrétnu Fourierovu transformáciu, teda spektrálnu reprezentáciu obrazu. To poskytuje:

Nekorelácia a nezávislosť spektrálnych koeficientov, to znamená, že presnosť zobrazenia jedného koeficientu nezávisí od žiadneho iného.

- Energetické zhutnenie. Transformácia zachováva základné informácie v malom počte koeficientov. Táto vlastnosť je najvýraznejšia pri fotorealistických obrázkoch.

Koeficienty spektrálneho zobrazenia sú amplitúdy priestorových frekvencií obrazu. V prípade obrázkov s plynulými prechodmi je väčšina informácií obsiahnutá v nízkofrekvenčnom spektre.

Kompresný algoritmus použitý vo formáte JPEG je založený na použití diskrétnej kosínusovej Fourierovej transformácie. Schéma kompresie v algoritme je potrubie, kde táto transformácia je len jednou z fáz, ale jednou z hlavných. Algoritmus obsahuje nasledujúce základné operácie:

1. Preklad do farebného priestoru YCbCr. Y je tu jasová zložka, Cb a Cr sú chromatické zložky. Ľudské oko je citlivejšie na jas ako na farbu. Preto je dôležitejšie zachovať väčšiu presnosť pri prenose Y ako pri prenose Cb a Cr.

2. Diskrétna kosínusová transformácia (DCT). Obraz je rozdelený na bloky 8 × 8. Na každý blok je aplikovaná diskrétna kosínusová transformácia (zvlášť pre zložky Y, Cb a Cr).

3. Redukcia vysokofrekvenčných zložiek v matriciach DCT. Ľudské oko prakticky nezaznamená zmeny vo vysokofrekvenčných zložkách, preto je možné koeficienty zodpovedné za vysoké frekvencie uložiť s menšou presnosťou.

4. Kľukaté usporiadanie matíc. Toto je špeciálny maticový prechod na získanie jednorozmernej sekvencie. Najprv príde prvok T00, potom T01, T10, T1 Navyše pre typické fotorealistické obrázky budú najprv nenulové koeficienty zodpovedajúce nízkofrekvenčným zložkám a potom - veľa núl (vysokofrekvenčné zložky).

5. Kompresia najprv metódou RLE a potom Huffmanovou metódou.

Algoritmus obnovy obrazu funguje v opačnom poradí. Kompresný pomer od 5 do 100 alebo viackrát. Zároveň zostáva vizuálna kvalita väčšiny fotorealistických obrázkov na dobrej úrovni pri 15-násobnej kompresii. Algoritmus a formát sú najbežnejšie na prenos a ukladanie plnofarebných obrázkov.

Waveletová transformácia signály sú zovšeobecnením klasickej Fourierovej transformácie. Výraz "vlnka" v preklade z angličtiny znamená "malá (krátka) vlna". Vlnky sú zovšeobecneným názvom pre rodiny matematických funkcií určitého tvaru, ktoré sú lokálne v čase a frekvencii a v ktorých sa všetky funkcie získavajú z jednej základnej pomocou jej posunov a natiahnutí pozdĺž časovej osi.

V stratových kompresných algoritmoch sú spravidla zachované všetky operácie kompresného potrubia, pričom sa diskrétna Fourierova transformácia nahrádza diskrétnou vlnkovou transformáciou. Vlnkové transformácie majú veľmi dobrú frekvenčno-priestorovú lokalizáciu a v tomto ukazovateli sú lepšie ako tradičné Fourierove transformácie. To umožňuje použiť silnejšiu kvantizáciu, zlepšujúcu vlastnosti sekvencie pre následnú kompresiu. Algoritmy kompresie obrazu založené na tejto transformácii pri rovnakom kompresnom pomere vykazujú lepšie výsledky pri zachovaní kvality obrazu.

literatúre

46. ​​​​et al. Rýchle algoritmy v digitálnom spracovaní obrazu. - M .: Rádio a komunikácia, 1984 .-- 224 s.

47. Spracovanie obrazu Soifer. Časť 2. Metódy a algoritmy. - Sorosov vzdelávací časopis číslo 3, 1996.

48., Šum chrupavky z obrázkov založených na nelineárnych algoritmoch s použitím štatistiky poradia. - Jaroslavľská štátna univerzita, 2007.

49. Andreevské televízne sledovacie systémy. Časť II. Aritmetika - logické základy a algoritmy. Návod. - SPb: SPb, GUITMO, 2005 .-- 88s.

51. Úvod do číslicového spracovania signálov (Matematické základy) .- M .: Moskovská štátna univerzita, Laboratórium počítačovej grafiky a multimédií, 2002. - http: // pv. ***** / dsp / dspcourse. pdf, http: // dsp-book. ***** / dspcourse. djvu, http: // geogin. ***** / archív / dsp / dsp4.pdf.

1i. a iné algoritmické základy rastrovej grafiky. - Internetová univerzita informačných technológií. - http://www. ***** / goto / kurz / rastrgraph /

2i. Lukin - elektronické systémy: Poznámky z prednášky. ITMO, 2004. - Petrohrad, MFF ITMO, 2004. - http: // iff. ***** / kons / oes / KL. htm

O zaznamenaných chybách a návrhoch na doplnenie: ***** @ *** ru.

Autorské práva© 2008DavydovA.V.

Laboratórna práca č.1

Algoritmy spracovania obrazu

Konvolučná operácia

Konvolúcia je veľmi rozšírený algoritmus, ktorý možno použiť ako na predspracovanie obrazu, tak aj na rozpoznávanie a identifikáciu objektov. Nech je obraz špecifikovaný dvojrozmernou maticou jasu F" a impulzná odozva matice H... Matematická konvolúcia matice F s jadrom H možno určiť podľa nasledujúceho vzorca:

kde M2xN2 - veľkosť matice konvolučného jadra. Veľkosť matice F sa rovná (M1 + M2-1) x (N1 + N2-1), kde M1xN1 - veľkosť pôvodnej matrice F" ... Matrix F sa získava z pôvodného pridávaním prvkov na okraje matice podľa nejakého pravidla, aby sa dostala na požadovanú veľkosť. Pôvodná matica je zvyčajne na okrajoch vyplnená nulami na polovicu šírky matice H doľava a doprava, respektíve polovicu výšky hore a to isté dole. Potom veľkosť výslednej matice R bude rovnaký ako matica F" .

Konvolúcia môže byť vypočítaná priamo "prebiehaním" jednej matice cez druhú, ako už bolo uvedené vyššie. Na obr. 1 je znázornená schéma na výpočet konvolúcie (veľkosť matice masky sa rovná 3x3). Na konvolučný operátor sa možno pozerať ako na maticu koeficientov (masiek), ktoré sa po prvkoch vynásobia vybraným fragmentom obrázka a potom sa sčítajú, aby sa získala nová hodnota prvku filtrovaného obrázka. Táto matica môže mať akúkoľvek veľkosť, nie nevyhnutne štvorcovú.

Ryža. 1. Implementácia konvolučnej operácie.

Cvičenie

    Implementujte algoritmus, ktorý vykonáva operáciu konvolúcie pôvodného obrazu s maticovou maskou.

    Veľkosť a typ maticovej masky nastavuje používateľ.

    Na implementáciu rôznych algoritmov spracovania obrazu použite nasledujúce matice masiek:

    • na vyhladenie a potlačenie šumu v obraze použite maticovú masku 3x3 v nasledujúcom tvare:

    na zvýraznenie obrysov sa používajú maticové masky nasledujúceho typu:

1/9*

    na výber obrysov sa používa maska ​​nasledujúceho typu:

4. Implementujte stredný filter, ktorý sa používa na potlačenie bodového a impulzného šumu. Pixel obrázka a jeho susedia v uvažovanej oblasti sú zoradené do radu variácií (vo vzostupných alebo klesajúcich hodnotách pixelov) a stredná hodnota tohto radu variácií sa vyberie ako nová hodnota pixelov. Výsledkom spriemerovaného filtrovania je, že akýkoľvek náhodný šum obsiahnutý v obrázku bude účinne eliminovaný. Je to preto, že každá náhodná náhla zmena intenzity pixelov v rámci oblasti záujmu bude triedená, t.j. bude umiestnená buď navrchu alebo na spodok zoradených hodnôt tejto oblasti a nebude sa počítať, pretože za novú hodnotu prvkov sa vždy berie stredová hodnota.

5. Implementujte embosovací algoritmus. Razenie sa vykonáva rovnakým spôsobom ako pri algoritmoch spriemerovania alebo podčiarknutia obrysu. Každý pixel na obrázku je spracovaný pomocou raziacej matrice 3x3. Napríklad nasledujúca maticová maska ​​môže byť použitá ako raziace jadro:

Po spracovaní hodnoty pixelov embosovacím jadrom sa k nej pridá 128. Tým sa zmení hodnota pixelu pozadia na stredne šedú (červená = 128, zelená = 128, modrá = 128). Čiastky nad 255 je možné zaokrúhliť na 255.

V reliéfnej verzii obrazu sa zdá, že obrysy sú vytlačené nad povrch. Smer osvetlenia obrazu je možné zmeniť zmenou pozícií 1 a -1 v jadre. Ak sú napríklad hodnoty 1 a -1 zamenené, smer osvetlenia sa obráti.

6. Vodné zafarbenie obrazu. Akvarelový filter transformuje obrázok a po spracovaní vyzerá ako namaľovaný akvarelom:

    Prvým krokom pri aplikácii akvarelového filtra je vyhladenie farieb na obrázku. Jednou z metód antialiasingu je použitie stredného priemeru farby v každom bode. Farebná hodnota každého pixelu a jeho 24 susedov (veľkosť matice-masky je 5x5) sú usporiadané v sérii variácií v zostupnom alebo vzostupnom poradí. Stredná (trinásta) hodnota farby v sérii variácií je priradená strednému pixelu.

    po vyhladení farieb je potrebné použiť podčiarkovací filter na zvýraznenie hraníc farebných prechodov.

Reprezentácia obrázkov

Existujú dva hlavné typy reprezentácií obrázkov - vektorové a rastrové.

Vo vektorovej reprezentácii je obraz opísaný množinou čiar (vektorov), ktoré obsahujú súradnice začiatočného a koncového bodu, zakrivenie čiar a ďalšie geometrické charakteristiky, popísané sú aj pravidlá konštrukcie rôznych plôch a farebné charakteristiky. Inými slovami, pre rastrovú reprezentáciu je potrebné vytvoriť určitý matematický model. Preto sa vektorová reprezentácia používa hlavne na riešenie problémov syntézy obrazu. Hoci niektoré algoritmy na rozpoznávanie obrázkov pre svoju prácu vyžadujú presne vektorovú reprezentáciu, ktorú je potrebné získať z pôvodného obrázka.

Rastrový obrázok je jedna alebo viac matíc, ktoré opisujú priestorové rozloženie charakteristík obrazu na určitej karteziánskej súradnicovej sieti. V tomto prípade je obrázok zostavený z mnohých bodov a má rastrovú štruktúru. Hlavným prvkom znázornenia rastrového obrázku je pixel (skratka slovného spojenia „picture elements“ – obrazové prvky), ktorý má súradnice v súradnicovom systéme rastra a niektoré atribúty (farba, jas, priehľadnosť atď.). Počet pixelov v súradniciach X a Y (horizontálne a vertikálne) nastavuje rozlíšenie (rozmer) zobrazenia obrazu. Farba pixelu je určená hĺbkou – počtom bitov potrebných na určenie akejkoľvek farby.

Rastrové obrázky sa v závislosti od metód nastavenia farby pixelu a vlastností pôvodného obrázka delia na:

binárne

Poltón

Paleta

Plná farba

V binárnom vyjadrení môže byť farba pixelu biela alebo čierna a je zakódovaná v jednom bite. Obraz je matrica. Každý prvok I (i, j) tejto matice má hodnotu buď 0 alebo 1, kde i je číslo riadku a je číslo stĺpca j prvku zodpovedajúceho danému pixelu (obr. 1).

V obrázkoch v odtieňoch sivej predstavujú pixely hodnoty jasu v odtieňoch šedej. Maticové indexy popisujúce obrázok v odtieňoch sivej špecifikujú polohu pixelu na rastri a hodnotu prvku matice

- nastavuje jej jas I (i, j) (obr. 2).

Paletové obrázky sú popísané dvoma maticami (obr. 3). Jeden ukladá hodnoty indexov, ktoré určujú odkaz na riadok matice palety. Matrica palety je farebná mapa. Obsahuje 3 skupiny stĺpcov - zodpovedajúce červenej farbe "R", zelenej "G" a modrej "B". Nastavujú tiež farbu zodpovedajúceho pixelu.

Paleta je matica Nc 3, kde Nc je počet farieb.

Algoritmy predbežného spracovania obrazu

Plnofarebné obrázky sú zostavené vo formáte RGB a predstavujú tri matice R (i, j), G (i, j), B (i, j). Zodpovedajúce prvky každej matice obsahujú hodnoty intenzity červenej, zelenej a modrej farby pre pixel určený maticovými indexmi. Plnofarebný obrázok teda nemá farebnú mapu a farba každého pixelu je reprezentovaná tromi číslami prevzatými z príslušných matíc (obr. 4).

Formát čísel v maticách môže byť buď celé číslo alebo s pohyblivou rádovou čiarkou. V prvom prípade ide o takzvané digitalizované snímky získané pomocou rôznych zariadení – skenerov, digitálnych fotoaparátov, televíznych kamier atď. V tomto formáte sú informácie o obrázkoch uložené v štandardných grafických súboroch.

Druhá možnosť slúži na vnútornú reprezentáciu obrázkov pri ich spracovaní. V tomto prípade je vhodné normalizovať údaje o intenzite na jeden rozsah, napríklad na rozsah, a vykonávať rôzne výpočty s pohyblivými číslami a potom previesť výsledok do pôvodného celočíselného tvaru. Táto metóda vám umožňuje znížiť chyby vo výpočte a zlepšiť presnosť výsledku spracovania.

V prípade plnofarebných obrázkov je jedným parametrom maximálny počet farieb, ktoré môžu byť v tomto formáte reprezentované. Najčastejšie používané obrázky majú 16, 256, 65536 (High Color) a 10,7 milióna (True Color) farieb.

Algoritmy predbežného spracovania obrazu

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

Algoritmy predbežného spracovania obrazu

Indexová matica

31 15 03 09

Paletová matrica

Algoritmy predbežného spracovania obrazu

Plnofarebný obraz môže byť reprezentovaný nielen vo formáte RGB, ale aj pomocou iných farebných systémov.

V systéme HSB je farba reprezentovaná nasledujúcimi farebnými charakteristikami: Hue - hue;

Saturation - sýtosť; Jas - jas.

Predpokladá sa, že tento farebný systém zodpovedá zvláštnostiam ľudského vnímania farieb.

V systéme LAB sa farba považuje za kombináciu svetlosti a dvoch nezávislých hodnôt chromatickosti, ktoré určujú skutočnú farbu pixelu. Chroma A – vyberie farbu od purpurovej po zelenú. Chromatickosť B - druhá farebná zložka sa vyberá z rozsahu od žltej po azúrovú.

Existujú aj iné systémy na znázornenie farieb. Prirodzene, všetky spolu súvisia a z jednej reprezentácie je možné získať ďalšie. Rozmanitosť farebných systémov je spôsobená úlohami riešenými s ich pomocou. Napríklad je pohodlnejšie vykonávať korekciu farieb v systéme LAB, reprodukovať obraz na obrazovke monitora v systéme RGB, tlačiť lepšie,

Algoritmy predbežného spracovania obrazu

pomocou reprezentácie CMYK. V každom prípade však pri spracovaní obrázkov a ich rozpoznávaní pracujú s rastrovým zobrazením obrázkov obsahujúcich jednu alebo viac matíc.

Klasifikácia predspracujúcich algoritmov

Algoritmy predbežného spracovania obrazu budú rozdelené do rôznych skupín v závislosti od klasifikačnej funkcie. Všetky algoritmy predspracovania musia buď v určitom zmysle zlepšiť kvalitu obrázkov, alebo ich transformovať do podoby, ktorá je najvhodnejšia pre následné spracovanie.

Algoritmy zamerané na zlepšenie reprodukcie farieb obrazu sa nazývajú algoritmy korekcie farieb. Do tejto skupiny patria aj algoritmy, ktoré pracujú s poltónovými obrázkami, ktoré menia ich charakteristiky jasu a kontrastu.

Algoritmy zamerané na spracovanie priestorových charakteristík obrázkov sa nazývajú algoritmy priestorové filtrovanie. Do tejto skupiny patria algoritmy na potlačenie rušenia, algoritmy na priestorové vyhladzovanie a priestorové zosilnenie, algoritmy na potlačenie a zosilnenie priestorových frekvencií.

Algoritmy, ktoré vykonávajú geometrické operácie na obrázku, sa nazývajú algoritmy geometrického spracovania... Tie obsahujú:

Algoritmy predbežného spracovania obrazu

Orezanie obrázku - výber z pôvodného obrázku určitej časti obdĺžnikového tvaru;

Zmeňte veľkosť obrázka. Tieto algoritmy využívajú rôzne interpolačné metódy, ktoré umožňujú buď správne vyplniť chýbajúce pixely vo zväčšenom obrázku, alebo prepočítať hodnoty pixelov pri zmenšení obrázka.

Otočte obrázok. Tieto algoritmy otáčajú pôvodný obrázok o daný uhol a správne prepočítavajú hodnoty pixelov pomocou rôznych metód interpolácie.

Algoritmy vykonávajúce transformácie z jedného systému farieb do druhého sa nazývajú Algoritmy konverzie farieb... Zahŕňajú aj algoritmy na prevod farebných obrázkov do odtieňov sivej a binarizačné algoritmy, ktoré konvertujú pôvodný obrázok na binárny.

Algoritmy, ktoré zvýrazňujú niektoré oblasti v pôvodnom obrázku podľa rôznych, často neformálnych podmienok, sa nazývajú segmentačné algoritmy. Príkladom takéhoto algoritmu môže byť napríklad algoritmus, ktorý by mal vybrať oblasti textu a grafických informácií na obrázku dokumentu, alebo algoritmus, ktorý vyberie oblasti v obrázku textu, ktoré odkazujú na jednotlivé slová.

Algoritmy predbežného spracovania obrazu

Algoritmy priestorového filtrovania

Priestorové filtrovanie obrazu v matematickej forme je diskrétna konvolúcia diskrétneho obrazu s určitou impulznou odozvou priestorového filtra.

Ak (i, j)

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

m N11 n N21

Im, If matice pôvodných a filtrovaných obrázkov, h matica impulznej odozvy filtra,

N 11, N 21 sú dolné a horné hranice stĺpcov impulznej odozvy, N 12, N 22 sú ľavé a pravé hranice riadkov impulznej odozvy.

Maticu impulznej odozvy možno získať výpočtom priestorového filtra na základe špecifikovaných parametrov. Veľké množstvo literatúry venovanej napríklad digitálnej filtrácii je venované metódam výpočtu priestorových filtrov. Na praktické výpočty môžete použiť štandardné matematické balíky, napríklad systém „MATLAB“ obsahuje systém výpočtu filtra „Image Filter Design“.

Všimnite si, že filtrovanie sa môže vykonávať aj vo frekvenčnej doméne. V tom

Algoritmy predbežného spracovania obrazu

V tomto prípade je poradie filtrovania nasledovné:

Preveďte obrázok z priestorovej domény do frekvenčnej domény pomocou 2D diskrétnej Fourierovej transformácie

Vykonajte po prvkoch násobenie frekvenčnej matice obrazu frekvenčnou maticou filtra

Transformujte získaný výsledok do priestorovej domény pomocou inverznej dvojrozmernej diskrétnej Fourierovej transformácie.

som (x, y)

som (f x, f y)

Ak (f x, f y) Im (f x, f y) H (f x, f y)

Ak (fx, f y)

Ak (x, y).

Filtrovanie obrázkov vo frekvenčnej oblasti sa používa zriedkavo kvôli veľkému množstvu výpočtov. Táto metóda filtrovania je však široko používaná v teoretických výpočtoch pri analýze možností spracovania obrazu. Umožňuje vám jasne si predstaviť, aký druh filtrovania je potrebný. Ak napríklad potrebujete zvýrazniť ostré zmeny jasu na obrázku, potom je zrejmé, že musíte použiť vysokopriepustné filtre. Naopak, ak sa potrebujete zbaviť nízkofrekvenčného šumu – jitteringových slučiek, jednotlivých prepätí a pod., potom treba použiť dolnopriepustné filtre. Špecifické parametre filtra sa vyberajú na základe frekvenčnej analýzy rušenia a vlastností pôvodného obrazu.