Základní algoritmy zpracování obrazu. Algoritmy předběžného zpracování obrazu Předzpracování obrazu

Digitální šum je vada obrazu, což jsou náhodně umístěné oblasti, které se blíží velikosti pixelu a liší se od původního obrazu jasem nebo barvou. Redukce šumu hraje důležitou roli při přenosu, zpracování a kompresi videosekvencí a obrázků.

Šum videa se může objevit z několika důvodů:

1. Nedokonalé zařízení pro záznam videa.

2. Špatné podmínky pro fotografování – např. noční focení/natáčení videa, focení za nepříznivého počasí.

3. Rušení při přenosu po analogových kanálech - rušení od zdrojů elektromagnetických polí, vlastní šum aktivních prvků (zesilovačů) přenosového vedení. Příkladem je televizní signál.

4. Nepřesnosti filtrování při extrakci signálů jasu a rozdílu barev z analogového kompozitního signálu atd.

Množství šumu na snímku se může pohybovat od téměř nepostřehnutelných skvrn na digitální fotografii pořízené za dobrého světla až po astronomické fotografie, ve kterých šum skrývá velkou část užitečné informace, které lze získat pouze pracným zpracováním obrazu.

Šum může být různých typů v závislosti na povaze náhodného rozložení šumu v obraze. V praxi jsou nejběžnější typy:

Bílý Gaussův šum

Jedním z nejběžnějších šumů je aditivní gaussovský šum, který se vyznačuje přidáváním hodnot s normálním rozdělením a nulovým průměrem ke každému pixelu obrázku. Termín "aditivní" znamená, že tento typ šumu se přidává k užitečnému signálu. Vyskytuje se při špatných podmínkách příjmu signálu.

digitální šum

Příčina digitálního šumu je nejčastěji spojena s vlastnostmi zařízení používaného k natáčení - obvykle s nedostatečnou světelnou citlivostí matrice. Tenhle typšum je charakterizován nahrazením části pixelů v obraze hodnotami pevné nebo náhodné proměnné. Pokud je jas bodů přibližně stejný, nazývá se digitální šum také „impulzivní“. Pokud se intenzita bodů může změnit z černé na bílou, nazývá se tento šum šumem soli a pepře.

Tento typ šumu obvykle ovlivňuje pouze malý počet pixelů v obrázku.

Kombinovaný hluk

Mnohem méně často se vyskytují případy, kdy je obraz ve stejné hlasitosti zašuměný gaussovským šumem a náhodnými pulzy. Tato sada se nazývá kombinovaný šum.

Vady skenování obrázků

Na obrázku se mohou objevit i cizí vlivy, jako jsou praskliny, škrábance, modřiny. Tyto artefakty nemají homogenní strukturu, určení jejich tvaru a umístění je v podstatě mimo matematickou analýzu. S vadami tohoto druhu lze bojovat pouze pomocí ručního zpracování obrazu, proto se s nimi v tomto článku nezabývá.

Algoritmy pro odstranění šumu

Algoritmů pro odstranění šumu z obrázků existuje velké množství a lze je nejen použít speciální programy zpracování, ale také některé fotoaparáty a videokamery. Navzdory tomu stále neexistuje žádný univerzální filtrační algoritmus, protože při zpracování obrazu je vždy potřeba volit mezi mírou eliminace nežádoucích efektů a zachováním malých detailů, které mají vlastnosti podobné šumu. Algoritmus, který si snadno poradí s jedním typem šumu, může navíc zkazit obraz pouze jiným typem šumu.

Podívejme se na některé z nejznámějších algoritmů redukce šumu obrazu.

Lineární průměrování pixelů

Nejjednodušší nápad pro odstranění šumu je zprůměrovat hodnoty pixelů v prostorovém sousedství. Protože se šum liší pixel od pixelu nezávisle, šum sousedních pixelů se při sečtení navzájem vyruší. Je nastaveno obdélníkové okno, které se postupně překrývá na každém pixelu obrázku. Hodnota centrálního pixelu se vypočítá na základě analýzy všech sousedních pixelů, které spadají do oblasti okna. V souladu s tím, čím větší je snímané okno, tím průměrnější hodnota bude nakonec získána, což vede k silnému efektu rozmazání.

V nejjednodušší verzi má analýza sousedních pixelů najít jejich aritmetický průměr. Chcete-li snížit vliv pixelů, které nepatří do stejné oblasti jako uvažovaná oblast (například tmavý obrys na světlém pozadí), můžete zavést určitý numerický práh a vzít v úvahu při výpočtu pouze ty sousedy, jejichž rozdíl z centrálního pixelu nepřekročí tento práh. Čím vyšší je prahová hodnota, tím silnější bude průměrování. Uvažovanou variantu lze zkomplikovat zavedením váhových koeficientů pro každý sousední pixel v závislosti na jejich vzdálenosti od středu uvažované oblasti.

Tato metoda lze také aplikovat v časové doméně zprůměrováním každého pixelu přes sousední snímky toku videa (každý pixel bude zprůměrován přes pixely umístěné na stejné pozici v sousedních snímcích).

Tento algoritmus je velmi jednoduchý, ale nedává dobrý výsledek a zároveň vede k silnému rozmazání detailů obrazu.

Gaussův filtr

Má princip činnosti podobný předchozímu způsobu a také patří do řady antialiasingových filtrů. Redukce šumu pomocí lineárního průměrovacího filtru má však značnou nevýhodu: všichni sousedé zpracovávaného pixelu mají na výsledek stejný vliv bez ohledu na jejich vzdálenost od něj. Gaussův filtr také průměruje centrální pixel a jeho sousedy v určité oblasti, jen se tak děje podle určitého zákona, který je nastaven Gaussovou funkcí.

Kde parametr y určuje stupeň rozostření a parametr A poskytuje normalizaci. V důsledku toho bude mít centrální pixel uvažované oblasti nejvyšší hodnotu odpovídající vrcholu Gaussova rozdělení. Hodnoty zbývajících prvků budou mít stále menší účinek, jak se budete vzdalovat od středu.

Maticový filtr vypočítaný podle zadaného vzorce se nazývá Gaussův; čím větší je jeho velikost, tím silnější je rozostření (pro pevné y). Protože je tento filtr oddělitelný, může být reprezentován jako:

Z toho vyplývá, že konvoluci lze provádět sekvenčně v řádcích a sloupcích, což vede k výraznému zrychlení metody při velké velikosti filtr.

Algoritmus 2Dcleaner

Nahradí každý pixel v obrázku průměrnou hodnotou sousedních pixelů, pořízenou v oblasti ohraničené nějakým poloměrem. V tomto případě se neberou v úvahu všechny body, které spadají do poloměru, ale pouze ty, jejichž hodnota se neliší od centrálního pixelu o více než určitou předem stanovenou hodnotu (prah) . Díky tomu jsou rovnoměrně barevné plochy rozmazané více než ostré hrany předmětů. Tím se omezí nízkoúrovňový šum v obrazu při zachování jemných detailů.

Mediánové filtrování

Lineární algoritmy se ukázaly jako velmi účinné při potlačování Gaussova šumu, kdy sousední pixely, přestože mají nějaké náhodné rozložení hodnot, stále zůstávají v rámci nějaké průměrné hodnoty charakteristické pro oblast, do které patří. Někdy se však musíte vypořádat s obrazy zkreslenými jinými typy rušení. Příkladem takové interference je impulsní šum, který se projevuje přítomností náhodně rozptýlených bodů náhodného jasu v obraze. Průměrování v tomto případě „rozmaže“ každý takový bod na sousední pixely, což vede ke zhoršení kvality obrazu.

Mediánové filtrování je standardní způsob potlačení impulsního šumu. Tato metoda nelineárního zpracování obrazu eliminuje špičky, ale na rozdíl od algoritmů lineárního průměrování ponechává monotónní sekvence pixelů nedotčené. Díky tomu jsou mediánové filtry schopny bez zkreslení zachovat obrysy objektů a rozdíly mezi oblastmi různého jasu a zároveň účinně potlačit nekorelovaný šum a malé detaily.

Princip filtrace: Je nastaveno určité okno liché velikosti, které se postupně překrývá na každý pixel obrazu. Mezi všemi pixely, které spadají do uvažované oblasti, včetně centrálního, se hledá střední hodnota, která je nakonec přiřazena centrálnímu pixelu oblasti. Medián je v tomto případě prostředním prvkem pole seřazených hodnot pixelů patřících do oblasti. Lichá velikost okna je zvolena přesně tak, aby byla zajištěna existence středního pixelu.

Je také možné použít mediánový filtr pro potlačení bílého Gaussova šumu v obraze. Studie potlačení šumu pomocí mediánové filtrace však ukazuje, že její účinnost při řešení tohoto problému je nižší než u lineární filtrace.

Mediánové filtrování není bez nevýhod, které jsou vlastní většině filtrů pro redukci šumu – když se zvětší velikost masky, aby se zlepšil stupeň redukce šumu, ostrost obrazu se sníží a jeho obrysy jsou rozmazané. Negativní efekty je však možné minimalizovat aplikací mediánové filtrace s velikostí dynamické masky (additivní mediánové filtrování), jejíž princip zůstává stejný, pouze se může měnit velikost filtračního posuvného okna v závislosti na jasu sousedních pixelů.

Ostření obrazu

Téměř všechny algoritmy pro redukci šumu v obrazu vedou k jeho rozmazání, v důsledku toho se ztrácí malé detaily a vnímání obrazu je obtížné. K částečné kompenzaci tohoto negativního efektu a obnovení ztraceného obrysového kontrastu a barevných přechodů je schopen filtr pro doostření obrazu. Ostrost může záviset i na mnoha dalších faktorech – na kvalitě objektivu, na použité cloně, na tloušťce anti-moaré filtru nacházejícího se na matrici většiny digitálních fotoaparátů, který obraz v různé míře rozmazává. Také ostrost snímků je často potřeba zvýšit po zmenšení jejich velikosti, protože v tomto případě se nevyhnutelně ztrácí část informace a s ní i ostrost kontur.

Unsharp masking je technika, která zvýšením kontrastu přechodů mezi tóny v obraze zlepšuje jeho vizuální vnímání díky iluzi doostření. Ve skutečnosti ostrost zůstává na stejné úrovni, protože v zásadě nelze obnovit ztracené detaily obrazu, ale zlepšení kontrastu mezi oblastmi různého jasu vede k tomu, že obraz je vnímán jako jasnější.

Obrázek 5.1 - Ilustrace konceptu "ostrost obrysu"

Ostrost obrazu závisí na velikosti rozdílu jasů mezi oblastmi (W), které tvoří jeho obrysy, a na ostrosti změny tohoto rozdílu (H).

Technika neostrého maskování byla poprvé aplikována na zpracování filmových fotografií. Metoda upravená pro digitální zpracování obrazu se od té původní liší jen málo: z obrazu je odečtena tzv. „neostrá maska“ – jeho rozmazaná a převrácená kopie. Výsledkem je nový obrázek obsahující pouze světlé obrysy originálu. Tmavé kontury lze získat jednoduchým obrácením výsledku.

Pokud od původního obrázku dále odečtete tmavé okraje a přidáte světlé okraje, získáte výrazné zvýšení kontrastu při každém rozdílu jasu.

Jakýkoli z filtrů pro redukci šumu, jako je Gaussův filtr, lze použít k rozmazání originálu za účelem získání „neostré masky“.

Obrázek 5.2 - Výsledek použití neostrého maskování

Operace konvoluce se poměrně často používá při zpracování obrazu. Kromě doostření slouží k rozostření, zvýšení jasu, zesvětlení atp.

Konvoluce obrazu je operace výpočtu nové hodnoty daného pixelu, která bere v úvahu hodnoty okolních sousedních pixelů. V obecném smyslu tento termín znamená nějakou akci, která se provádí na každé části obrazu.

Hlavním prvkem konvoluce je maska ​​konvoluce - jedná se o matici (libovolné velikosti a poměru stran). Často se taková maska ​​nazývá filtr, jádro, šablona nebo okno. Hodnoty prvků matice se obvykle nazývají koeficienty.

Jako konvoluční jádro se nejčastěji používá čtvercová matice.

Zpracování obrazu konvolucí probíhá následovně: Centrální prvek matice, nazývaný „kotva“, je postupně superponován na každý pixel obrazu. Nová hodnota uvažovaného pixelu se vypočítá jako součet hodnot sousedních pixelů vynásobených jejich příslušnými koeficienty konvoluční masky.

Výsledný efekt závisí na zvoleném konvolučním jádru.

Jádro posilovacího filtru má v bodě (0, 0) hodnotu větší než 1, přičemž celkový součet všech hodnot je roven 1. Posilovací filtr jsou například filtry s jádry danými maticemi:

Efektu zvýšení kontrastu je dosaženo díky skutečnosti, že filtr zdůrazní rozdíl mezi intenzitami sousedních pixelů a tyto intenzity od sebe odstraní. Tento efekt bude tím silnější, čím větší bude hodnota centrálního členu jádra.

Konvoluční lineární filtrování se zvýšeným kontrastem může způsobit viditelné barevné halo kolem okrajů obrazu.

Kompenzace světelného rozdílu

Problémy s osvětlením obrazu nejčastěji nastávají, když do rámu vniknou okna, slunce nebo jiné neregulované zdroje světla.

Tato situace se nazývá „přebytečné světlo“ a vede k tomu, že v důsledku příliš jasného osvětlení opěrných bodů se detaily a barvy objektů nacházejících se na pozadí příliš jasných objektů ztrácejí a je obtížné je rozlišit.

Často se také setkáváme se situací nedostatku světla. Může to být způsobeno natáčením v tmavých místnostech se špatným osvětlením a také omezeným rozsahem citlivosti video zařízení.

Jednoškálový algoritmus Retinex

Když se pokusíte zesvětlit obraz zvýšením jasu každého pixelu o určitou pevnou hodnotu, zpočátku se mohou světlé oblasti ukázat jako zcela přeexponované.

V takových případech je nutné použít „chytrou“ korekci barev, která by dokázala vyrovnat osvětlení v obraze a zpracovat světlé oblasti v menší míře než tmavé.

Tyto požadavky splňuje algoritmus Single Scale Retinex založený na principech retinálních receptorů. Hlavním cílem algoritmu je rozdělit obraz na komponenty, které jsou samostatně zodpovědné za osvětlení a detaily. Vzhledem k tomu, že problémy v obraze souvisejí s osvětlením scény, po obdržení komponenty zodpovědné za osvětlení je možné ji transformovat odděleně od obrazu, čímž se výrazně zvýší jeho kvalita.

Jakýkoli obraz může být reprezentován jako součin vysokofrekvenčního signálu (odraz - R) a nízkofrekvenčního signálu (osvětlení - I).

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


Obrázek 5.3 - Zobrazení obrazu v algoritmu Retinex.

Přibližný obraz osvětlení lze získat pomocí nízkopropustné filtrace – jinými slovy jednoduše rozmazat původní snímek např. Gaussovým filtrem.

kde G -- Gaussův filtr

Protože logaritmus signálu nemění frekvenci a vzhledem k vlastnostem logaritmické funkce (logaritmus součinu se rovná součtu logaritmů faktorů), může být úkol oddělit součin signálů zjednodušeno na problém oddělení součtu signálů.

Poté zbývá pouze vzít exponent z přijatého signálu, aby se vrátil do původní amplitudové stupnice. Výslednou vysokofrekvenční složku lze přidat k rozmazanému a zesvětlenému původnímu obrazu, který funguje jako nový model osvětlení.

Efekt získaný vyrovnáním světla může být příliš silný (tmavé oblasti budou mít stejný jas jako světlé). Pro snížení efektu můžete jednoduše smíchat zpracovaný obrázek s originálem v určitém poměru.

Gamma korekce

Původním účelem gama korekce je kompenzovat rozdíly v zobrazených barvách různá zařízení ah výstup, aby obraz vypadal stejně při sledování na různých monitorech. Vzhledem k nelineární formě aplikovaného výkonová funkce, gama korekce také zlepšuje kontrast tmavých oblastí snímku bez zvýraznění jasných detailů a bez ztráty viditelnosti okrajů objektů na snímku.

Informace o jasu v analogové formě v televizi, stejně jako v digitální podobě ve většině běžných grafických formátů, jsou ukládány v nelineárním měřítku. Jas pixelu na obrazovce monitoru lze považovat za proporcionální

kde I je jas pixelu na obrazovce displeje (nebo jas barevných složek, červené, zelené a modré samostatně),

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

r -- index gama korekce .

Pokud je r menší než 1, pak bude charakteristika přenosu úrovně konvexní a výsledný obraz bude světlejší než originál. Pokud je r větší než 1, pak bude charakteristika přenosu úrovně konkávní a výsledný obraz bude tmavší než originál.

Ve výchozím nastavení je parametr r 1, což odpovídá lineárnímu přenosu úrovní a žádné gama korekci.

Výběr obrysu obrázku

Analýzu vrstevnic lze použít k popisu, rozpoznávání, porovnávání a vyhledávání grafické objekty, reprezentované jako vnější obrysy. Vzhledem k tomu, že použití obrysů vylučuje z uvažování vnitřní body objektu, může to výrazně snížit výpočetní a algoritmickou složitost těchto operací.

Obrázek 5.4 - Změna typu funkce napájení v závislosti na parametru r

Obrys objektu je seznam bodů, které představují křivku na obrázku, která odděluje objekt od pozadí. Nejčastěji dochází ke skoku jasu nebo barvy podél obrysu.

Chcete-li zjednodušit hledání kontur v obrázku, můžete jej předem binarizovat.

Sobelův filtr zvýrazní okraje objektů na základě jejich jasu. Vzhledem k tomu, že se nebere v úvahu barevná složka, je nutné obrázky nejprve převést do stupňů šedi.

Sobelův filtr je aplikován postupně na každý pixel a vypočítává přibližnou hodnotu jeho gradientu jasu. Gradient pro každý bod obrazu (funkce jasu) je dvourozměrný vektor, jehož složkami jsou horizontální a vertikální derivace jasu obrazu.

V každém bodě obrázku je gradientní vektor orientován ve směru největšího nárůstu jasu a jeho délka odpovídá velikosti změny jasu. Tyto údaje nám umožňují učinit předpoklad o pravděpodobnosti nalezení uvažovaného bodu na hranici určitého objektu a také o orientaci této hranice.

Že. výsledkem operace Sobelova operátoru v bodě v oblasti konstantní jasnosti bude nulový vektor a v bodě ležícím na hranici oblastí různé jasnosti vektor překračující hranici ve směru rostoucí jasnosti.

K výpočtu přibližných hodnot derivací v každém bodě obrázku používá Sobelův filtr konvoluci s maticí 3×3.

Sobelovy maticové koeficienty:

Konečná hodnota gradientu se vypočítá aproximací podle vzorce:

|G| = |Gx| + |Gy|

Kennyho hraniční detektor

Přestože Kennyho práce byla provedena v počátcích počítačového vidění (1986), Kennyho detektor hran je dodnes jedním z nejlepších detektorů. Kennyho metoda je vícestupňový algoritmus a zahrnuje následující kroky:

1. Očištění obrazu od šumu a zbytečných detailů.

2. Očištění obrazu od šumu a zbytečných detailů.

3. Vyhledejte přechody obrazu, například pomocí operátoru Sobel.

4. Potlačení nemaxim. Jako hranice jsou označena pouze lokální maxima.

5. Dvojité prahové filtrování. Potenciální hranice jsou definovány prahovými hodnotami.

6. Trasování cest (propojte hrany s cestami)

Vzhledem k tomu, že sebemenší šum v obrázku může narušit integritu jeho obrysů, doporučuje se před zahájením vyhledávání filtrovat obrázek pomocí jakékoli metody redukce šumu. Vzhledem k vysoké rychlosti provozu a jednoduchosti implementace se nejčastěji používá Gaussův filtr. Hrany na obrázku mohou být v různých směrech, takže Kennyho algoritmus používá čtyři filtry k detekci vodorovných, svislých a diagonálních hran. Pomocí operátoru detekce hran (jako je Sobelův operátor) se získá hodnota pro první derivaci v horizontálním směru (Gy) a vertikálním směru (Gx). Z tohoto gradientu můžete získat úhel směru okraje:

Úhel směru ohraničení je zaokrouhlen na jeden ze čtyř úhlů představujících vertikální, horizontální a dvě úhlopříčky (například 0, 45, 90 a 135 stupňů). Jako hranice jsou deklarovány pouze ty pixely, ve kterých je dosaženo lokálního maxima gradientu ve směru gradientového vektoru. Hodnota směru musí být násobkem 45°. Po potlačení nemaxim se okraje stanou přesnějšími a tenčími.

V dalším kroku prahová filtrace určuje pro každý uvažovaný pixel, zda patří k hranicím obrazu. Čím vyšší je práh, tím jednotnější budou nalezené obrysy, avšak slabé hrany lze ignorovat. Na druhou stranu, snížení prahové hodnoty zvyšuje náchylnost algoritmu k šumu. Kennyho detekce hran využívá dva prahové hodnoty filtrování: pokud je hodnota pixelu nad horní hranicí, nabývá maximální hodnoty (limit je považována za spolehlivou), pokud je nižší, pixel je potlačen, body s hodnotou spadající do rozsahu mezi prahové hodnoty mají pevnou průměrnou hodnotu (budou upřesněny v dalším kroku).

Poslední fází zpracování obrazu je svázání jednotlivých hran do jednotných obrysů. Pixely, které v předchozím kroku obdržely průměrnou hodnotu, jsou buď potlačeny (pokud se nedotýkají žádné z již detekovaných hran), nebo připojeny k odpovídající kontuře.

Segmentace

Většina obrázků získaných z foto a video zařízení je rastrových, to znamená složených z barevných bodů uspořádaných do obdélníkové sítě. Lidé však vnímají svět kolem sebe jako sbírku pevných předmětů a ne jako matrici teček. Lidský mozek je schopen sjednotit nesourodé detaily obrazu do homogenních oblastí a na podvědomé úrovni jej jasně rozdělit na objekty. Tento proces se nazývá segmentace a lze jej softwarově implementovat při řešení problému počítačové analýzy obrazu a rozpoznávání vzorů. Segmentace se provádí v prvních fázích analýzy a kvalita její implementace může mít silný vliv na její rychlost a přesnost.

Metody segmentace lze rozdělit do dvou tříd: automatické – nevyžadující interakci uživatele a interaktivní – využívající vstup uživatele přímo v procesu.

V prvním případě nejsou použity žádné apriorní informace o vlastnostech oblastí, ale na samotný obrazový oddíl jsou kladeny určité podmínky (například všechny oblasti musí být jednotné v barvě a struktuře). Vzhledem k tomu, že tato formulace problému segmentace nepoužívá apriorní informace o zobrazovaných objektech, jsou metody této skupiny univerzální a použitelné na jakékoli obrázky.

Pro hrubý odhad kvality metody v konkrétní úloze je obvykle stanoveno několik vlastností, které by dobrá segmentace měla mít:

§ Homogenita regionů (jednotnost barvy nebo textury);

§ odlišnost sousedních regionů;

§ plynulost hranice regionu;

§ malý počet malých „děr“ v rámci regionů;

Segmentace prahu

Thresholding je nejvíc jednoduchá metoda, zaměřený na zpracování obrazu, jehož jednotlivé homogenní oblasti se liší průměrným jasem. Pokud je však obraz nerovnoměrně osvětlen, některé objekty mohou odpovídat intenzitě pozadí, což způsobí, že segmentace prahu nebude efektivní.

Nejjednodušším a zároveň často používaným typem prahové segmentace je binární segmentace, kdy se v obraze rozlišují pouze dva typy homogenních oblastí.

V tomto případě se transformace každého bodu zdrojového obrazu na výstupní obraz provádí podle pravidla:

kde x0 je jediný parametr zpracování zvaný práh. Výstupní úrovně jasu y0 a y1 mohou být libovolné, plní pouze funkce značek, pomocí kterých je výsledná mapa označena - přiřazení jejích bodů do tříd K1, respektive K2. Pokud je výsledný přípravek připraven pro vizuální vnímání, pak jejich hodnoty často odpovídají úrovním černé a bílé. Pokud existují více než dvě třídy, musí být během prahování specifikována rodina prahů, které oddělují jasy různých tříd od sebe navzájem.

Segmentace prahu se dobře hodí pro výběr malého počtu neprotínajících se objektů v obraze, které mají jednotnou strukturu a ostře vystupují z pozadí. S nárůstem stupně heterogenity obrazu a tím i počtu segmentů a jejich složitosti se tento typ segmentace stává neefektivním.

Segmentace založená na rozdělení grafu

Metody teorie grafů jsou jednou z nejaktivněji se rozvíjejících oblastí segmentace obrazu.

Obecná myšlenka metod této skupiny je následující. Obrázek je reprezentován jako vážený graf s vrcholy v bodech obrázku. Tloušťka hrany grafu odráží podobnost bodů v určitém smyslu (vzdálenost mezi body podél nějaké metriky). Rozdělení obrazu je modelováno grafovými řezy.

Obvykle se v metodách teorie grafů zavádí funkcionál cut “cost”, který odráží kvalitu výsledné segmentace. Problém rozdělení obrazu do homogenních oblastí je tedy redukován na optimalizační problém nalezení minimálního snížení nákladů v grafu. Tento přístup umožňuje kromě jednotnosti barvy a textury segmentů kontrolovat tvar segmentů, jejich velikost, složitost okrajů atd.

K nalezení minimálního snížení nákladů se používají různé metody: zištné algoritmy (hrana je zvolena v každém kroku tak, aby celková cena řezu byla minimální), metody dynamického programování (je zaručeno, že výběrem optimální hrany v každém kroku , skončíme s optimální cestou), algoritmus Dijkstra atd.

Interpolace

V počítačové grafice se metoda interpolace často používá v procesu změny měřítka obrázků. Změnou počtu obrazových bodů pomáhá interpolace zabránit nadměrné pixelizaci obrazu při jeho zvětšení nebo ztrátě důležitých detailů při jeho zmenšení.

Během procesu interpolace se mezi pixely obrazu vkládají další body, jejichž odhadnutý tón a barva se vypočítávají pomocí speciálního algoritmu na základě analýzy dostupných dat o sousedních oblastech. Bohužel, protože jakákoli interpolace je pouze aproximace, obraz vždy ztratí kvalitu, kdykoli je interpolován.

Interpolace nejbližšího souseda

Tento algoritmus je nejjednodušším druhem interpolace, jednoduše zvětšuje každý pixel obrazu na požadované měřítko. Vyžaduje nejmenší dobu zpracování, ale vede k nejhorším výsledkům.

Bilineární interpolace

Tento typ interpolace se provádí pro každou souřadnici dvourozměrné sítě. Obraz je považován za povrch, barvu - třetí rozměr. Pokud je obraz barevný, pak se interpolace provádí samostatně pro tři barvy. Pro každý neznámý bod v novém obrázku bilineární interpolace uvažuje čtverec čtyř známých pixelů, který jej obklopuje. Jako interpolovaná hodnota se použije vážený průměr těchto čtyř pixelů. Výsledkem je, že obrázky vypadají mnohem hladší než výsledek metody nejbližšího souseda.

Bilineární interpolace funguje dobře při celočíselných hodnotách škálovacích faktorů, ale dost rozmazává ostré hrany obrazu.

Bikubická interpolace jde o krok dále než bilineární, vezmeme-li v úvahu pole 4x4 okolních pixelů – celkem 16. Protože jsou zapnuté různé vzdálenosti z neznámého pixelu dostávají ve výpočtu větší váhu nejbližší pixely. Bikubická interpolace vytváří výrazně ostřejší snímky než předchozí dvě metody a je pravděpodobně nejlepší z hlediska doby zpracování a kvality výstupu. Z tohoto důvodu se stal standardem v mnoha programech pro úpravu obrázků (včetně Adobe Photoshop), ovladačích tiskárny a vestavěné interpolaci fotoaparátu.

Zmenšený obraz může být výrazně méně ostrý. Interpolační algoritmy, které lépe zachovávají ostrost, jsou také náchylnější k moaré, zatímco ty, které moaré eliminují, mají tendenci produkovat měkčí výsledky. Tomuto kompromisu se bohužel nelze vyhnout.

Jedním z nejlepších způsobů, jak s tím bojovat, je aplikovat neostrou masku ihned po změně měřítka, a to i v případě, že byl originál již zaostřen.

5.2 Odůvodnění výběru algoritmů použitých v subsystému

Hlavním požadavkem na vyvinutý softwarový balík bylo minimalizovat zpoždění přehrávání video streamu při jeho předběžném zpracování na výpočetním clusteru. Navíc střelba může probíhat za jakýchkoliv podmínek, což znamená krátkodobý bylo nutné implementovat velké množství jednoduchých filtrů k neutralizaci různých negativních vlivů. Navíc bylo nutné během krátké doby prostudovat velké množství negativních faktorů objevujících se na videu a implementovat jednoduché filtry k jejich neutralizaci. Algoritmy, které splňují uvedené požadavky, by měly být snadno dostupné, dobře optimalizované, vyznačovat se vysokou spolehlivostí a zároveň být snadno implementovatelné. Funkce knihovny OpenCV takové vlastnosti mají, proto při výběru konkrétních metod pro implementaci filtrů pro zpracování video streamu byla dána priorita algoritmům obsaženým v této knihovně v té či oné podobě.

Všechny algoritmy uvažované v teoretické části závěrečné kvalifikační práce byly implementovány v testovací formě za účelem porovnání jejich charakteristik v praxi. Zejména byl upřednostněn kompromis mezi rychlostí zpracování snímku toku videa a kvalitou výsledku.

V důsledku toho byly pro implementaci filtrů zpracování video streamu na výpočetním clusteru vybrány následující algoritmy:

1. Pro odstranění „aditivního bílého“ šumu byl zvolen Gaussův algoritmus. Jako nejrozšířenější metoda redukce hluku je velmi dobře optimalizovaná, a proto má vysokou rychlost.

2. Pro odstranění „aditivního bílého“ šumu byl zvolen Gaussův algoritmus. Jako nejběžnější metoda redukce hluku je velmi dobře optimalizována, a proto má vysokou rychlost provozu.

3. Mediánové filtrování bylo zvoleno pro odstranění „impulzního“ šumu. Tato metoda je také dobře optimalizovaná a byla speciálně navržena tak, aby eliminovala impulzivní a slaný a pepřový hluk.

4. Konvoluce byla zvolena pro zostření obrazu, protože funguje mnohem rychleji než neostré maskování a zároveň poskytuje přijatelné výsledky.

5. Knihovna OpenCV neobsahuje algoritmy korekce barev - proto bylo rozhodnuto implementovat nejběžnější a dobře zdokumentovaný algoritmus Single Scale Retinex. Tato metoda má velmi vysokou účinnost, ale vyžaduje optimalizaci pro urychlení práce.

6. Jako metoda pro detekci hran byl zvolen Kennyho algoritmus, protože poskytuje lepší výsledky než Sobelův filtr.

7. Algoritmus pyramidální segmentace prezentovaný v knihovně OpenCV je extrémně pomalý, proto bylo rozhodnuto použít na grafech dříve zvažovaný segmentační algoritmus.

8. interpolace - metoda bikubické interpolace byla zvolena jako nejrozumnější kompromis mezi rychlostí práce a kvalitou výsledku.

Instalace a konfigurace použitého softwaru.

Použitý výpočetní cluster se systémem GNU Linux (Ubuntu)

Po instalaci operační systém musíte nainstalovat několik knihoven, které podporují čtení a zápis obrazových souborů, kreslení na obrazovku, práci s videem atd.

Instalace CMake

Projekt je vytvořen pomocí CMake (vyžaduje verzi 2.6 nebo vyšší). Můžete jej nainstalovat pomocí příkazu:

apt-get install cmake

Možná budete také potřebovat následující knihovny:

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

Instalace ffmpeg

Aby opencv správně zpracovávalo video soubory, musíte nainstalovat knihovnu ffmpeg. To se provádí pomocí následujících příkazů:

1) Stažení zdrojových kódů knihovny

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

2) Rozbalení archivu se zdrojovými kódy

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

3) Konfigurace knihovny

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) Stavba a instalace knihovny

Instalace GTK

Zobrazení OpenCV oken vyžaduje nainstalovanou GTK+ 2.x nebo vyšší, včetně hlavičkových souborů (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Instalace Opencv

Po instalaci všech souvisejících knihoven se instalace opencv2.2 provede pomocí následujících příkazů:

1) Stažení zdrojových kódů knihovny OpenCV

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

2) Rozbalení archivu se zdrojovými kódy

tar -xvf OpenCV-2.2.0.tar.bz2

3) generování Makefile pomocí CMake.

4) vybudování a instalace knihovny OpenCV

5) Možná budete muset také nastavit cestu ke knihovnám

exportovat LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Instalace a kompilace vyvinutého softwarového balíku

Je nutné zkopírovat zdrojové kódy programů z disku přiloženého k této vysvětlivce. Zkopírujte dávkový soubor build_all.sh do stejné složky a poté jej spusťte. Pokud je v systému nainstalován kompilátor gcc, sestavení proběhne automaticky.

DIGITÁLNÍ LÉČBA SIGNÁLY

Téma 17. ZPRACOVÁNÍ OBRÁZKU

Neexistuje nic mimo představivost člověka.

Titus Lucretius. římský filozof a básník. 1. století před naším letopočtem E.

Představivost je dobrá věc. Ale dostat vandráka ze sklepa, umýt ho, udělat z něj Apollo, zabalit do krabičky od sirek a poslat e-mailem kamarádovi, dobrý grafický program bude lepší.

Anatoly Pyshmintsev, novosibirský geofyzik Uralské školy. 20. století

Úvod.

1. Základní pojmy. Grafické znázornění obrázků. Reprezentace barev v počítačové grafice. RGB barevný model. Barevný systém CIE XYZ.

2. Geometrické transformace bitmapy. Oblasti a fáze transformace. Vzorkování. Interpolační řada obnovy dvourozměrného signálu. Frekvenční zkreslení obrazu a jejich eliminace. Převzorkování obrázku.

3. Filtrování obrazu. Linkové filtry. Vyhlazovací filtry. Kontrastní filtry. rozdílové filtry. Dvourozměrná cyklická konvoluce. nelineární filtry. Prahová filtrace. střední filtrování. Extrémní filtry.

4. Komprese obrazu. Algoritmy kódování délky opakování (RLE). Slovníkové algoritmy. Statistické kódovací algoritmy. Ztrátová komprese obrazu. Odhad ztráty obrazu. Fourierova transformace. Vlnková transformace.

ÚVOD

Rozsah výzkumu v oblasti digitálního zobrazování rychle roste. Je to proto, že zpracování obrazu je vícerozměrné zpracování signálu a většina signálů v reálném světě je vícerozměrná.


Obraz v matematickém vyjádření je dvourozměrný signál, který nese obrovské množství informací. Barevný obrázek 500 × 500 prvků je pole několika stovek tisíc bajtů. Takové informace je možné zpracovat pouze racionální organizací výpočtů. Pro specifické úlohy zpracování obrazu můžete použít efektivní způsoby zpracování s ohledem na vlastnosti a omezení tohoto konkrétního úkolu. Ale pokud mluvíme o zpracování obrazu pro řešení široké třídy problémů, pak je nutné vyčlenit sadu standardních operací, ze kterých lze sestavit algoritmy pro řešení libovolných problémů. Patří mezi ně lineární transformace, 2D konvoluce a 2D diskrétní Fourierovy transformace.

Ale při zpracování obrazu jsou také široce používány nelineární transformace. Zvláštností obrazů je, že jednotlivé prvky obrazu jsou v určité souvislosti s sousední prvky. Většina algoritmů transformace obrazu je proto lokální povahy, tj. zpracovávají obrazy skupinami prvků nacházejících se v sousedství daného. Lineární transformace splňují vlastnost lokality a umožňují konstrukci algoritmů, jejichž výpočetní složitost jen málo závisí na velikosti uzavřeného okolí. Stejné vlastnosti jsou vyžadovány pro nelineární transformace obrazu. Třída takových transformací zahrnuje algoritmy, které se nazývají algoritmy filtrování hodnocení, založené na výpočtu lokálních statistik hodnocení. Při výpočtu klasifikačních statistik a jejich odvozenin jsou možná zjednodušení související s informační redundancí obrázků. Nejznámějším algoritmem této třídy je střední filtrační algoritmus. Dalšími příklady algoritmů hodnocení jsou algoritmy extremálního filtrování, které nahrazují analyzovaný prvek obrazu maximem nebo minimem v okolí. Další vlastností rank algoritmů je lokální přizpůsobení charakteristikám zpracovávaného obrazu a možnost jejich využití nejen pro vyhlazování a odšumování, ale také pro extrakci příznaků při automatickém rozpoznávání obrazu.

Při zpracování obrazu jsou široce používány metody jednorozměrného zpracování signálů, pokud je možné je zobecnit na vícerozměrné signály. Zároveň je třeba vzít v úvahu, že matematické metody pro popis vícerozměrných systémů nejsou úplné. Vícerozměrné systémy mají velký počet stupňů volnosti a jejich návrh získává flexibilitu, která není charakteristická pro jednorozměrné systémy. Vícerozměrné polynomy zároveň nelze rozložit na jednoduché faktory, což komplikuje analýzu a syntézu vícerozměrných systémů.

17.1. Základní pojmy

Grafické znázornění obrázků. Pro znázornění grafické informace na dvourozměrné rovině (obrazovce monitoru) se používají dva přístupy: rastrový a vektorový.

U vektorového přístupu je grafická informace popisována jako soubor abstraktních geometrických objektů - přímky, úsečky, křivky, obdélníky atd. Vektorový popis předpokládá apriorní znalosti o struktuře obrazu.

Rastrová grafika pracuje s libovolnými obrázky ve formě bitmap. Rastr je popis obrázku v rovině jeho rozdělením (vzorkováním) na identické prvky podél pravidelné mřížky a přiřazením každému prvku vlastní barvu a jakékoli další atributy. Nejjednodušší rastr je obdélníkový, nejekonomičtější z hlediska počtu vzorků pro přenos obrázků je šestiúhelníkový. Matematicky je rastr po částech konstantní aproximace v rovině spojité obrazové funkce.

Prvek rastru se nazývá pixel. Standardní identifikace pixelů:


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

kde A(i, j) Ì R2 - plocha pixelu, C(i, j) Î C - atribut pixelu (obvykle barva). Dva nejčastěji používané atributy jsou:

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

C(i, j) = (R(i, j), G(i, j), B(i, j)) - atributy barev v barevném modelu RGB.

V matricové formě:

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

Při vzorkování spojitých obrázků lze hodnoty Aij definovat dvěma způsoby, buď jako hodnoty bodů Aij = (i, j), pro které jsou definovány atributy Cij, nebo jako hodnoty čtverců. Aij = (i, i+1) × (j, j+1) nebo jakýkoli jiný tvar, přičemž Cij je definován průměrnými hodnotami v tomto tvaru (obr. 17.1.1).

V praxi jsou zpravidla X a Y omezené množiny nezáporných celých čísel čtvercového nebo obdélníkového rastru s poměrem stran (poměrem stran) šířky k výšce rastru, který se zapisuje např. "4:3".

Reprezentace barev v počítačové grafice. Pojem barvy je založen na vnímání elektromagnetických vln v určitém frekvenčním rozsahu lidským zrakem. Denní světlo, které vnímáme, má vlnové délky λ v rozmezí od 400 nm (fialová) do 700 nm (červená). Popisem světelného toku může být jeho spektrální funkce I(λ). Světlo se nazývá monochromatické, pokud má jeho spektrum pouze jednu konkrétní vlnovou délku.

Na sítnici jsou dva typy receptorů: tyčinky a čípky. Spektrální citlivost tyčinek (obr. 17.1.2) je přímo úměrná jasu dopadajícího světla. Čípky jsou rozděleny do tří typů, z nichž každý má určitou citlivost v omezených rozsazích s maximy pro červenou, zelenou a modrou barvu a ve tmě svou citlivost prudce ztrácí. Náchylnost oka k modré je mnohem nižší než u ostatních dvou. Důležitou vlastností lidského vnímání světla je linearita při přidávání barev s různými vlnovými délkami.

RGB barevný model (Red, Green, Blue - červená, zelená, modrá) v počítačové grafice je v současnosti nejrozšířenější. V tomto modelu je spektrální funkce reprezentována jako součet křivek citlivosti pro každý typ kužele s nezápornými váhovými koeficienty (normalizovanými od 0 do 1), které jsou označeny jako R, G a B. Model je charakterizován vlastnost aditiva k získání nových barev. Například kódování spektrálních funkcí:

Černá: fčerná = 0, (R, G, B) = (0,0,0);

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

Bílá fbílá = fred + fgreen + fblue, (R, G, B) = (1,1,1).

Trojrozměrný barevný prostor modelu RGB je znázorněn na Obr. 17.1.3. Vzhledem ke zvláštnostem vnímání světla receptory nejsou v tomto modelu reprezentovatelné všechny barvy viditelné pro člověka. Podíl reprodukovatelných barev je však mnohem větší než podíl barev, které nejsou v tomto modelu reprezentovatelné.

Barevný systém CIE XYZ. Mezinárodní standard zobrazení barev CIE (CIE - Commission Internationale de l "Eclairage) byl přijat v roce 1931 Mezinárodní komisí pro osvětlení. Definuje tři základní funkce ρX (λ), ρY (λ), ρZ (λ) v závislosti na vlnová délka , jejíž lineární kombinace s nezápornými koeficienty (X, Y a Z) vytváří všechny barvy viditelné pro člověka. Tyto funkce berou v úvahu relativní vnímání intenzity světla očními receptory. V trojrozměrném prostoru CIE barevný systém tvoří kužel v prvním kvadrantu a používá se pro kvalitní zobrazení barevných obrázků.

17.2. Geometrické transformace bitmap

Oblasti a fáze transformace. Obrázky lze rozdělit na texturní a detailní. V obrázcích textur nesou všechny vzorky (prvky) informaci (obrázek na televizní obrazovce). Detailní snímek je snímek, na kterém lze rozlišit rušivé předměty, pozadí a užitečné předměty.

Existují tři hlavní skupiny algoritmů zpracování obrazu na počítačích:

1. Primární (předběžné) zpracování obrazu za účelem restaurování, čištění od náhodného šumu, zlepšování kvality, korekce geometrických zkreslení optických systémů (rozostření, aberace atd.).

2. Popis obrázků, rozpoznávání vzorů. Provádí se za účelem stanovení parametrů detailů obrazu a zahrnuje: nalezení oblastí obrazu, které jsou jednotné z hlediska osvětlení a barev, zvýraznění znaků tvaru obrazu, určení souřadnic speciálních bodů objektů atd.

3. Efektivní kódování pro snížení množství přenosu a ukládání.

Většina metod předběžného zpracování je založena na použití lineárních prostorově invariantních (LPI) filtrů. Lineární algoritmy jsou prováděny pomocí 2D analogů 1D FIR a IIR filtrů. Lze je použít například při implementaci filtrů pro snížení úrovně šumu v obrazech.

FIR filtry jsou implementovány pomocí konvoluční metody. Výhodou 2D FIR filtrů je viditelnost, jednoduchost a absolutní stabilita. IIR filtry jsou implementovány pomocí diferenčních rovnic a z-transformací. Jsou rychlejší než filtry FIR, ale mohou být nestabilní. Syntéza dvourozměrných IIR filtrů se liší od syntézy jednorozměrných, protože pro dvourozměrnou funkci není možné explicitně vybrat póly.

K obnově obrázků a zlepšení jejich kvality mohou být také vyžadovány nelineární metody. Takže například pro potlačení šumu a zároveň zachování obrysové části snímků je nutné použít nelineární nebo lineární prostorově neinvariantní (SPNI) filtry, které jsou implementovány rank algoritmy. Všechny rank nelineární filtry jsou založeny na rychlých algoritmech pro výpočet lokálních histogramů.

Jednou z takových metod je mediánové filtrování. Použití středních filtrů je účinné pro potlačení určitých typů šumu a periodického šumu bez současného zkreslení signálu, například pro potlačení nárazových emisí šumu, včetně výpadků linek. Metodu lze také použít k řešení problémů souvisejících s rozpoznáváním, například ke zvýraznění tenkých čar a malých izolovaných objektů.

Algoritmy pro popis obrázků a rozpoznávání obrázků jsou zpravidla nelineární a mají heuristickou povahu. Znaky objektů jsou obvykle plocha obrazu předmětu, obvod obrysu obrazu, poměr plochy ke čtverci obvodu obrazu. Tvar předmětu lze charakterizovat poloměrem kružnice vepsané do obrazu nebo opsané kolem obrazu předmětu, délkou minimálního a maximálního poloměru-vektoru od „těžiště“ obrazu.

Vzorkování. Transformace obrazu v počítači a ukládání zpracovávaných dat jsou prováděny v diskrétní podobě. Vzorkování se používá k získání diskrétní reprezentace ze spojitých analogových obrazů reálného světa. V praxi se provádí vstupními zařízeními (digitální fotoaparát, skener, případně další). Pro vizuální vnímání zpracovaných obrazů na výstupních zařízeních (displej, plotr atd.) je analogový obraz rekonstruován podle jeho diskretizované reprezentace.

V nejjednodušším případě černobílých obrázků máme dvourozměrné pole sa(x, y). U barevných obrázků v modelu RGB, s přihlédnutím k vlastnosti aditivity při přidávání barev, lze každou vrstvu R, G a B také považovat a zpracovat jako dvourozměrné pole s následným sečtením výsledků.

Ze způsobů, jak zobecnit jednorozměrnou periodickou diskretizaci na dvourozměrný případ, je nejjednodušší periodická diskretizace v pravoúhlých souřadnicích:

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

kde Dx a Dy jsou horizontální a vertikální intervaly vzorkování dvourozměrného spojitého signálu sa(x, y) se spojitými souřadnicemi x a y. Níže jsou hodnoty Dx a Dy, jako v jednorozměrném případě, brány rovny 1.

Diskretizace dvourozměrného signálu také vede k periodizaci jeho spektra a naopak. Podmínka informační ekvivalence souřadnicových a frekvenčních reprezentací diskrétního signálu je rovněž zachována při stejném počtu vzorkovacích bodů v hlavních rozsazích signálu. Pro pravoúhlou diskretizaci jsou přímé a inverzní Fourierovy transformace definovány výrazy:

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

Rýže. 17.2.1. Periodizace spektra.

Tyto výrazy ukazují, že 2D DFT přes pravoúhlý vzorkovací rastr dat lze vypočítat pomocí 1D sériových DFT. Druhé součty výrazů (17.2.1") a (17.2.2") jsou jednorozměrné DFT úseků funkcí s(n, m) a S(k, l) podél přímek n a k, v uvedeném pořadí a první součty jsou jednorozměrné DFT vypočítaných funkcí v úsecích podle mal. Jinými slovy, počáteční matice hodnot s(n, m) a S(k, l) se nejprve přepočítají na mezimatice s DFT po řádcích (nebo po sloupcích) a mezilehlé matice se přepočítají na konečné matice s DFT. po sloupcích (resp. po řádcích).

Aby docházelo k periodickému opakování spektra (obr. 17.2.1), způsobeného vzorkováním analogový signál s frekvencí Fx=1/Dx a Fy=1/Dy, nemění spektrum v hlavním frekvenčním rozsahu (vzhledem ke spektru původního analogového signálu), je nutné a dostatečné, aby maximální frekvenční složky fmax v spektrum analogového signálu jak v řádcích, tak ve sloupcích nepřesáhlo Nyquistovy frekvence (fmax. x £ fN = Fx/2, fmax. y £ fM = Fy/2). To znamená, že vzorkovací frekvence signálu musí být alespoň dvakrát vyšší než maximální frekvenční složka ve spektru signálu:

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

což zajišťuje, že spektrální funkce dosahují nulových hodnot na koncích hlavního rozsahu spektra.

Interpolační řada obnovy dvourozměrného signálu. Pokud je spojitý signál sa(x, y) signálem s omezeným spektrem a periody vzorkování jsou zvoleny dostatečně malé a spektra sousedních period se nepřekrývají:

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

pak, stejně jako v jednorozměrném případě, lze signál sa(x, y) rekonstruovat diskrétní signál pomocí dvourozměrného analogu řady Kotelnikov-Shannon:

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

Frekvenční zkreslení obrazu a jejich eliminace. Lze také vzorkovat signál s neomezeným spektrem, ale v tomto případě dochází k překrývání spekter v sousedních periodách, zatímco vysoké frekvence, vyšší než Nyquistovy frekvence, budou „maskovány“, jako v jednorozměrném případě, pod nízké frekvence hlavního období. Efekt „odrazu“ od hranic období dává ještě složitější obraz díky interferenci frekvencí odrážených v různých souřadnicích. K podobnému efektu, známému jako aliasing, dojde také při podvzorkování obrázků. Tento efekt lze pozorovat zvláště zřetelně na ostrých kontrastních změnách jasu.

K boji proti takovým jevům se používá předfiltrování (anti-aliasing) - předběžná konvoluce analogového obrazu s funkcí váhového filtru, která odřízne vysokofrekvenční složky, které mohou vést k aliasingu. Ve dvourozměrném případě je filtrování popsáno následovně:

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

Je třeba poznamenat, že analogové obrazy existují pouze v optickém rozsahu, například ve formě světelného displeje na obrazovce, fotografickém papíru nebo fotografickém filmu, ale nemohou existovat v paměti počítače. Fyzická implementace předfiltrace je tedy možná pouze při registraci obrazu jeho rozostřením, které se zpravidla nepoužívá. Primární informace by měly být vždy zaznamenány s maximální úplností a přesností a očištění primárních informací od zbytečných detailů a redundance je záležitostí následného zpracování dat. Proto ve vztahu k rovnici 17.2.5 může být dvourozměrné předfiltrování v praktickém provedení pouze filtrováním obrazů vzorkovaných s velkou rezervou v hlavním frekvenčním rozsahu (s nadměrným rozlišením) a používá se zpravidla , při převzorkování na větší krok, například při kompresi obrázků. Předfiltrování lze také zabudovat do zobrazovacích algoritmů.

Na Obr. 17.2.3 a níže, Tabulka 17.2.1 ukazuje příklady nejběžnějších jednorozměrných antialiasingových filtrů. Mohou být také implementovány ve formě analogových filtrů a používají se například při přenosu televizních řádků obrazu v analogové formě po rádiových kanálech (horizontální anti-aliasing). V zásadě lze podobnou operaci provést na sloupcích (duplikát - obrázek) a po sečtení obrázku se provede kompletní antialiasingová operace, tato metoda však patří spíše do oblasti speciálního vědeckého výzkumu.

Tabulka 17.2.1.

Základní váhové funkce

časové okno

funkce váhy

Fourierova transformace

přírodní (P)

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

П(w) = 2t sinc

Bartlett (D)

B(w) = tsinc2(hmotn./2).

Henning, Hanno

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,54P(š)+0,23P(š+p/t)+0,23P(š-p/t)

Carré (2. okno)

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

t B(w)*P(w), P(w) = 1 pro |w|

Laplace-Gauss

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

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

Dvourozměrné analogy jednorozměrných filtrů f1(x) jsou konstruovány ve dvou variantách symetrie: nebo jako funkce poloměru:

f2(x, y) = f1(),

nebo jako dílo:

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

První možnost je správnější, ale druhá má vlastnost separability, tj. dvourozměrnou konvoluci lze provádět dvěma jednorozměrnými konvolucemi postupně v řádcích s f1(x) a ve sloupcích s f1(y).

Převzorkování obrázku nebo převzorkování je změna vzorkovací frekvence digitálního signálu. U digitálních obrázků to znamená změnu velikosti obrázku.

Existují různé algoritmy pro převzorkování obrázků. Například pro dvojnásobné zvětšení obrazu pomocí metody bilineární interpolace se mezilehlé sloupce a řádky získají lineární interpolací hodnot sousedních sloupců a řádků. Každý bod nového snímku je možné získat jako vážený součet většího počtu bodů původního snímku (bikubická a jiné typy interpolace). Nejkvalitnějšího převzorkování se dosáhne při použití algoritmů, které berou v úvahu nejen čas, ale i frekvenční doménu signálu.

Zvažte algoritmus převzorkování s maximálním zachováním frekvenční informace obrazu. Budeme uvažovat fungování algoritmu na jednorozměrných signálech, protože dvourozměrný obraz lze nejprve roztáhnout nebo zkomprimovat horizontálně (v řádcích) a poté vertikálně (ve sloupcích), a převzorkování dvourozměrného obrázku může být redukováno na převzorkování jednorozměrných signálů.

Předpokládejme, že máme jednorozměrný signál (obr. 17.2.4), daný na intervalu 0-T a diskretizovaný s krokem Dt=1 (N intervalů). Signál je nutné "natáhnout" o m krát. Spektrum signálu znázorněné na obrázku je vypočteno rychlou Fourierovou transformací (FFT, počet vzorků spektra je roven počtu vzorků signálu) a je udáno v hlavním rozsahu FFT (0-2p, Nyquistova frekvence wN = p/Dt = p, nebo 0,5N podle číslování vzorků spektra s krokem podél spektra Df = 1/T nebo Dw = 2p/T). Protažení vyžaduje 2 kroky.

Prvním krokem je nulová interpolace, která prodlouží délku signálu m krát. (obr. 17.2.5). Všechny vzorky původního signálu je nutné vynásobit m a poté za každý vzorek signálu vložit m-1 nulovou hodnotu. Na intervalu 0-T, jehož hodnota zůstává nezměněna, je nyní m krát více vzorkovacích intervalů (mN) a nový vzorkovací interval bude roven Dx=Dt/m. V souladu s tím je nová Nyquistova frekvence pro tento signál mp/Dt = mp. Ale fyzikální hodnota kroku spektra v jednotkách frekvence je opakem fyzické hodnoty intervalu nastavení signálu (Df=1/T), a proto FFT na mN signálových bodech vypočítá mN bodů spektra v hlavní FFT rozsah 0-14pm s krokem spektra původního signálu, ve kterém bude přítomno m-period spektra původního signálu (jedna hlavní a m-1 strana).

Druhým krokem je odfiltrování postranních pásem spektra pomocí dolnopropustného filtru, buď v časové nebo spektrální doméně. Na Obr. 17.2.6 bylo spektrum vyčištěno a byla provedena inverzní Fourierova transformace, v důsledku čehož byl získán signál mkrát delší než původní signál při plném zachování všech frekvenčních informací.

Podle podobného principu lze sestavit algoritmus pro kompresi (decimování) signálu nkrát, přičemž pořadí kroků je obrácené. Při kompresi signálu se zvýší krok vzorkování signálu a v důsledku toho se sníží Nyquistova frekvence, zatímco ořezové vysoké frekvence (šum a nevýznamné vysokofrekvenční části spektra signálu) se budou odrážet od hranice hlavního rozsahu. a přidal se k hlavním informacím, čímž vznikl zkreslení. Aby se tento jev eliminoval, je signál nejprve filtrován dolní propustí s mezní frekvencí rovnou nové Nyquistově frekvenci (anti-aliasing) a teprve poté je signál decimován ztenčováním.

Když se převzorkování provádí pouze v časové doméně, jsou algoritmy roztahování a komprese obvykle spojeny do jediného sekvenčního procesu s nastavením změny kroku vzorkování ve formě poměru m/n, což umožňuje nastavit celočíselné hodnoty m a n pro zlomkové hodnoty změny kroku vzorkování. To výrazně zjednodušuje algoritmy a zlepšuje efektivitu a kvalitu jejich práce. Například, když je signál roztažen 1,5krát při m/n = 3/2, signál se nejprve roztáhne 3krát (jednoduché a jednotné přidání nul ke všem vzorkům, poté se provede filtrace dolní propustí, po které signál je zdecimován faktorem dva. Antialiasingový filtr není vyžadován, protože jeho mezní frekvence se překrývá s frekvencí první dolní propusti.V operaci zpětné komprese (například m/n = 2/3 ), podobně se používá pouze antialiasingový filtr.

17.3. filtrování obrazu

Filtrování obrázků je chápáno jako operace, jejímž výsledkem je obrázek stejné velikosti, získaný z původního podle určitých pravidel. Typicky je intenzita (barva) každého pixelu výsledného obrázku určena intenzitami (barvami) pixelů umístěných v některém z jeho sousedství v původním obrázku.

Pravidla filtrování mohou být velmi různorodá. Filtrování obrazu je jednou z nejzákladnějších operací počítačového vidění, rozpoznávání vzorů a zpracování obrazu. Naprostá většina metod zpracování obrazu začíná tím či oním filtrováním původních snímků.

Linkové filtry mají velmi jednoduchý matematický popis. Budeme předpokládat, že je dán původní polotónový obraz A, a označíme intenzity jeho pixelů A(x, y). Lineární filtr je definován funkcí reálné hodnoty h (jádro filtru) definovanou na rastru. Samotné filtrování se provádí pomocí operace diskrétní konvoluce (vážený součet):

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

Výsledkem je obrázek B. Obvykle je jádro filtru nenulové pouze v nějakém okolí N bodu (0, 0). Mimo toto okolí se h(i, j) rovná nule nebo je jí velmi blízké a lze jej zanedbat. Sčítání se provádí přes (i, j) н N a hodnota každého pixelu B(x, y) je určena pixely obrázku A, které leží v okně N se středem v bodě (x, y) ( je označena množina N(x, y) ). Jádro filtru definované na pravoúhlém sousedství N si lze představit jako matici m x n, kde jsou délky stran lichá čísla. Při zadávání jádra jako matice by mělo být vystředěno. Pokud se pixel (x, y) nachází v blízkosti okrajů obrazu, pak souřadnice A(x-i, y-j) pro určité (i, j) mohou odpovídat neexistujícím pixelům A mimo obraz. Tento problém lze vyřešit několika způsoby.

Nefiltrujte takové pixely oříznutím obrázku B na okrajích nebo použitím původních hodnot obrázku A pro jejich hodnoty.

Nezahrnujte chybějící pixel do součtu rozdělením jeho váhy h(i, j) rovnoměrně mezi ostatní pixely v okolí N(x, y).

Předefinujte hodnoty pixelů mimo hranice obrázku pomocí extrapolace.

Předefinujte hodnoty pixelů mimo okraje obrázku pomocí zrcadlového pokračování obrázku.

Výběr metody se provádí s ohledem na specifické vlastnosti filtru a obrazu.

Vyhlazovací filtry. Nejjednodušší obdélníkový vyhlazovací filtr o poloměru r je dán maticí (2r+1) × (2r+1), jejíž všechny hodnoty jsou 1/(2r+1)2 a součet hodnot je jeden. Toto je 2D analog 1D filtru s klouzavým průměrem ve tvaru U s dolní propustí. Při filtrování s takovým jádrem je hodnota pixelu nahrazena zprůměrovanou hodnotou pixelu ve čtverci 2r+1 kolem ní. Příklad masky filtru 3×3:

.

Jednou z aplikací filtrů je redukce šumu. Šum se liší pixel od pixelu nezávisle a za předpokladu, že matematické očekávání hodnoty šumu je nula, šum sousedních pixelů se při sečtení vzájemně vyruší. Čím větší je okno filtrování, tím nižší je průměrná intenzita šumu, nicméně dojde i k odpovídajícímu rozmazání výrazných detailů obrazu. Obrázek bílé tečky na černém pozadí během filtrování (reakce na jeden pulz) bude rovnoměrně šedý čtverec.

Redukce šumu pomocí obdélníkového filtru má značnou nevýhodu: všechny pixely v masce filtru v jakékoli vzdálenosti od zpracovávaného mají na výsledek stejný vliv. O něco lepšího výsledku se dosáhne úpravou filtru se zvýšením hmotnosti centrálního bodu:

.

Účinnější redukce šumu lze dosáhnout, pokud se s rostoucí vzdáleností od zpracovávaného snižuje vliv pixelů na výsledek. Tuto vlastnost má Gaussův filtr s jádrem: h(i, j) = (1/2ps2) exp(-(i2+j2)/2s2). Gaussův filtr má nenulové jádro nekonečné velikosti. Hodnota jádra filtru však velmi rychle klesá na n), a proto se v praxi lze omezit na konvoluci s malým oknem kolem (0, 0), například s poloměrem okna rovným 3σ.

Gaussovské filtrování je také vyhlazování. Na rozdíl od obdélníkového filtru však bude obraz bodu s Gaussovým filtrováním symetrickým rozmazaným bodem, s poklesem jasu od středu k okrajům. Míra rozmazání obrazu je určena parametrem σ.

Kontrastní filtry . Pokud vyhlazovací filtry snižují místní kontrast obrazu a rozmazávají jej, pak filtry zvyšující kontrast vytvářejí opačný efekt a v podstatě jsou to filtry s vysokými prostorovými frekvencemi. Jádro urychlovacího filtru na (0, 0) má hodnotu větší než 1, s celkovým součtem hodnot rovným 1. Posilovací filtry jsou například filtry s jádrem daným maticemi:

. .

Příklad použití filtru je na Obr. 17.3.1. Efektu zvýšení kontrastu je dosaženo díky skutečnosti, že filtr zdůrazní rozdíl mezi intenzitami sousedních pixelů a tyto intenzity od sebe odstraní. Tento efekt bude tím silnější, čím větší bude hodnota centrálního členu jádra. Charakteristickým artefaktem lineárního filtrování zesílení kontrastu je znatelné světlo a méně nápadné tmavé halo kolem okrajů.

Diferenční filtry jsou lineární filtry definované diskrétními aproximacemi diferenciálních operátorů (metodou konečných diferencí). Tyto filtry hrají důležitou roli v mnoha aplikacích, například pro vyhledávání hran v obrázku.

Nejjednodušším diferenciálním operátorem je x-derivace d/dx, která je definována pro spojité funkce. Obvyklými variantami podobných operátorů pro diskrétní obrázky jsou filtry Prewitt a Sobel:

. .

Filtry aproximující derivační operátor vzhledem k y-ové souřadnici d/dy jsou získány transpozicí matic.

Nejjednodušší algoritmus pro výpočet normy gradientu přes tři sousední body:

G(x, y) = .

Používá se také zjednodušený výpočetní vzorec:

Výpočet normy gradientu přes čtyři sousední body (operátor Roberts):

Sobelův algoritmus používá osm vzorků jasu v blízkosti centrálního bodu:

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

Gxx, y = - ,

Gyx, y = -.

Spolu s přesnější definicí normy gradientu vám Sobelův algoritmus také umožňuje určit směr vektoru gradientu v rovině analýzy obrazu ve formě úhlu j mezi vektorem gradientu a směrem řádků matice:

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

Na rozdíl od vyhlazovacích filtrů a filtrů zvyšujících kontrast, které nemění průměrnou intenzitu obrazu, se v důsledku použití diferenčních operátorů zpravidla získá obraz s průměrnou hodnotou pixelu blízkou nule. Svislé poklesy (ohraničení) původního obrázku odpovídají pixelům s velkými hodnotami modulo ve výsledném obrázku. Rozdílové filtry se proto také nazývají filtry detekce hranic objektu.

Podobně jako u výše uvedených filtrů lze metodu konečných rozdílů použít k sestavení filtrů pro jiné diferenciální operátory. Konkrétně diferenciální Laplaceův operátor (Laplacián) D= 𝝏2/𝝏x2 + 𝝏2/𝝏y2, který je důležitý pro mnoho aplikací, lze aproximovat pro diskrétní obrázky pomocí filtru s maticí (jedna z možností):

.

Jak je vidět na Obr. 17.3.2, v důsledku použití diskrétního Laplacianu, velké hodnoty v absolutní hodnotě odpovídají jak vertikálním, tak horizontálním rozdílům jasu. Filtr je tedy filtr, který najde hranice libovolné orientace. Hledání hran v obrázku lze provést použitím tohoto filtru a odebráním všech pixelů, jejichž absolutní hodnota přesahuje určitou prahovou hodnotu.

Tento algoritmus má však značné nevýhody. Tou hlavní je nejistota při volbě prahové hodnoty. Pro různé části obrazu se obvykle dosáhne přijatelného výsledku při výrazně odlišných prahových hodnotách. Diferenciální filtry jsou navíc velmi citlivé na obrazový šum.

Dvourozměrná cyklická konvoluce. Stejně jako u 1D signálů lze 2D konvoluci provádět v prostorové frekvenční doméně pomocí FFT algoritmů a násobení 2D obrazových spekter a jádra filtru. Je také cyklický a obvykle se provádí v posuvné verzi. Vezmeme-li v úvahu cykličnost, pro výpočet konstantního vzoru spektra jádra jsou rozměry masky filtru jádra zdvojnásobeny podél os a doplněny nulami a stejné rozměry masky jsou použity pro zvýraznění okna klouzajícího po obrázku, v němž se provádí FFT. Implementace FIR filtru s FFT je zvláště účinná, pokud má filtr velkou referenční plochu.

Nelineární filtry . V digitálním zpracování obrazu se k obnově obrazů poškozených různými modely šumu široce používají nelineární algoritmy založené na statistikách pořadí. Umožňují vyhnout se dodatečnému zkreslení obrazu při odstraňování šumu a také výrazně zlepšit výsledky filtrů na snímcích s vysokým stupněm šumu.

Představme si koncept M-okolí obrazového prvku A(x, y), který je pro toto okolí centrální. V nejjednodušším případě M-okolí obsahuje N-pixelů - bodů, které spadají do masky filtru, včetně (nebo nezahrnuje) centrální. Hodnoty těchto N-prvků lze umístit do variační řady V(r), řadit vzestupně (nebo sestupně) a určité momenty této řady lze vypočítat, například průměrnou hodnotu jasu mN a disperze dN. Výpočet výstupní hodnoty filtru, který nahrazuje centrální vzorek, se provádí podle vzorce:

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

Hodnota koeficientu a = je spojena s určitou závislostí se statistikou vzorků v okně filtru, například:

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

kde dS je rozptyl šumu nad obrazem jako celkem nebo nad S-okolí pro S > M a MнS, k je konstanta spolehlivosti rozptylu S-okolí. Jak vyplývá z tohoto vzorce, pro k=1 a dN » dS platí a » 0,5 a hodnota B(x, y) = (A(x, y) + mN)/2, tj. sčítají se rovnoměrně. na hodnotách centrálního vzorku a průměrné hodnotě pixelů jeho M-okolí. S nárůstem hodnot dN roste příspěvek hodnoty centrální reference k výsledku, s poklesem hodnota mN. Váhu příspěvku průměrných hodnot nad M-okolí lze měnit hodnotou koeficientu k.

Volba statistické funkce a povaha závislosti koeficientu a na ní může být značně různorodá (např. podle rozptylů rozdílů odečtů v M-okolí s centrálním odečtem), a závisí jednak na velikosti otvoru filtru a na povaze snímků a šumu. Hodnota koeficientu a musí v podstatě specifikovat stupeň poškození centrálního vzorku a v souladu s tím i výpůjční funkci pro jeho korekci vzorků z M sousedství.

Nejjednoduššími a nejběžnějšími typy nelineárních filtrů pro zpracování obrazu jsou prahové a mediánové filtry.

Prahová filtrace se uvádí například takto:

B(x, y) =

Hodnota p je prahová hodnota filtru. Pokud hodnota centrálního bodu filtru překročí průměrnou hodnotu vzorků mN v jeho M-okolí o prahovou hodnotu, pak je nahrazena průměrnou hodnotou. Prahová hodnota může být buď konstantní, nebo funkčně závislá na hodnotě centrálního bodu.

Mediánové filtrování je definován takto:

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

tj. výsledkem filtrování je střední hodnota sousedních pixelů, jejichž tvar je určen maskou filtru. Mediánové filtrování může účinně odstranit šum z obrazu, který nezávisle ovlivňuje jednotlivé pixely. Takovými interferencemi jsou například „rozbité“ pixely při digitálním snímání, „sněžný“ šum, kdy jsou některé pixely nahrazeny pixely s maximální intenzitou atd. Výhodou mediánové filtrace je, že „horký“ pixel je tmavé pozadí budou nahrazeny tmavými, nikoli "rozmazanými" kolem.

Mediánové filtrování má výraznou selektivitu s ohledem na prvky pole, které jsou nemonotonickou složkou sekvence čísel v otvoru filtru. Mediánový filtr zároveň ponechává monotónní složku sekvence beze změny. Díky této funkci zachová mediánové filtry s optimálně zvolenou clonou ostré hrany objektů bez zkreslení, potlačí nekorelovaný nebo slabě korelovaný šum a malé detaily.

Extrémní filtry určeno podle pravidel:

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

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

tj. výsledkem filtrování jsou minimální a maximální hodnoty pixelů v masce filtru. Takové filtry se zpravidla používají pro binární obrazy.

17.4. KOMPRESE OBRAZU

Typický obrázek s rozlišením asi 3000×2000 při 24 bitech na pixel pro přenos barev má velikost 17 megabajtů. U profesionálních zařízení může být velikost výsledného obrazového rastru mnohem větší, barevná hloubka je až 48 bitů na pixel a velikost jednoho obrázku může být i více než 200 megabajtů. Algoritmy komprese obrazu jsou proto velmi důležité pro snížení množství dat představujících obraz.

Existují dvě hlavní třídy algoritmů:

1. Bezeztrátová komprese A (bezeztrátová komprese), pokud existuje reverzní algoritmus A-1, že pro libovolné h - obrázek A[h] = h1 máme A-1 = h. Bezeztrátová komprese se používá u takových grafických obrazových formátů jako: GIF, PCX, PNG, TGA, TIFF a používá se při zpracování zvláště cenných primárních informací (lékařské snímky, letecké a vesmírné snímky atd.), kdy i sebemenší zkreslení je nežádoucí.

2. Ztrátová komprese, pokud neposkytuje možnost přesné obnovy původního obrazu. Přibližný algoritmus obnovy obrazu spárovaný s A bude označen jako A*. Dvojice (A, A*) je zvolena tak, aby poskytovala vysoké kompresní poměry při zachování vizuální kvality. Ztrátová komprese se používá v grafických formátech: JPEG, JPEG2000 atd.

Všechny algoritmy a příkazy platí jak pro obrázky, tak pro libovolné sekvence, jejichž prvky mohou nabývat konečného počtu hodnot. Zároveň je třeba vzít v úvahu, že neexistují žádné ideální algoritmy, které by dokázaly komprimovat jakýkoli soubor dat bez ztráty.

Algoritmy kódování délky opakování (RLE). jsou založeny na jednoduchém principu: nahrazení opakujících se skupin prvků původní sekvence dvojicí (veličina, prvek), nebo pouze kvantitou.

bitová úroveň. Původní data budeme uvažovat na úrovni sekvence bitů, například představujících černobílý obrázek. Obvykle je několik 0 nebo 1 za sebou a lze zakódovat počet po sobě jdoucích identických číslic. Ale počet opakování musí být také zakódován v bitech. Lze uvažovat, že každý počet opakování se mění od 0 do 7 (3bitový kód), přičemž se střídá sekvence kódů jedniček a nul. Posloupnosti lze například porovnávat s čísly 7 0 4, tedy 7 jedniček, 0 nul, 4 jedniček, přičemž máme nový rok - Čím delší jsou posloupnosti identických bitů, tím větší je efekt. Posloupnost 21 jedniček, 21 nul, 3 jedniček a 7 nul je tedy zakódována následovně: , tj. z původní sekvence 51 bitů máme sekvenci 36 bitů.

Úroveň bajtů. Předpokládejme, že vstupem je obrázek ve stupních šedi, kde je pro hodnotu intenzity pixelu přidělen 1 bajt, přičemž očekávání dlouhého řetězce identických bitů je výrazně sníženo.

Vstupní tok rozdělíme na bajty (kód od 0 do 255) a opakované bajty zakódujeme jako pár (číslo, písmeno). Jeden bajt nelze upravit. Takže bajty AABBBCDAA kódují (2A) (3B) (C) (D) (2A).

Úpravy tohoto algoritmu se však samy o sobě používají jen zřídka (například ve formátu PCX), protože podtřída sekvencí, na které je algoritmus účinný, je poměrně úzká. Častěji se používají jako jeden ze stupňů kompresního potrubí.

Slovníkové algoritmy místo kódování pouze jednoho prvku příchozí sekvence se provádí kódování řetězce prvků. To používá slovník řetězců (vytvořený ze vstupní sekvence) ke kódování nových.

Algoritmus LZ77 byl jedním z prvních, který používal slovník. N posledních již zakódovaných prvků sekvence je použito jako slovník. Během komprese se slovník-podsekvence „klouže“ po příchozí sekvenci. Řetězec prvků na výstupu je zakódován následovně: pozice odpovídající části zpracovávaného řetězce prvků ve slovníku - offset (vzhledem k aktuální pozici), délka, první prvek následující za spárovanou částí řetězce. Délka párovacího řetězce je shora omezena číslem n. Úkolem je tedy najít největší řetězec ze slovníku, který odpovídá zpracované sekvenci. Pokud neexistují žádné shody, zapíše se offset nula, délka jedna a první prvek nekódované sekvence.

Výše popsané schéma kódování vede ke konceptu posuvného okna, které se skládá ze dvou částí:

Subsekvence již zakódovaných prvků délky N-dictionary - search buffer;

Dílčí posloupnost délky n z řetězce prvků, pro které bude učiněn pokus najít shodu, je dopředná vyrovnávací paměť.

Dekódování komprimované sekvence je dekódování zaznamenaných kódů: každý záznam je porovnán s řetězcem ze slovníku a explicitně zapsaným prvkem, po kterém je slovník posunut. Slovník je znovu vytvořen, jak běží dekódovací algoritmus.

Tento algoritmus je předkem celé rodiny algoritmů. Mezi jeho přednosti patří slušná míra komprese na dostatečně velkých sekvencích a rychlá dekomprese. Mezi nevýhody patří nízká rychlost komprese a nižší kompresní poměr než u alternativních algoritmů.

Algoritmus LZW. Slovník v tento algoritmus je tabulka, která se při běhu algoritmu plní řetězci prvků. Proces komprese hledá nejdelší řetězec již zapsaný do slovníku. Pokaždé, když není ve slovníku nalezen nový řetězec prvků, je přidán do slovníku a je zaznamenán kód řetězce. Teoreticky neexistuje žádné omezení velikosti tabulky, ale omezení velikosti zlepšuje kompresní poměr, protože se hromadí zbytečné (nevyskytující se) řetězce. Čím více položek tabulka obsahuje, tím více informací je třeba alokovat do kódů úložiště.

Dekódování spočívá v přímém dekódování kódů, tj. v konstrukci slovníku a výstupu odpovídajících řetězců. Slovník se inicializuje stejným způsobem jako v kodéru. Mezi výhody algoritmu patří vysoký stupeň komprese a poměrně vysoká rychlost komprese i dekódování.

Entropické kódovací algoritmy přiřaďte každému prvku sekvence kód tak, aby jeho délka odpovídala pravděpodobnosti výskytu prvku. Komprese nastává nahrazením prvků původní sekvence, které mají stejnou délku (každý prvek zabírá stejný počet bitů) prvky různých délek úměrných zápornému logaritmu pravděpodobnosti, tj. prvky, které se vyskytují častěji než jiné, mají kód menší délka.

Huffmanův algoritmus používá předponový kód s proměnnou délkou, který má speciální vlastnost: kratší kódy neodpovídají prefixu (počáteční části) delších. Takový kód umožňuje kódování jedna ku jedné. Proces komprese spočívá v nahrazení každého prvku vstupní sekvence jeho kódem. Konstrukce sady kódů se obvykle provádí pomocí tzv kódové stromy.

Huffmanův algoritmus je dvouprůchodový. První průchod obrazem vytvoří tabulku hmotností prvků a při druhém průchodu probíhá kódování. Existují implementace algoritmu pevné tabulky. Často se stává, že apriorní rozdělení pravděpodobnosti prvků abecedy je neznámé, protože celá sekvence není k dispozici najednou, přičemž se používají adaptivní modifikace Huffmanova algoritmu.

Ztrátová komprese obrazu. Množství informací potřebných k uložení obrázků je obvykle velké. Klasické algoritmy, které jsou univerzálními algoritmy, neberou v úvahu, že komprimovanou informací je obrázek - dvourozměrný objekt, a neposkytují dostatečný stupeň komprese.

Ztrátová komprese je založena na vlastnostech lidského vnímání obrazu: největší citlivost v určitém rozsahu barevných vln, schopnost vnímat obraz jako celek, bez povšimnutí malých zkreslení. Hlavní třídou obrázků, na které se zaměřují algoritmy ztrátové komprese, jsou fotografie, obrázky s hladkými barevnými přechody.

Odhad ztráty obrazu. Existuje mnoho měřítek pro odhad ztrát na snímcích po jejich obnovení (dekódování) z komprimovaných, nicméně pro všechny lze vybrat dva obrázky tak, aby jejich míra rozdílu byla dostatečně velká, ale rozdíly byly téměř nepostřehnutelné. oko. A naopak – můžete zachytit obrázky, které se velmi liší podle oka, ale mají malou míru rozdílu.

Standardní numerickou mírou ztráty je obvykle standardní odchylka (RMS) hodnot pixelů rekonstruovaného obrazu od originálu. Nejdůležitějším „měřítkem“ hodnocení ztráty je však názor pozorovatele. Čím méně rozdílů (nebo lépe jejich nepřítomnosti) pozorovatel detekuje, tím vyšší je kvalita kompresního algoritmu. Algoritmy ztrátové komprese často umožňují uživateli vybrat si množství „ztracených“ dat, tj. právo vybrat si mezi kvalitou a velikostí komprimovaného obrázku. Přirozeně, čím lepší vizuální kvalita při vyšším kompresním poměru, tím lepší je algoritmus.

Fourierova transformace. V obecném případě lze obraz považovat za funkci dvou proměnných, definovaných v bodech výsledného rastru. Množina takových funkcí na bodech pevného konečného rastru tvoří konečnorozměrný euklidovský prostor a lze na ně aplikovat diskrétní Fourierovu transformaci, tedy spektrální zobrazení obrazu. Poskytuje:

Nekorelovanost a nezávislost spektrálních koeficientů, tj. přesnost zobrazení jednoho koeficientu nezávisí na žádném jiném.

- Energetické zhutnění. Transformace ukládá základní informace v malém počtu koeficientů. Tato vlastnost je nejvýraznější u fotorealistických snímků.

Koeficienty spektrálního zobrazení jsou amplitudy prostorových frekvencí obrazu. Pro obrázky s hladké přechody většina informací je obsažena v nízkofrekvenčním spektru.

Kompresní algoritmus použitý ve formátu JPEG je založen na diskrétní kosinové Fourierově transformaci. Kompresní schéma v algoritmu je potrubí, kde tato transformace je pouze jednou z fází, ale jednou z hlavních. Algoritmus obsahuje následující hlavní operace:

1. Přeneste se do barevného prostoru YCbCr. Zde Y je luma složka, Cb a Cr jsou chrominanční složky. Lidské oko je citlivější na jas než na barvu. Proto je důležitější zachovat větší přesnost při vysílání Y než při vysílání Cb a Cr.

2. Diskrétní kosinová transformace (DCT). Obraz je rozdělen do bloků 8 × 8. Na každý blok je aplikována diskrétní kosinusová transformace (samostatně pro složky Y, Cb a Cr).

3. Redukce vysokofrekvenčních složek v maticích DCT. Lidské oko stěží zaznamená změny ve vysokofrekvenčních složkách, proto lze koeficienty odpovědné za vysoké frekvence uložit s menší přesností.

4. Cikcak řazení matic. Jedná se o speciální maticový průchod pro získání jednorozměrné sekvence. Nejprve přijde prvek T00, potom T01, T10, T1. Navíc u typických fotorealistických obrázků budou nejprve nenulové koeficienty odpovídající nízkofrekvenčním složkám a pak hodně nul (vysokofrekvenční složky).

5. Komprese nejprve metodou RLE a poté metodou Huffman.

Algoritmus obnovy obrazu funguje v opačném pořadí. Kompresní poměr je od 5 do 100 nebo vícekrát. Vizuální kvalita většiny fotorealistických obrázků přitom zůstává na dobré úrovni i při 15násobné kompresi. Algoritmus a formát jsou nejběžnější pro přenos a ukládání plnobarevných obrázků.

Vlnková transformace signály jsou zobecněním klasické Fourierovy transformace. Výraz "wavelet" (vlnka) v překladu z angličtiny znamená "malá (krátká) vlna". Vlnky jsou zobecněným názvem pro rodiny matematických funkcí určitého tvaru, které jsou lokální v čase a frekvenci a ve kterých jsou všechny funkce získávány z jedné základní funkce jejím posunutím a rozšiřováním podél časové osy.

Ve ztrátových kompresních algoritmech jsou zpravidla zachovány všechny operace kompresního potrubí s nahrazením diskrétní Fourierovy transformace diskrétní vlnkovou transformací. Vlnkové transformace mají velmi dobrou frekvenčně-prostorovou lokalizaci a v tomto ukazateli překonávají tradiční Fourierovy transformace. V tomto případě je možné použít silnější kvantizaci, čímž se zlepší vlastnosti sekvence pro následnou kompresi. Algoritmy komprese obrazu založené na této transformaci se stejným kompresním poměrem vykazují lepší výsledky při zachování kvality obrazu.

literatura

46. ​​​​et al. Rychlé algoritmy v digitálním zpracování obrazu. - M.: Rozhlas a komunikace, 1984. - 224 s.

47. Zpracování obrazu sóji. Část 2. Metody a algoritmy. - Sorosův vzdělávací časopis č. 3, 1996.

48. Šum chrupavky ze snímků založených na nelineárních algoritmech využívajících statistiku pořadí. - Yaroslavl State University, 2007.

49. Andreev televizní sledovací systémy. Část II. Aritmetika - logické základy a algoritmy. Tutorial. - Petrohrad: Petrohrad, GUITMO, 2005. - 88. léta.

51. Úvod do digitálního zpracování signálů (matematické základy) - M.: Moskevská státní univerzita, Laboratoř počítačové grafiky a multimédií, 2002. - http://pv. *****/dsp/dspcourse. pdf, http://dsp-book. *****/dspkurz. djvu, http://geogin. *****/archiv/dsp/dsp4.pdf.

1i. a další algoritmické základy rastrové grafiky. – Internetová univerzita informačních technologií. – http://www. *****/goto/kurz/rastrgraf/

2i. Lukin-Electronic Systems: Poznámky k přednášce. ITMO, 2004. - Petrohrad, MFF ITMO, 2004. - http://iff. *****/kons/oes/KL. htm

O zaznamenaných chybách a návrzích na doplnění: ****@***ru.

autorská práva©2008DavydovALE.PROTI.

Laboratoř #1

Algoritmy zpracování obrazu

Konvoluční operace

Konvoluce je velmi široký algoritmus, který lze použít jak pro předzpracování obrazu, tak pro rozpoznávání a identifikaci objektů. Nechť je obraz dán dvourozměrnou jasovou maticí F" a matici impulsní odezvy H. Matematicky konvoluce matice F s jádrem H lze definovat následujícím vzorcem:

kde M2xN2 - velikost matice konvolučního jádra. Velikost matice F rovná se (M1+M2-1)x(N1+N2-1), kde M1xN1 - velikost původní matrice F" . Matice F se získá z originálu přidáním prvků na okraje matice podle nějakého pravidla, aby se dostala na požadovanou velikost. Obvykle je původní matice doplněna nulami na okrajích na polovinu šířky matice. H vlevo a vpravo, respektive o polovinu výšky nahoru a totéž dolů. Pak velikost výsledné matice R bude stejný jako matice F" .

Konvoluci lze vypočítat přímo „projetím“ jedné matice přes druhou, jak již bylo ukázáno výše. Na Obr. 1 ukazuje schéma pro výpočet konvoluce (velikost matice masky je rovna 3x3). Na konvoluční operátor lze nahlížet jako na matici koeficientů (masek), které jsou násobeny prvek po prvku s vybraným fragmentem obrazu, následuje sumace pro získání nové hodnoty filtrovaného prvku obrazu. Tato matice může mít libovolnou velikost, nemusí být nutně čtvercová.

Rýže. 1. Realizace konvoluční operace.

Cvičení

    Implementujte algoritmus, který provádí operaci konvoluce původního obrazu s maticovou maskou.

    Velikost a typ maticové masky nastavuje uživatel.

    K implementaci různých algoritmů pro zpracování obrazu použijte následující matice masek:

    • k vyhlazení a potlačení šumu v obraze se používá maticová maska ​​3x3 následujícího tvaru:

    pro zdůraznění kontur se používají maticové masky následující formy:

1/9*

    K výběru kontur se používá maska ​​následujícího formuláře:

4. Implementujte mediánový filtr, který se používá k potlačení bodového a impulsního šumu. Obrazový pixel a jeho sousedé v uvažované oblasti jsou seřazeni do variační řady (ve vzestupných nebo sestupných hodnotách pixelů) a střední hodnota této variační řady je vybrána jako nová hodnota pixelu. Výsledkem průměrného filtrování je, že jakýkoli náhodný šum obsažený v obrázku bude účinně eliminován. Je to proto, že jakákoli náhodná náhlá změna intenzity pixelů v rámci uvažované oblasti bude vytříděna, tzn. bude umístěn buď nahoře nebo dole v seřazených hodnotách v dané oblasti a nebude se počítat, protože pro hodnotu nového prvku je vždy vybrána středová hodnota.

5. Implementujte embosovací algoritmus. Ražba se provádí podobným způsobem jako algoritmy průměrování nebo zvýraznění hran. Každý pixel v obrázku je zpracován 3x3 embosovacím jádrem (matrix-maska). Například jako embosovací jádro můžete použít následující matrici masky:

Poté, co je hodnota pixelu zpracována embosovacím strojem, je k ní přidáno 128. Hodnota pixelů pozadí se tak stane průměrnou šedou barvou (červená = 128, zelená = 128, modrá = 128). Částky vyšší než 255 lze zaokrouhlit nahoru na 255.

V reliéfní verzi obrázku se kontury zdají být vysunuty nad povrch. Směr zvýraznění obrázku lze změnit změnou pozic 1 a -1 v jádře. Pokud jsou například hodnoty 1 a -1 zaměněny, směr podsvícení se obrátí.

6. Akvarelizace obrazu. Akvarelový filtr obrázek transformuje a po zpracování vypadá, jako by byl napsán akvarelem:

    Prvním krokem při použití akvarelového filtru je vyhlazení barev na obrázku. Jedním ze způsobů vyhlazení je použití středního průměru barev v každém bodě. Barevná hodnota každého pixelu a jeho 24 sousedů (velikost matice-masky je 5x5) jsou uspořádány ve variační řadě v sestupném nebo vzestupném pořadí. Střední (třináctá) hodnota barvy v řadě variací je přiřazena centrálnímu pixelu.

    po vyhlazení barev je třeba použít filtr pro vylepšení okrajů, abyste zvýraznili okraje barevných přechodů.

Obrazová reprezentace

Existují dva hlavní typy reprezentace obrázků – vektorová a rastrová.

Ve vektorové reprezentaci je obraz popsán sadou čar (vektorů), které obsahují souřadnice počátečního a koncového bodu, zakřivení čar a další geometrické charakteristiky, pravidla pro konstrukci různých oblastí a barevných charakteristik jsou také popsáno. Jinými slovy, rastrová reprezentace vyžaduje vytvoření nějakého matematického modelu. Proto se vektorová reprezentace využívá především při řešení problémů syntézy obrazu. Ačkoli některé algoritmy rozpoznávání obrazu vyžadují pro svou práci vektorovou reprezentaci, kterou je nutné získat z původního obrazu.

Rastrový obrázek je jedna nebo více matic, které popisují prostorové rozložení charakteristik obrazu na určité kartézské souřadnicové síti. V tomto případě je obrázek sestaven ze sady bodů a má rastrovou strukturu. Hlavním prvkem rastrové reprezentace obrázku je pixel (zkratka slovního spojení „picture elements“), který má souřadnice v rastrovém souřadnicovém systému a některé atributy (barva, jas, průhlednost atd.). Počet pixelů podél souřadnic X a Y (horizontálně a vertikálně) nastavuje rozlišení (rozměr) reprezentace obrazu. Barva pixelu je dána jeho hloubkou, což je počet bitů potřebných k určení jakékoli barvy.

Rastrové obrázky se v závislosti na metodách nastavení barvy pixelu a vlastnostech původního obrázku dělí na:

Binární

Půltón

Paleta

plná barva

V binární reprezentaci může být barva pixelu buď bílá nebo černá a je zakódována v jednom bitu. Obrázek je matrice. Každý prvek I (i , j ) této matice má hodnotu buď 0 nebo 1, kde i je číslo řádku a je číslo sloupce j prvku odpovídajícího danému pixelu (obr. 1).

V obrázcích ve stupních šedi představují pixely hodnoty jasu odpovídající odstínům šedé. Maticové indexy popisující polotónový obrázek definují polohu pixelu na rastru a hodnotu prvku matice

- nastaví jeho jas I (i, j) (obr. 2).

Paletové obrázky jsou popsány dvěma maticemi (obr. 3). Jeden ukládá hodnoty indexů, které určují přístup k řádku matice palety. Matice palety je barevná mapa. Obsahuje 3 skupiny sloupců - odpovídající barvám červené "R", zelené "G" a modré "B". Nastaví barvu odpovídajícího pixelu.

Paleta je matice Nc 3, kde Nc je počet barev.

Algoritmy předběžného zpracování obrazu

Plně barevné obrázky - vestavěné RGB formát a jsou tři matice R (i, j), G (i, j), B (i, j). Odpovídající prvky každé matice obsahují hodnoty intenzity červené, zelené a modré barvy pro pixel určený maticovými indexy. Plnobarevný obrázek tedy nemá barevnou mapu a barva každého pixelu je reprezentována třemi čísly převzatými z odpovídajících matic (obr. 4).

Formát čísel v maticích může být buď celé číslo, nebo s plovoucí desetinnou čárkou. V prvním případě jde o tzv. digitalizované snímky získané pomocí různých zařízení – skenerů, digitálních fotoaparátů, televizních kamer atd. Právě v tomto formátu jsou informace o obrázcích uloženy ve standardních grafických souborech.

Druhá možnost slouží pro vnitřní reprezentaci obrázků při jejich zpracování. V tomto případě je vhodné normalizovat data intenzity na jeden rozsah, například na rozsah , a provádět různé výpočty s plovoucími čísly a poté převést výsledek do původního celočíselného tvaru. Tato metoda umožňuje snížit chyby ve výpočtech a zlepšit přesnost výsledku zpracování.

U plnobarevných obrázků je jednou z možností maximální počet barev, které mohou být v daném formátu reprezentovány. Nejčastěji používané obrázky mají 16, 256, 65536 (High Color) a 10,7 milionů (True Color) barev.

Algoritmy předběžného zpracování 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 předběžného zpracování obrazu

Indexová matice

31 15 03 09

paletová matice

Algoritmy předběžného zpracování obrazu

Plnobarevný obrázek lze znázornit nejen ve formátu RGB, ale také pomocí jiných barevných systémů.

V systému HSB je barva reprezentována následujícími barevnými charakteristikami: Hue - barevný tón;

Saturation - saturace; Jas – jas.

Předpokládá se, že tento barevný systém odpovídá zvláštnostem lidského vnímání barev.

V systému LAB je barva považována za kombinaci jasu (světlosti) a dvou nezávislých hodnot chrominance, které určují skutečnou barvu pixelu. Barevnost A - barevná složka se volí v rozsahu od purpurové po zelenou. Chromatičnost B - druhá barevná složka se volí z rozsahu od žluté po modrou.

Existují i ​​jiné systémy reprezentace barev. Přirozeně jsou všechny propojeny a z jedné reprezentace lze získat další. Rozmanitost barevných systémů je způsobena úlohami řešenými s jejich pomocí. Například je pohodlnější provádět korekci barev v systému LAB, reprodukovat obraz na obrazovce monitoru v RGB systém, tiskněte lépe,

Algoritmy předběžného zpracování obrazu

pomocí reprezentace CMYK. V každém případě však při zpracování obrázků a jejich rozpoznávání pracují s rastrovým zobrazením obrázků obsahujících jednu nebo více matic.

Klasifikace algoritmů předzpracování

Algoritmy předběžného zpracování obrazu jsou rozděleny do různých skupin v závislosti na klasifikačním prvku. Všechny algoritmy předběžného zpracování musí buď nějakým způsobem zlepšit kvalitu obrázků, nebo je převést do podoby, která je nejvhodnější pro následné zpracování.

Algoritmy zaměřené na zlepšení reprodukce barev obrazu se nazývají algoritmy korekce barev. Tato skupina také zahrnuje algoritmy, které pracují s obrázky ve stupních šedi, které mění jejich charakteristiky jasu a kontrastu.

Algoritmy zaměřené na zpracování prostorových charakteristik snímků se nazývají algoritmy prostorové filtrování. Tato skupina zahrnuje algoritmy pro potlačení šumu, algoritmy prostorového vyhlazování a algoritmy prostorového zesílení, algoritmy pro potlačení a zesílení prostorových frekvencí.

Algoritmy, které provádějí geometrické operace s obrazem, se nazývají algoritmy geometrického zpracování. Tyto zahrnují:

Algoritmy předběžného zpracování obrazu

Oříznutí obrázku - výběr určité části obdélníkového tvaru z původního obrázku;

Změna velikosti obrázku. Tyto algoritmy používají různé interpolační metody, aby buď správně doplnily chybějící pixely ve zvětšeném obrázku, nebo přepočítaly hodnoty pixelů, když je obrázek zmenšen.

Otočení obrazu. Tyto algoritmy otočí původní obrázek o daný úhel a správně přepočítají hodnoty pixelů pomocí různých metod interpolace.

Algoritmy, které provádějí transformace z jednoho barevného systému do druhého, se nazývají algoritmy konverze barev. Zahrnují také algoritmy pro převod barevných obrázků na stupně šedi a binarizační algoritmy, které převádějí původní obrázek na binární.

Algoritmy, které vybírají některé oblasti na původním snímku podle různých, často neformálních podmínek, se nazývají segmentační algoritmy. Příkladem takového algoritmu může být například algoritmus, který by měl zvýrazňovat oblasti textu a grafických informací na obrázku dokumentu, nebo algoritmus, který vybírá oblasti v obrázku textu, které patří jednotlivým slovům.

Algoritmy předběžného zpracování obrazu

Algoritmy prostorového filtrování

Prostorové filtrování obrazu v matematický tvar je diskrétní konvoluce diskrétního obrazu s určitou impulsní odezvou prostorového filtru

Pokud (i, j)

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

m N11 n N21

Im, If matice původního a filtrovaného obrazu, h je matice impulsní odezvy filtru,

N11, N21 dolní a horní hranice sloupců impulsní odezvy, N12, N22 levé a pravé hranice řádků impulsní odezvy.

Matici impulsní odezvy lze získat výpočtem prostorového filtru na základě daných parametrů. Metodám výpočtu prostorových filtrů je věnováno velké množství literatury. digitální filtrování, například . Pro praktické výpočty můžete použít standardní matematické balíčky, například systém „MATLAB“ obsahuje systém výpočtu filtrů „Image Filter Design“.

Všimněte si, že filtrování lze provádět také ve frekvenční doméně. V tomto

Algoritmy předběžného zpracování obrazu

V tomto případě je pořadí filtrování následující:

Převeďte obraz z prostorové do frekvenční oblasti pomocí 2D diskrétní Fourierovy transformace

Proveďte po prvcích násobení frekvenční matice obrazu frekvenční maticí filtru

Získaný výsledek je převeden do prostorové domény pomocí inverzní dvourozměrné diskrétní Fourierovy transformace.

jsem (x, y)

jsem (f x, f y)

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

Pokud (fx, f y)

Pokud (x, y).

Filtrování obrázků ve frekvenční oblasti se kvůli velkému množství výpočtů používá jen zřídka. Tato metoda filtrování je však široce používána v teoretických výpočtech při analýze možností zpracování obrazu. Umožňuje vám zcela jasně vizualizovat, jaký druh filtrování je potřeba. Pokud například potřebujete zvýraznit ostré změny jasu v obraze, pak je zřejmé, že musíte použít vysokopropustné filtry. Naopak pokud se potřebujete zbavit nízkofrekvenčního šumu - třesavých obvodů, jednotlivých špiček atd., pak je potřeba použít dolnopropustné filtry. Konkrétní parametry filtru jsou vybírány na základě frekvenční analýzy interference a vlastností původního snímku.