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í

Image
Tento obrázek ilustruje rozdíl mezi bitmapovými a vektorovými obrázky. Bitmapový obrázek se skládá z pevné sady pixelů, zatímco vektorový obrázek se skládá z pevné sady tvarů. Na obrázku změna měřítka bitmapy odhalí pixely, zatímco změna měřítka vektorového obrázku zachová tvary.

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

Image
Původní soubor PNG (37 kB)
Image
Ručně převedeno na SVG (9 kB)

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

Image
Mapa ve formátu PNG (13 kB)
Image
Mapujte po automatickém převodu a retušujte štítky a upravte barvy. (18 kB)

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

Image
I když tyto řádky mohou vypadat pevně, nejsou zdaleka dokonalé. Čáry byly nakresleny na pergamenu plnicím perem, 0,7 mm gelovým perem a 0,5 mm HB tužkou. Obrázky byly skenovány rychlostí 600 pixelů na palec s 24bitovým RGB. Šířky čar končí na šířce 10 až 14 pixelů. Barvy inkoustu nejsou jednotné a mají zrcadlové odrazy, které vnášejí do čar světelné pixely. Čáry tužky mají také vnitřní vady kvůli drsnosti (zubu) papíru. Sken má také některé neostré maskující artefakty.

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

Vektorizace je účinná u jednobarevných vstupních dat bez přechodu, jako jsou podpisy.

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.

Viz také

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í

externí odkazy