Trasování obrazu - Image tracing
V počítačové grafice , sledování obrazu , konverzi rastrů na vektorovou či vektorizaci je přeměna rastrové grafiky na vektorovou grafiku .
Pozadí
Obrázek nemá žádnou strukturu: je to jen kolekce značek na papíře, zrn ve filmu nebo pixelů v bitmapě . I když je takový obrázek užitečný, má určitá omezení. Pokud je obraz dostatečně zvětšen, objeví se jeho artefakty. Polotónové body, zrna filmu a pixely se stanou patrnými. Obraz ostrých hran je rozmazaný nebo zubatý. Viz například pixelace . V ideálním případě nemá vektorový obrázek stejný problém. Hrany a vyplněné oblasti jsou reprezentovány jako matematických křivek nebo přechody, a mohou být zvětšeny libovolně (i když samozřejmě výsledný obraz musí být také rastrovat ve které mají být poskytnuty, a jeho kvalita závisí na kvalitě algoritmu rastrování pro dané vstupy) .
Úkolem ve vektorizaci je převést dvourozměrný obraz na dvourozměrnou vektorovou reprezentaci obrazu. Nezkoumá obraz a pokouší se rozpoznat nebo extrahovat trojrozměrný model, který může být zobrazen; tj. nejde o systém vidění . U většiny aplikací vektorizace také nezahrnuje optické rozpoznávání znaků ; znaky jsou považovány za čáry, křivky nebo vyplněné objekty, aniž by jim připisovaly jakýkoli význam. Ve vektorizaci je tvar postavy zachován, takže umělecké ozdoby zůstávají.
Vektorizace je inverzní operace odpovídající rasterizaci , protože integrace je diferenciace . A stejně jako u těchto dalších dvou operací, zatímco rasterizace je poměrně přímočará a algoritmická, vektorizace zahrnuje rekonstrukci ztracených informací, a proto vyžaduje heuristické metody.
Pro vektorizaci jsou vhodné syntetické obrázky, jako jsou mapy, karikatury, loga, kliparty a technické výkresy. Tyto obrázky mohly být původně vytvořeny jako vektorové obrázky, protože jsou založeny na geometrických tvarech nebo jsou nakresleny jednoduchými křivkami.
Kontinuální tónové fotografie (například živé portréty) nejsou vhodnými kandidáty pro vektorizaci.
Vstupem do vektorizace je obrázek, ale obrázek může mít mnoho podob, například fotografii, kresbu na papíře nebo jeden z několika formátů rastrových souborů . Programy, které provádějí převod z rastru na vektor, mohou přijímat bitmapové formáty jako TIFF , BMP a PNG .
Výstupem je vektorový formát souboru . Běžné vektorové formáty jsou SVG , DXF , EPS , EMF a AI .
Vektorizaci lze použít k aktualizaci obrázků nebo obnovení práce. Osobní počítače často přicházejí s jednoduchým programem pro malování, který vytváří bitmapový výstupní soubor. Tyto programy umožňují uživatelům vytvářet jednoduché ilustrace přidáním textu, nakreslením obrysů a vyplněním obrysů určitou barvou. Ve výsledné bitmapě jsou uloženy pouze výsledky těchto operací (pixely); operace kreslení a plnění jsou zahozeny. Vektorizaci lze použít k opětovnému získání některých ztracených informací.
Vektorizace se také používá k obnovení informací, které byly původně ve vektorovém formátu, ale byly ztraceny nebo se staly nedostupnými. Společnost si možná objednala logo od grafické firmy. Ačkoli grafická firma použila vektorový formát, klientská společnost nemusí obdržet kopii tohoto formátu. Společnost pak může získat vektorový formát skenováním a vektorizací papírové kopie loga.
Proces
Vektorizace začíná obrázkem.
Manuál
Obrázek lze vektorizovat ručně. Osoba se mohla podívat na obrázek, provést některá měření a poté ručně napsat výstupní soubor. To byl případ vektorizace technické ilustrace o neutrinech. Ilustrace má několik geometrických tvarů a hodně textu; převést tvary bylo relativně snadné a vektorový formát SVG umožňuje snadné zadávání textu (i dolních a horních).
Původní obrázek neměl žádné křivky (kromě textu), takže převod je přímý. Křivky komplikují převod. Ruční vektorizaci komplikovaných tvarů lze usnadnit funkcí trasování zabudovanou do některých programů pro úpravu vektorové grafiky .
Pokud obrázek ještě není ve strojově čitelné formě, musí být naskenován do použitelného formátu souboru.
Jakmile je k dispozici strojově čitelná bitmapa, lze obrázek importovat do programu pro úpravu grafiky (například Adobe Illustrator , CorelDRAW nebo Inkscape ). Poté může osoba ručně vystopovat prvky obrazu pomocí editačních funkcí programu. Křivky v původním obrázku lze aproximovat pomocí čar, oblouků a Bézierových křivek. Ilustrační program umožňuje upravit spline uzly tak, aby těsně přiléhaly. Ruční vektorizace je možná, ale může to být zdlouhavé.
Ačkoli programy pro kreslení grafiky existují už dlouhou dobu, umělcům se může zdát, že zařízení pro kreslení od ruky jsou nepříjemná, i když se používá kreslicí tablet. Místo použití programu doporučuje společnost Pepper vytvořit počáteční skicu na papíře. Pepper místo skenování náčrtu a jeho trasování v počítači uvádí: „Ti, kdo ovládají grafický tablet a stylus, mohou provádět následující změny přímo v CorelDRAW pomocí skenování náčrtu jako podložky a kreslení přes něj. používat pero a inkoust a světelný stůl "; většina konečného obrazu byla vysledována ručně inkoustem. Později byl perokresba obrázku naskenována při 600 dpi, vyčištěna v programu Malování a poté automaticky sledována programem. Jakmile byl černobílý obrázek v grafickém programu, byly přidány některé další prvky a obrázek byl zbarven.
Podobně Ploch vytvořil design z digitální fotografie. Soubor JPEG byl importován a některé „základní tvary“ byly ručně sledovány a obarveny v programu pro kreslení grafiky; složitější tvary byly zpracovány odlišně. Ploch použil bitmapový editor k odstranění pozadí a oříznutí složitějších komponent obrazu. Poté obraz vytiskl a ručně ho obkreslil na pauzovací papír, aby získal čistou černobílou perokresbu. Ten výkres byl naskenován a poté vektorizován programem.
Automatický
Existují programy, které automatizují proces vektorizace. Příkladem programů je Adobe Streamline (ukončeno), Corel's PowerTRACE a Potrace . Některé z těchto programů mají rozhraní příkazového řádku, zatímco jiné jsou interaktivní, což uživateli umožňuje upravit nastavení převodu a zobrazit výsledek. Adobe Streamline není jen interaktivní program, ale také umožňuje uživateli ručně upravovat vstupní bitmapu a výstupní křivky. Corel's PowerTRACE je přístupný přes CorelDRAW; CorelDRAW lze použít k úpravě vstupní bitmapy a úpravám výstupních křivek. Adobe Illustrator má možnost sledovat jednotlivé křivky.
Automatizované programy mohou mít smíšené výsledky. K převodu mapy PNG na SVG byl použit program (PowerTRACE). Program odvedl dobrou práci na hranicích mapy (nejnáročnější úkol při trasování) a v nastavení vypadl veškerý text (malé objekty). Text byl znovu vložen ručně.
Jiné převody nemusí také fungovat. Výsledky závisí na kvalitních skenech, rozumném nastavení a dobrých algoritmech.
Naskenované obrázky mají často hodně šumu. K vyčištění bitmapového obrázku může být zapotřebí hodně práce. Vymažte zbloudilé značky a vyplňte čáry a oblasti.
Rada Corel: Umístěte obrázek na světlý stůl, přikryjte pergamenem ( pauzovacím papírem ) a poté ručně vytiskněte požadované obrysy. Poté naskenujte pergamen a použijte na tomto skenování automatizovaný program převodu rastr na vektor.
Možnosti
Existuje mnoho různých stylů a možností obrázků a žádná jednotlivá metoda vektorizace nefunguje dobře na všech obrázcích. V důsledku toho mají vektorizační programy mnoho možností, které ovlivňují výsledek.
Jedním z problémů je, jaké jsou převládající tvary. Pokud má obrázek vyplňovací formulář, bude pravděpodobně mít pouze svislé a vodorovné čáry konstantní šířky. Vectorizace programu by to měla vzít v úvahu. Na druhou stranu výkres CAD může mít čáry v libovolném úhlu, mohou existovat zakřivené čáry a může existovat několik vah čar (tlusté pro objekty a tenké pro kótovací čáry). Místo (nebo navíc) křivek může obrázek obsahovat obrysy vyplněné stejnou barvou. Adobe Streamline umožňuje uživatelům vybrat kombinaci rozpoznávání čar (vodorovných a svislých čar), rozpoznávání středových čar nebo rozpoznávání obrysů. Streamline také umožňuje vyhodit obrysové tvary, které jsou malé; představa, že takové malé tvary jsou hluk. Uživatel může nastavit hladinu hluku mezi 0 a 1000; obrys, který má méně pixelů než toto nastavení, je zahozen.
Dalším problémem je počet barev v obrázku. Dokonce i obrázky, které byly vytvořeny jako černé na bílém výkresu, mohou skončit mnoha odstíny šedé. Některé rutiny kreslení čar používají vyhlazování; pixel zcela zakrytý čarou bude černý, ale pixel, který je zakryt pouze částečně, bude šedý. Pokud je původní obrázek na papíře a je naskenován, dojde k podobnému výsledku: okrajové pixely budou šedé. Někdy jsou obrázky komprimovány (např. Obrázky JPEG) a při kompresi budou zavedeny úrovně šedé.
Mnoho z vektorizačních programů seskupí pixely stejné barvy do čar, křivek nebo obrysových tvarů. Pokud je každá možná barva seskupena do vlastního objektu, může existovat enormní počet objektů. Místo toho je uživatel vyzván k výběru konečného počtu barev (obvykle méně než 256), obrázek se zredukuje na použití těchto mnoha barev (tento krok je kvantizace barev ) a poté se provede vektorizace na redukovaném obrázku. U obrazů s nepřetržitým tónem, jako jsou fotografie, je výsledkem kvantizace barev posterizace . Gradientní výplně budou také plakátovány.
Snížení počtu barev v obrázku je často podporováno histogramem. Jako zástupce lze vybrat nejběžnější barvy a ostatní barvy se namapují na jejich nejbližšího zástupce. Pokud je počet barev nastaven na dvě, může být uživatel vyzván k nastavení prahové hodnoty a kontrastu. Nastavení kontrastu hledá spíše významné změny barvy pixelu než konkrétní barvy; v důsledku toho může ignorovat postupné barevné variace v přechodové výplni . Jakmile byl obrys extrahován, uživatel mohl ručně znovu vyplnit přechodovou výplň.
Vektorizační program bude chtít seskupit oblast stejné barvy do jednoho objektu. To může jasně udělat tím, že hranice regionu přesně sleduje hranice pixelů, ale výsledkem bude hranice často krátkých ortogonálních čar. Výsledná konverze bude mít stejné problémy s pixelací, jaké má bitmapa, když je zvětšena. Místo toho musí vektorizační program aproximovat hranici regionu s čarami a křivkami, které těsně sledují hranice pixelů, ale nejsou přesně hranicemi pixelů. Parametr tolerance říká programu, jak přesně by měl sledovat hranice pixelů.
Konečným výsledkem mnoha vektorizačních programů jsou křivky skládající se z kubických Bézierových křivek . Hranice oblasti je aproximována několika segmenty křivky. Aby byla křivka hladká, spoje dvou křivek jsou omezeny tak, aby se tečny shodovaly. Jedním z problémů je určit, kde se křivka ohýbá tak ostře, že by neměla být hladká. Hladké části křivky se poté aproximují postupem Bézierovy křivky. Lze použít postupné dělení. Takový postup přizpůsobení se pokusí přizpůsobit křivku jedinou kubickou křivkou; pokud je přizpůsobení přijatelné, postup se zastaví. Jinak vybere nějaký výhodný bod podél křivky a rozdělí křivku na dvě části. Poté se přizpůsobí dílům, přičemž zachová tečnu spoje. Pokud je uložení stále nepřijatelné, rozdělí křivku na více částí.
Některé vektorizátory jsou samostatné programy, ale mnoho z nich má interaktivní rozhraní, která umožňují uživateli upravit parametry programu a rychle zobrazit výsledek. PowerTRACE může například zobrazit původní obrázek a zobrazit náhled převedeného obrázku, aby je uživatel mohl porovnat; program také hlásí informace, jako je počet křivek.
Příklad
Vpravo je ilustrace ukazující činnost radule u měkkýšů. Horní část je většinou obrysový diagram vyplněný šířkou jednoho pera, ale má výplň mřížkového přechodu podél dna skořápky a podél dna jídla. V levé horní části pláště má také několik uměleckých štětců. Spodní část obrázku má čtyři řádky a několik malých znaků; barevná výplň je jednoduchá až na přechod u zubatých čar.
Byl vysledován obraz 531 × 879 pixelů; Bylo použito 50 barev. Většina (ne-li všechny) řádků byla ztracena; byly proměněny v černé oblasti a jejich efektivní šířky čar se liší. Černý obrys kolem modré potraviny v horní části zmizel. Gradientní výplně a kartáčované skvrny byly ztraceny kvůli barevné kvantizaci / posterizaci; některé stopy štětce zmizely. Některá písmena přežila vektorizaci se zkreslením, ale většina dopisů byla zahozena. Ztráta dopisů není velký problém; úpravy po převodu by chtěly anotaci smazat a nahradit ji textem, nikoli křivkami. Tenké čáry přecházející pod mělkým úhlem vytvářely vyplněné oblasti a protínající se obrysy vyplněné oblasti byly zmatené; viz pravý dolní roh. Trasování má také několik zvláštních funkcí. Mnoho černých obrysů se dotýká, takže se stávají spíše velkým, komplikovaným objektem, než jen obrysy pro konkrétní oblasti. Namísto pouhého pozadí odděluje obdélníková bílá oblast dva obrysy obdélníku. Objekty označené op , rp a rr nejsou jednoduché vrstvené tvary; požadovaný výsledek by byl rr překryt rp, který je překryt op .
Používání domén
- V počítačově podporovaném designu (CAD) jsou výkresy ( plány atd.) Skenovány, vektorizovány a zapisovány jako soubory CAD v procesu zvaném převod z papíru na CAD nebo převod výkresu .
- V geografických informačních systémech (GIS) jsou satelitní nebo letecké snímky vektorizovány za účelem vytváření map .
- V grafickém designu a fotografii lze grafiku vektorizovat pro snazší použití a změnu velikosti.
- Vektorizace je často prvním krokem v řešeních OCR pro ručně psaný text nebo podpisy .
Vektorizace je účinná u jednobarevných vstupních dat bez přechodu, jako jsou podpisy.
Podpis Kryštofa Kolumba jako obrázek JPEG (1308 × 481 pixelů), 63 kB
Vektorizovaná dvoubarevná (černobílá) varianta podpisu Kryštofa Kolumba , 19 kB
Kontinuální tónové obrázky
Vektorizace je obvykle nevhodná pro obrazy s nepřetržitým tónem, jako jsou portréty. Výsledek je často špatný. Například na obrázek JPEG o velikosti 25 kB bylo použito mnoho různých algoritmů pro sledování obrazu. Výsledné vektorové obrázky jsou alespoň o desetkrát větší a mohou mít výrazné efekty posterizace, pokud se použije malý počet barev.
Fotografie ve formátu JPEG , 25 kB
Stejná fotografie vektorizovaná pomocí funkce AutoTrace v grafickém uživatelském rozhraní pro vymezení, 677 kB
Stejná fotografie vektorizovaná pomocí Scan2CAD , 340 kB
Viz také
- Rastrování
- Výměna dat CAD
- Porovnání softwaru pro převod rastru na vektor
- Digitalizace
- Chyba diskretizace
- Převzorkování
- Detekce funkcí (počítačové vidění)
- Detekce hrany
- Skener obrázků
- Optické rozpoznávání znaků
- Chyba kvantování
Reference
- Adobe (1992), Adobe Streamline User Guide (verze 3 pro Windows ed.), Mountain View, CA: Adobe Systems
- Adobe (srpen 1998), Uživatelská příručka Adobe Illustrator (verze 8.0 ed.), Mountain View, CA: Adobe Systems, 90012366
- Corel (2005), Uživatelská příručka , CorelDRAW X3 Graphics Suite, Ottawa, ON: Corel Corporation, str. 213–220
- Pepper, KN (2005), „Cartooning with CorelDRAW“, in Corel (ed.), CorelDRAW Handbook: Insights from the Experts , CorelDRAW X3 Graphics Suite, Corel Corporation, str. 64–77
- Ploch, Michael (2005), „Re-creating vintage designs on t-shirts“, in Corel (ed.), CorelDRAW Handbook: Insights from the Experts , CorelDRAW X3 Graphics Suite, Corel Corporation, str. 12–23
- Schneider, Philip J. (1990), „Algorithm for Automatically Fitting Digitalized Curves“, in Glassner, Andrew S. (ed.), Graphics Gems , Boston, MA: Academic Press, str. 612–626, ISBN 0-12-059756-X
Další čtení
- Avrahami, Gideon; Pratt, Vaughan , „Detekce hran subpixelů v digitalizaci znaků“ , Morris, R .; André, J. (eds.), Raster Imaging and Digital Typography II , Cambridge University Press, str. 54–64
- Itoh, Koichi; Ohno, Yoshio (září 1993), „Algoritmus přizpůsobení křivky pro znaková písma“, Electronic Publishing , John Wiley, 6 (3): 195–205, CiteSeerX 10.1.1.39.537