Škálovací Algoritmy 2D Obrazu

Škálovací Algoritmy 2D Obrazu

Masarykova univerzita v Brně Fakulta informatiky Škálovací algoritmy 2D obrazu Bakalářská práce Jan Rybář Brno, 2012 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samo- statně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Jan Rybář Poděkování Chtěl bych tímto poděkovat svému vedoucímu práce, panu doktoru Petru Tobolovi, za umožnění práce na tomto tématu, cenné rady, ale především za nezměrnou ochotu a trpě- livost. Dále bych rád věnoval dík všem svým přátelům a kolegům, jejichž zkušenosti mi pomohly tuto práci sepsat. V neposlední řadě také děkuji své rodině, která respektovala mou dlouhodobou absenci, a dalším lidem, kteří mě nejen v době psaní podporovali. Shrnutí Tato práce se zaměřuje na problematiku změny rozlišení digitálního obrazu, především jeho zvětšení. V úvodní části textu je probrána klíčová teorie a základy zpracování obrazu včetně jeho reprezentace ve výpočetní technice. Jádro textu popisuje nejpoužívanější techniky řešení problému transformace obrazu, jejich princip a způsob užití. Ve zbytku textu je rozebrána programová implementace těchto technik. V závěru je srovnání vzorových obrazů po průchodu programem a efektivita zmíněných metod. Klíčová slova Škálování, transformace obrazu, rozlišení, rastr, bitmapa, převzorkování, interpolace, ob- razový filtr, konvoluce, pixel art Obsah 1 Úvod 9 2 Teorie 10 2.1 Digitální obraz 10 2.2 Škálování obrazu 10 2.3 Převzorkování 11 2.4 Interpolace 11 3 Metody 12 3.1 Konvoluce 12 3.2 Základní interpolace 13 3.2.1 Nearest neighbour interpolace 13 3.2.2 Bilineární interpolace 13 3.3 Funkce vyšších řádů 14 3.3.1 Sinc(x), Windowed funkce 15 3.3.2 Kubická interpolace 16 3.3.3 Lanczosova interpolace 17 3.4 Pixel Art 18 3.4.1 Hq2x 19 3.4.2 2xSaI 19 4 Implementace 21 4.1 Vstupní formáty 21 4.1.1 BMP 21 4.1.2 JPEG a kompresní formáty 22 4.2 Nástroje, knihovny, prostředí 22 4.3 Kód programu 25 4.3.1 Hlavní program 25 4.3.2 Jednoduché interpolace 25 4.3.3 Interpolace konvolucí 26 4.3.4 Optimalizace konvoluce 27 4.3.5 Hq2x 28 4.3.6 2xSaI 28 4.4 Použití programu 30 5 Výsledky 31 5.1 Výstupy 31 5.2 Metoda měření, testovací sestava 31 5.3 Rychlost algoritmů, užití 32 5.3.1 Naměřené časy 32 5.3.2 Užití algoritmů 34 5.4 Plány, budoucí vývoj 35 5.4.1 Program Scale 35 5.4.2 Interpolační metody 35 6 Závěr 36 7 Seznam ilustrací 37 7 8 Seznam tabulek 38 9 Seznam zkratek 39 10 Literatura 40 11 Příloha 42 8 1 Úvod Nejen hollywoodské filmy a moderní počítačová zábava dokazují, že se zlepšila vizuální kvali- ta obrazu. Nejen jeho reprezentace, ale i pořizování. Od konce osmdesátých let se díky novým technologiím povýšilo vnímání obrazových médií na hranici možností lidského oka. Změnou při- tom neprošla jen schopnost zobrazení virtuální reality, ale především samotná výstupní za- řízení, která moderní obraz produkují. Plně se digitalizoval veškerý přenášený signál, zvýšilo se rozlišení obrazovek a větší paměťový prostor počítačů umožnil realističtější vzhled textur a jakýchkoliv modelů. To pevně oddělilo i veškerý obsah, který byl do té doby vytvořen, od moderního pojetí obra- zu vzhledem ke kvalitě zpracování. Přesto je vhodné staré nekvalitní obrazové materiály uchovávat, protože často nadále nacházejí využití. Příkladem může být např. design s retrospek- tivní tématikou. Navíc je pro zobrazování na moderních zařízeních nezřídka kdy nutné jejich kvalitu zvyšovat. Právě schopnost zkvalitnit obraz nebo ho přizpůsobit pro jakékoliv účely je jedním z důleži- tých témat oboru zpracování digitálního obrazu. To se týká nejen starých obrazových děl, ale i těch současných, a to v mnoha odvětvích - počínaje domácí elektronikou, přes běžné fotoapa- ráty a jiné přístroje na snímání obrazu, až po grafický design. Tam jsou obrazové transformace běžnou záležitostí. Jednou z možností zlepšení kvality obrazového materiálu je zvýšit rozlišení, tj. převzorkovat získaná data s ohledem na použitý výstupní hardware. Prakticky každý obrazový výstup musí být upraven na parametry zobrazovacího zařízení nebo média. Operace na rastrových obrazech jsou ale náročné úkony, které s sebou přináší problémy. Ty však mohou být řešeny četnými způ- soby. Cílem této práce je seznámit čtenáře s problematikou úpravy a zvýšení kvality obrazu změnou jeho rozlišení, včetně postupů, kterými se tyto techniky provádějí. Záměrem je pře- devším uvést nejběžnější metody, postupy a algoritmy, které se často používají v akademické, obchodní i zábavní sféře. Dalším důvodem k sepsání tohoto textu je uvést i ty algoritmy, které nejsou běžné vzhledem k počtu implementací, ale přesto bývají rozšířené v úzké skupině uživatelů výpočetní techniky. Tyto jsou v práci zdokumentovány tak, aby byla umožněna jejich integrace do akademické sféry, kde byly dosud opomíjené i přes svůj potenciální přínos. Praktickým přínosem této práce je srovnávací posudek uvedených metodik a algoritmů a jejich programová implementace. Ta slouží především pro demonstrativní účely, ale zároveň je zpřístupněna pro veřejnost, kde je úprava obrazu doménou často pouze profesionálních grafiků. 9 2 Teorie 2.1 Digitální obraz Ve výpočetní technice je dvojrozměrný obraz reprezentován jako diskrétní signál digitálních dat. Tento signál lze získat buď prací s diskrétními hodnotami už při tvorbě výstupního obrazu, jako např. rastrovým kreslením, nebo nejčastěji digitalizací [1], tj. přechodem od spojité ob- razové funkce k diskrétní. Takového přechodu se dosahuje snímáním hodnot spojité funkce v pevných intervalech v čase nebo prostoru, neboli kvantizací (převedení snímaných reálných hodnot na celočíselné) a vzorkováním (angl. sampling). Spojitá obrazová funkce je funkce dvou proměnných, souřadnic x, y, a může být především reprezentací obrazu v reálném světě. Jejími hodnotami jsou pak barvy na daných souřadnicích, vyjádřitelné v teoreticky nekonečně přesných reálných hodnotách. Ve vektorové grafice se pak diskrétní obraz tvoří vzorkováním pa- rametrického zápisu matematických funkcí, které popisují požadované modely (parametrické kružnice, geometrické útvary, linky). Výsledkem je konečná uspořádaná množina digitálních dat, tedy celočíselně vyjádřených barev v rastru. Právě velikost intervalů, neboli frekvence vzorkování, je důležitá pro výslednou reprezentaci digitálního obsahu. Vzorkováním dochází ke ztrátě informací, a to nepřímo úměrně k vzorkovací frekvenci. S vyšší frekvencí je nasnímaný obraz přesnější vůči originální předloze, zato však paměťově náročnější. 2.2 Škálování obrazu U dvojrozměrného obrazu je jeho vzorkování a rozlišení (bodová velikost obrazu) v přímé úměře. V případech, kdy je jeho rozlišení nevyhovující, je možné tuto vlastnost rastru změnit zvětšením (angl. upscaling), nebo zmenšením (angl. downscaling), pokud je na původní obraz I(u,v) aplikována geometrická transformace, jak jak je uvedeno v [1] a následujícím vzorci: ( )=[ ( ) ( )] T u ,v x u ,v , y u ,v , (1) kde u, v jsou celočíselné souřadnice původního obrazu a funkce vrací novou polohu pixelu. Cí- lem je vytvořit nový obraz I'(u', v'), ve kterém budou všechny souřadnice diskrétní [2]. Operací ale mohou vzniknout neceločíselné hodnoty pozic pixelů. K řešení problému se používá tech- nika mapování se dvěma možnými přístupy [2]: • Source-to-Target • Target-to-Source První jmenovaný pro každý pixel původního obrazu vypočítává pozici v novém rastru. Ačkoliv tento přístup vypadá přirozeně, může komplikovat tvorbu cílového obrazu tím, že buď nová 10 hodnota nebude korespondovat se žádným zdrojovým pixelem, nebo bude pro algoritmus ne- snadné rozhodnout, na které celočíselné hodnoty se má zdrojový pixel mapovat. V praxi se častěji používá druhý přístup, který pro každý pixel v novém obraze I'(u', v') hledá zdrojový pixel původního obrázku. Tím je možné se výše zmíněným problémům většinou vy- hnout. Zejména se pak zamezí vzniku prázdných „děr“ v I'(u', v'). Tento druh mapování však pro výpočet původních souřadnic vyžaduje inverzi původní transformace [2] − (u ,v)=T 1(u' ,v '). (2) U diskrétního 2D obrazu vzniká problém, kdy transformace, jako např. zvětšení obrazu, odhalí nedostatek informací v původních diskrétních datech, následkem čehož v novém obraze vznika- jí zmíněné díry [1], pixely, které nemohou nést informaci o barvě. Tento problém je způsoben nedostatečným vzorkováním digitalizovaného signálu. Běžně se proto řeší novým sejmutím a digitalizací hodnot původní spojité obrazové funkce (např. nové skenování, nafocení, vykres- lení vektorových dat), nebo rekonstrukcí a převzorkováním [1] (kap. 2.3). 2.3 Převzorkování Při přechodu ze spojité obrazové funkce na diskrétní se ztratí množství dat, která jsou ale dů- ležitá při některých obrazových transformacích, např. při zvětšení rozlišení obrazu. Aby nedo- cházelo ke vzniku prázdných pixelů (kap. 2.2), je nutné původní spojitý obraz rekonstruovat, tj. přejít z diskrétní obrazové funkce zpět na spojitou. Na této funkci je možné provést poža- dovanou geometrickou transformaci. Výsledné neceločíselné hodnoty se poté znovu vzorkují, tentokrát s vyšší frekvencí. Tento proces je nazýván „převzorkováním“ [1]. 2.4 Interpolace Spojitou funkci lze z diskrétních dat digitalizovaného obrazu získat už pouze aproximací. Právě způsob aproximace určuje různé metody, které se liší kvalitou a rychlostí [1]. Pro dopočí- tání mezilehlých hodnot mezi jednotlivými pixely vzorkované funkce se používá interpolace. Její účel je co možná nejpřesněji určit optimální hodnotu spojité funkce v jakémkoliv čase mezi body obrazu, aby

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    42 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us