• Lineární filtrování v prostorové doméně. Úloha filtrování obrázků

    Tento článek pojednává nejen o nejběžnějších filtrech pro zpracování obrazu, ale také srozumitelným způsobem popisuje algoritmy pro jejich práci. Článek je určen především programátorům zabývajícím se zpracováním obrazu.

    Konvoluční matice

    Existuje mnoho filtrů, které používají konvoluční matici, ty hlavní budou popsány níže.

    Konvoluční matice je matice koeficientů, která se „vynásobí“ hodnotou pixelu obrázku, aby se dosáhlo požadovaného výsledku.
    Níže je aplikace konvoluční matice:

    div je normalizační faktor průměrná intenzita zůstal nezměněn.

    V příkladu má matice velikost 3x3, i když velikost může být větší.

    rozostření filtru

    Nejčastěji používaným filtrem založeným na konvoluční matici je filtr rozostření.

    Obvykle je matice vyplněna podle normálního (Gaussova) zákona. Níže je matice rozostření 5x5 vyplněná podle zákona Gaussova rozdělení.


    Koeficienty jsou již normalizovány, takže div pro tuto matici je jedna.

    Síla rozostření závisí na velikosti matrice.


    Za zmínku stojí okrajové podmínky (tento problém je relevantní pro všechny maticové filtry). Levý horní pixel nemá napravo od sebe „souseda“, takže nemáme čím násobit koeficient matice.

    Existují 2 řešení tohoto problému:

    1. Použití filtru, pouze na "okno" obrázku, které má souřadnice vlevo horní roh, a pro pravý dolní . kernelSize - velikost matice; šířka, výška - velikost obrázku.

    Není Nejlepší způsob, protože filtr není aplikován na celý obrázek. Pokud je velikost filtru velká, kvalita dost trpí.

    2. Druhá metoda vyžaduje vytvoření meziobrazu. Cílem je vytvořit dočasný obrázek s rozměry (šířka + 2 * kernelSize / 2, výška + 2 * kernelSize / 2). Vstupní obrázek se zkopíruje do středu obrázku a okraje se vyplní krajními pixely obrázku. Rozostření se aplikuje na mezilehlou vyrovnávací paměť a poté se z ní extrahuje výsledek.


    Tato metoda nemá žádné nevýhody v kvalitě, ale je nutné provést dodatečné výpočty.

    Gaussův filtr rozostření má složitost O(hi * wi * n * n), kde hi, wi jsou rozměry obrázku, n je velikost matice (jádra filtru). Tento algoritmus lze optimalizovat s přijatelnou kvalitou.

    Čtvercové jádro (matici) lze nahradit dvěma jednorozměrnými: horizontálním a vertikálním. Pro velikost jádra 5 budou vypadat takto:

    Filtr se aplikuje ve 2 průchodech: nejprve vodorovně a poté svisle na výsledek (nebo naopak).

    Složitost tento algoritmus bude O(hi * wi * n) + O(hi * wi * n) = 2 * O(hi * wi * n), což je pro velikost jádra větší než dva rychlejší než tradiční metoda čtvercové matice.

    Filtr vylepšení jasnosti

    Pro zlepšení jasnosti by měla být použita následující matice:

    Tato matice zvyšuje rozdíl hodnot na hranicích. Div pro tuto matici je 1.


    GIMP má filtr Convolution Matrix, který usnadňuje nalezení transformace matice, kterou potřebujete.

    Více detailní informace o filtrech založených na konvoluční matici najdete v článku "Grafické filtry založené na kroucené matici" .

    střední filtr

    Mediánový filtr se obvykle používá ke snížení šumu nebo „vyhlazení“ obrazu.

    Filtr pracuje s maticemi jiná velikost, ale na rozdíl od konvoluční matice ovlivňuje velikost matice pouze počet uvažovaných pixelů.

    Algoritmus středního filtru je následující:

    Pro aktuální pixel jsou pixely, které „spadnou“ do matice, seřazeny a průměrná hodnota je převzata z setříděného pole. Tato hodnota je výstupem pro aktuální pixel.

    Níže je uvedena funkce filtru medián pro velikost jádra tři.


    Nástavbové a erozní filtry slouží k získání morfologické expanze, respektive kontrakce. Zjednodušeně řečeno to u obrázků znamená vybrat pixel s maximální nebo minimální intenzitou z okolí.


    V důsledku nahromadění přibývá světlých objektů a eroze má za následek přibývání tmavých objektů.

    Použití filtru vstupní obrázek a binární matice. Binární matice určuje tvar okolí. Okolí má obvykle kulatý tvar.

    Filtr Buildup lze použít ke zvýšení jasů a jasných odrazů.

    Závěr

    Článek popisuje některé filtry pro zpracování obrazu, jejich algoritmy a funkce aplikace.

    Filtrování obrázků je 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 ve výsledném 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é 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. Suma je nad (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) ( zápis je 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/2 2) exp(-(i 2 +j 2)/2   Gaussův filtr má nenulovou hodnotu jádro nekonečně velké, ale hodnoty Jádro filtru klesá velmi rychle k nule, jak se vzdalujeme od bodu (0, 0), a proto se v praxi můžeme 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, vytvoří se filtry zlepšující kontrast obrácený efekt a v podstatě jsou to filtry vysokých prostorových frekvencí. 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 termínu 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í zásadní roli v mnoha aplikacích, například pro problémy s hledáním hranic v obraze.

    Nejjednodušší diferenciální operátor 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) 
    ,

    Gx x, y = [ A x -1, y -1 +2 A x -1, y + A x -1, y +1 ] - [ A x +1, y -1 +2 A x +1, y + A x +1, y +1 ],

    Gy x,y = - .

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

    (x, y) = argtg(Gy x,y /Gx x,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. Zejména diferenciální Laplaceův operátor (Laplacián) = 𝝏 2 /𝝏x 2 + 𝝏 2 /𝝏y 2, který je důležitý pro mnoho aplikací, lze pro diskrétní obrázky aproximovat filtrem 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ím 2D obrazových spekter a filtračního jádra. 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 rámci které se FFT provádí. 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ů mohou být uspořádány do variační řady V(r), řazeny vzestupně (nebo sestupně) a určité momenty této řady lze vypočítat, například průměrná hodnota jasu m N a disperze dN. Výpočet výstupní hodnoty filtru, který nahrazuje centrální vzorek, se provádí podle vzorce:

    B(x, y) = А(x, y) + (1-)m N . (17.3.2)

    Hodnota koeficientu  je spojena s určitou závislostí se statistikou vzorků v okně filtru, např.:

    d N /(d N + k d S), (17.3.3)

    kde d S je rozptyl šumu v obraze jako celku nebo v 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 d N  d S platí   0,5 a hodnota B(x, y) = (A(x, y) + m N)/2, tzn. se sčítají rovnoměrně z hodnot centrálního vzorku a průměrné hodnoty pixelů jeho M-okolí. S nárůstem hodnot d N roste příspěvek k výsledku hodnoty centrální reference, s poklesem hodnota m N . 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  na ní může být značně různorodá (např. podle rozptylů rozdílů čtení v M-okolí s centrálním čtením), a závisí jak na velikost otvoru filtru a na povaze snímků a šumu. Hodnota koeficientu  by v podstatě měla specifikovat míru poškození centrálního vzorku a podle toho i výpůjční funkci pro jeho korekci vzorků z M sousedství.

    Nejjednodušší a nejběžnější typy nelineárních filtrů pro zpracování obrazu jsou prahové a střední 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ů m N 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)),

    těch. 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 focení, „sněžný“ šum, kdy jsou některé pixely nahrazeny pixely s maximální intenzitou atd. Výhoda středního filtrování spočívá v tom, že „horký“ pixel na tmavém pozadí bude nahrazen tmavým, místo aby se „rozmazal“ kolem.

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

    Extrémní filtry určeno podle pravidel:

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

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

    těch. 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.

    Většinu zpracování obrazu lze provést bez opakování pro každý nový snímek Statistická analýza popsané v předchozí části. Omezené množství a priori informací je zcela dostačující. Předpokládejme, že známe matici společného výskytu pro „ideální“ obrázek a potřebujeme zlepšit kvalitu zašuměné verze tohoto obrázku. Pokud jsou největší prvky matice umístěny na hlavní diagonále nebo v její blízkosti, znamená to, že většina pixelů má stejnou barvu jako sousední pixely. Pokud chceme vyrovnat histogram takového snímku, pak, jak je ukázáno v Sek. 3.2 je vhodné použít pravidlo 3. Pokud je potřeba eliminovat šum, pak nahrazením hodnoty každého pixelu zašuměného obrazu nějakým váženým součtem hodnot sousedních pixelů snížíte variabilitu hodnot sousedních pixelů a dostaneme obrázek blíže k originálu (viz příklad 3.5). Dostáváme se tedy ke vztahu, který charakterizuje vztah mezi původním obrázkem a filtrovaným obrázkem:

    Proces, který tuto operaci implementuje, se nazývá lineární filtr, konkrétně filtr klouzavého průměru, protože při jeho použití je hodnota každého pixelu nahrazena jakýmsi průměrem z hodnot jeho sousedních prvků. Pokud se váhová funkce v rámci obrázku nemění a nezávisí na souřadnicích x, y, lze rovnici (3.2) přepsat do následující podoby:

    Tento proces se nazývá prostorově invariantní filtr. Tyto filtry jsou široce používány při zpracování časových signálů, ale účelnost jejich použití při zpracování obrazu není zřejmá. Rovnice (3.3) je zjednodušena, když je zapsána pomocí Fourierovy transformace. Může být zobrazen (viz kap.

    Výsledkem použití takového filtru je potlačení některých frekvencí a zesílení jiných v závislosti na H(u,

    Příklad 3.5. Pokud chcete vyčistit obraz od vysokofrekvenčního šumu, pak k implementaci takového vyhlazování můžete použít následující typ funkce

    Výsledek použití filtru lze odhadnout porovnáním rozdílu mezi hodnotami sousedních pixelů před a po filtraci. Zejména nejjednodušší výpočty ukazují, že

    Označíme-li maximem absolutního rozdílu mezi hodnotami sousedních pixelů původního obrázku a odpovídajícím rozdílem pixelů filtrovaného obrázku, pak z rovnice (36) vyplývá

    těch. je zřejmé, že tento rozdíl nemůže růst. když tam nějaký je lineární funkce na jejich argumentech V opačném případě se uvedený rozdíl sníží a oblasti obrazu se stanou homogennější Protože obvykle použití takového jednoduchého filtru nestačí k odstranění šumu, je třeba se uchýlit k použití filtru vyššího řádu. Jedna z možných implementací takového filtr je na výběr jednoduchý filtr a jeho vícenásobná aplikace na obraz Obrázky 39 a 310 ukazují výsledky filtrování na obrázcích 3.10 a ukazuje původní obrázek získaný z obrázku zobrazeného na obr. 3-9, superponováním gaussovského bílého šumu na tento obrázek, na obr. 3.10 b ukazuje osmkrát výsledky aplikace filtru dané rovnicí (3 5) Není těžké vidět, že tento proces nejen odstraňuje vysokofrekvenční šum, ale způsobuje i rozmazání okrajů obrazu.

    Rýže. 3.9 (viz sken) Původní obrázek použitý pro...

    Pokud totiž aplikujeme rovnici (3.6) na dobře definovaný okraj obrázku

    pak se to ukáže

    Jinými slovy, rozdíl mezi hodnotami sousedních pixelů byl poloviční a to přirozeně vedlo ke snížení kontrastu obrazu.

    Výsledky použití tohoto filtru lze také odhadnout uvažováním Fourierovy transformace funkce Uveďme si notaci

    Použijeme rovnici (34)

    Tento výraz lze zjednodušit pomocí identity

    a poté provedením nejjednodušších goniometrických transformací, výsledkem je, že výraz (3 8) má následující tvar

    Mnoho přístupů ke zlepšení obrazu spadá do dvou kategorií: techniky zpracování prostorové domény (prostorové metody) a techniky zpracování frekvenční domény (frekvenční metody). Prostorová doména označuje soubor pixelů, které tvoří obraz. Funkce předběžného zpracování v prostorové doméně je zapsána jako

    Kde F(X, y) je vstupní obrázek,

    G(X, y) – výstupní (zpracovaný) obrázek,

    h- operátor funkce F, definované v nějaké oblasti ( X, y).

    Operace tohoto druhu patří do obecné třídy operace na sousedních prvcích. Tyto operace jsou hlavními nástroji pro nízkoúrovňové zpracování obrazu nebo zpracování obrázků v prostorové doméně.

    Hlavní přístup při určování okolí bodu ( X, y) je použití čtvercové nebo obdélníkové oblasti části obrazu se středem v bodě ( X, y). Střed této části obrázku se pohybuje od pixelu k pixelu, počínaje například od levého horního rohu. Aby však získal G(X, y) operátor se používá pro každou pozici ( X, y). Ačkoli se někdy používají jiné tvary sousedství (jako je kruh), upřednostňují se čtvercové tvary kvůli jejich snadné implementaci.

    Jedna z nejpoužívanějších metod prostorové domény je založena na použití filtrů (konvoluční masky, vzory, okna). Typicky je maska ​​filtru malý (například rozměr 3 * 3) dvourozměrný systém, jehož koeficienty jsou voleny tak, aby detekovaly danou vlastnost obrazu (obr. 1.5, a).

    Rýže. 1.5: a – maska ​​filtru; b – koeficienty masky filtru

    Pokud množství w 1 ,w 2 ,…,w 9 jsou koeficienty, masky pixelů ( X, y) a jeho osmi sousedů (obr. 1.5, b), pak lze algoritmus reprezentovat jako provádění následující operace na okolí 3 * 3 bodů (X, y) :

    Problémem filtrace obrazu v širokém slova smyslu se rozumí jakákoli procedura zpracování obrazu, ve které je vstup procedury bitmapa a výstupem je bitmapa. Častěji je však „filtrace“ chápána jako tzv rušení filtrace. Hlavním cílem filtrování šumu je zpracovat snímky tak, aby výsledek byl vhodnější pro konkrétní aplikaci. Obecně lze rozlišovat řádkové filtry(vyhlazovací filtry, filtry pro zvýšení kontrastu, rozdílové filtry) a nelineární filtry(střední filtr).

    Zde je stručný popis nejběžnějších metod filtrování.

    dolní propust– tlumí vysokofrekvenční složky a posiluje úlohu nízkofrekvenčních složek. Frekvence aplikovaná na obrázky odráží množství detailů přítomných v obrázku. Ostré změny jasu, rušení a šum jsou příklady vysokofrekvenčních prvků v obraze. Vyhlazení obrazu je implementováno pomocí následujících jader:

    ,

    ,

    .

    horní propust– zeslabuje nízkofrekvenční složky v obraze a posiluje roli vysokofrekvenčních. Vysokopropustné filtry se používají k vylepšení detailů, jako jsou obrysy, okraje, nebo k doostření obrazu. Každý skok v jasu a každý obrys je intenzivní detail spojený se zvýšenými frekvencemi. Výběr vysokofrekvenčních komponent se provádí pomocí následujících jader:

    ,

    ,

    .

    Operátor Roberts. Robertsův operátor je příkladem nelineárního filtru. Transformace každého pixelu pomocí křížového Robertsova operátoru může zobrazit derivaci obrázku podél nenulové úhlopříčky a kombinaci těchto transformovaných obrázků lze také vidět jako gradient od dvou horních pixelů ke dvěma spodním. Operátor Roberts se používá kvůli rychlosti výpočtu, ale ve srovnání s alternativami ztrácí kvůli značnému problému citlivosti na šum. Poskytuje tenčí čáry než jiné metody detekce hran.

    Na zpracování se podílejí čtyři pixely umístěné následovně (obr. 1.6).

    Rýže. 1.6. Pixely zapojené do zpracování operátorem Roberts

    Odpověď operátora Roberts:

    Konvoluční jádra v tento případ bude vypadat takto:

    ,

    .

    Konvoluce pro každé jádro se vypočítá samostatně. Odezvou tohoto filtru je hodnota

    , (1.17)

    Kde P A Q- odezva jader H 1 a H 2 .

    Někdy se množství bere jako operátor Roberts
    .

    Operátor Sobel. Sobelův operátor se používá v algoritmech detekce hranic. Jedná se o diskrétní diferenciální operátor, který vypočítává přibližnou hodnotu gradientu jasu obrazu. Výsledkem použití Sobelova operátoru v každém bodě obrázku je buď vektor gradientu jasu v tomto bodě, nebo jeho norma. Metoda zvýraznění hran využívající Sobelův operátor uvažuje dvě různá konvoluční jádra:

    Na základě těchto konvolucí se vypočítá velikost a směr hran. Konvoluce pro každé jádro se vypočítá samostatně. Odezvou tohoto filtru je hodnota

    , (1.19)

    Kde P A Q- odezva jader H 1 a H 2 .

    Někdy se množství bere jako operátor Sobel
    .

    Prewittův operátor. Prewittův operátor se chová podobně jako Sobelův operátor. Prewitt Edge Detector je vhodnou metodou pro odhad velikosti a orientace hranice. Zatímco diferenciální gradientový detektor potřebuje pracný výpočet odhadu orientace z veličin ve vertikálním a horizontálním směru, Prewittův hranový detektor udává směr přímo od jádra s maximálním výsledkem. Metoda zvýraznění hran pomocí Prewittova operátoru bere v úvahu dvě různá konvoluční jádra:

    Výsledkem práce operátora Prewitt je

    , (1.21)

    Kde P A Q- odezva jader H 1 a H 2 .

    Laplaceův operátor. Diskrétní Laplaceův operátor se často používá při zpracování obrazu, jako jsou aplikace pro detekci hran nebo odhad pohybu. Diskrétní Laplacián je definován jako součet druhých derivací a vypočítá se jako součet poklesů na sousedy centrálního pixelu. Laplaceova metoda vylepšení hran bere v úvahu řadu různých konvolučních jader. Tady jsou některé z nich:

    Jak vidíte, součet prvků matice je roven nule, takže odezva filtru může být záporná. V tomto případě se odezva bere modulo. V důsledku zpracování se oblasti s konstantní nebo lineárně rostoucí intenzitou zčernají a oblasti s rychle se měnícími hodnotami intenzity jsou jasně zvýrazněny.

    Níže jsou uvedeny některé prostorové procesy, které nespadají do kategorie konvoluce a lze je použít k odstranění jiný druh hluk.

    Filtr harmonického průměru. Harmonický průměr řady
    vypočítané podle vzorce

    . (1.23)

    Během procesu filtrování je hodnota aktuálního obrazového bodu nahrazena hodnotou
    sady hodnot devíti pixelů, včetně aktuálních a sousedních.

    Min- filtr. Během filtrování je hodnota aktuálního pixelu nahrazena minimální hodnotou sousedních pixelů. Takže například pro jádro dimenze 3 budeme mít:

    Max- filtr. Při filtrování je hodnota aktuálního pixelu nahrazena maximální hodnotou sousedních pixelů (podobně jako u předchozího filtru).

    Min- Max-filtr. Během procesu filtrování je hodnota aktuálního pixelu obrázku nejprve nahrazena minimální hodnotou sousedních pixelů a během druhého průchodu maximální hodnotou.

    střední filtr. Filtrování průměru používá hodnoty prvků obsažených v oblasti sousedství k určení nové hodnoty. Filtr uspořádá prvky sousednosti v seřazeném pořadí a vezme průměrnou hodnotu. Takže například pro jádro dimenze 3 bude střední hodnota pátá:

    Pomocí metod prostorového zpracování obrazu lze získat sérii zajímavé efekty. Pojďme se na některé z nich podívat.

    Embossovací efekt. Pomocí operace konvoluce můžete implementovat transformaci, která dodá obrazu efekt embosování.

    (1.24)

    Binární "pseudo-šedi" obrázek. Původní obrázek je zpracován pomocí masky D2 nebo D4: pokud je hodnota pixelu menší než proporcionální hodnota odpovídajícího prvku masky, pak se nastaví na nulu, jinak se mu přiřadí 255. Maska se aplikuje na obrázek bez překrytí. Masky D2 a D4:

    ,

    .

    Při použití prostorových procesů mohou vyvstat následující otázky související se zvláštnostmi zpracování pixelů:

      Eliminace okrajových efektů;

      Hodnota odezvy je mimo rozsah.

    U první otázky jsou možná následující řešení:

      Vyloučit okrajové pixely obrázku z transformace

    v tomto případě bude mít výstupní obrázek menší velikost nebo bude přes hraniční pixely přebarven, například černou barvou;

      Nezahrnujte odpovídající pixel do součtu, rozdělte jeho váhu rovnoměrně mezi ostatní pixely v okolí;

      Doplňte (doplňte) původní obrázek přidáním požadovaného počtu pixelů podél okraje. Počet řádků sloupců, které lze sestavit, zpravidla závisí na velikosti jádra. Zde jsou dvě možnosti:

      • Předefinujte hodnoty pixelů mimo hranice obrázku pomocí extrapolace. Uvažujme například hodnotu intenzity blízko hraniční konstanty nebo uvažujme gradient intenzity v blízkosti hraniční konstanty;

        Předefinujte hodnoty pixelů mimo hranice obrazu pomocí zrcadlení.

    Chcete-li vyřešit problémy související s hodnotou přesahující limity, jsou možné následující akce:

      Škálujte získané hodnoty s pozitivními odpověďmi filtru;

      Pokud je odezva filtru záporná, vezměte buď absolutní hodnotu (modulo), nebo veďte k nule.

    Také v této části stojí za to uvést možnou „klasifikaci“ šumu na obrázku:

      Šum "sůl a pepř" - náhodné bílé a černé pixely;

      Impulzní šum - náhodné bílé pixely;

      Gaussův šum - kolísání intenzity rozložené podle normálního zákona.

    Anotace: Úvod. Lineární filtry: definice, vyhlazovací filtry, filtry pro zvýšení kontrastu, rozdílové filtry. Nelineární filtry: Žádné příklady lineární filtry, morfologické operátory

    8.1. Úvod

    Představte si, že když se na nějakou scénu díváme jedním okem, přinášíme k ní skleněnou desku. Pokud by tato deska nebyla dokonale průhledná, pak by se pozorovaný obraz změnil. V závislosti na skle, ze kterého je deska vyrobena, může být změna velmi různorodá. Pokud bylo například toto sklo barevné, pak obraz získá příslušný odstín a ze zakaleného skla bude rozmazaný.

    Filtrování obrázků podobný pohledu na svět přes skleněnou desku, i když umožňuje dosáhnout mnohem větší rozmanitosti efektů než experimenty s různými deskami. Filtrování obrázků je 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 ve výsledném obrázku způsobena intenzitou (barvami) pixelů umístěných v některém z jeho sousedství v původním obrázku.

    Pravidla filtrování (tzv filtry) mohou být velmi odlišné. V této přednášce se podíváme na nejjednodušší filtry. Všimněte si, že podle navrhované definice je operace spočívající v následné aplikaci dvou nebo více filtrací také filtrací. Dá se tedy mluvit o kompozitní filtry odpovídající kombinacím prvočísel. Po prostudování hlavních typů filtrů v této přednášce se budeme v následujících přednáškách zabývat použitím z nich složených filtrů pro řešení různých problémů. 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. Ve skutečnosti práce velké většiny metod začíná tím či oním filtrováním původních obrázků. Filtry probírané v této přednášce jsou proto nesmírně důležité z hlediska jejich aplikace v různé aplikace.

    8.2. Linkové filtry

    Definice

    (8.1)

    Výsledkem je obrázek B. V definici (8.1) jsme vynechali limity součtu. Obvykle je jádro filtru nenulové pouze v nějakém okolí N bodu (0, 0) . Mimo toto okolí je F(i, j) buď přesně nula, nebo je jí velmi blízko, takže ji lze zanedbat. Součet v (8.1) je u konce a hodnota každého pixelu B(x, y) je určena pixely A, které leží v okně N se středem v bodě (x, y) (tuto množinu označíme N (x, y)). Jádro filtru, definované na pravoúhlém sousedství N, může být viděno jako matice m x n, kde délky stran jsou lichá čísla. Když specifikujete jádro pomocí matice M kl , mělo by být vystředěno:

    (8.2)

    Dodatečné objasnění potřebuje i situace, kdy se pixel (x, y) nachází v blízkosti okrajů obrazu. V tomto případě může A(x + i, y + j) v definici (8.1) odpovídat pixelu A ležícímu mimo obraz A. Tento problém lze vyřešit několika způsoby.

    • Nefiltrujte takové pixely oříznutím obrázku B kolem okrajů nebo jeho malováním, například černou barvou.
    • Nezahrnujte odpovídající pixel do součtu, rozdělte jeho váhu F(i, j) rovnoměrně mezi ostatní pixely v okolí N(x, y) .
    • Předefinujte hodnoty pixelů mimo hranice obrázku pomocí extrapolace. Uvažujme například hodnotu intenzity blízko hraniční konstanty (pro pixel (-2, 5) máme A(-2, 5) = A(0, 5) ) nebo uvažujme gradient intenzity poblíž hraniční konstanty ( A(-2, 5) = A(0, 5) + 2(A(0, 5) - A(1, 5))).
    • Předefinujte hodnoty pixelů mimo hranice obrázku pomocí zrcadlový odraz(A(-2,5) = A(2,5)).

    Výběr konkrétní metody musí být proveden s ohledem na konkrétní filtr a vlastnosti konkrétní aplikace.

    Po demontáži obecná definice lineární filtry, přejděme k příkladům.