Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky ZVI Skeletizace Plzeň, 2006 Martin Chlupáč



Podobné dokumenty
Semestrální práce Mozaika aneb Co všechno umí pan Voronoi

Novinky v programu SKLADEK

13 Barvy a úpravy rastrového

CZ.1.07/1.5.00/ Zefektivnění výuky prostřednictvím ICT technologií III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Řešte s námi! Dlouhodobá soutěž v řešení sudoku a logických úloh TOP 10

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Návod na základní používání Helpdesku AGEL

Content Aware Image Resizing

INFORMATIKA PRO ZŠ. Ing. Veronika Šolcová

Konverze grafických rastrových formátů

45 Plánovací kalendář

Advance Concrete 2010 SP3 Co je nového. Tento dokument popisuje vylepšení a opravy, které jsou obsaževy v SP3

Návod na práci s katalogem konstrukcí a materiálů Obsah

Systém DV. Informační systém na podporu vzdělávacích aktivit a plánování osobního růstu zaměstnanců Ing.

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

ELEKTRONICKÁ EVIDENCE TRŽEB METODIKA ÚPRAVY TISKOVÝCH SESTAV (DOPLNĚNÍ EET)

Google Apps. kontakty. verze 2011

Novinky ISÚI a VDP verze

Uživatelská příručka pro respondenty

2.17 Webová grafika. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Hort. Vyrobeno pro SOŠ a SOU Kuřim, s.r.o.

Booklet soutěže družstev

Cvičení MI-PRC I. Šimeček

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Svolávací systém Uživatelský manuál

Hledání správné cesty

12 Metody snižování barevného prostoru

GEOM LITE - MANUÁL hlavní obrazovka

Geis Point Plugin Map

MANUÁL K PROGRAMU JEDNODUCHÝ SKLAD (VER-1.2)

Uživatelské postupy v ISÚI

MISYS. Seznam souřadnic

Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku

Jak definovat pravidlo pro více buněk naráz

PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP)

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Rozdílová dokumentace k ovládání IS KARAT.net

Monochromatické zobrazování

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Uživatelská příručka nabídky majetku státních institucí

Postup pro VOŠ při předávání dat ze školní matriky

Co je nového v GM EPC

Příprava dokumentů textovým procesorem II.

a) b) c) Radek Mařík

Logika je logika Úlohy na dvoudenní turnaj v Brně 2012

PR04 - PŘÍPRAVA REALIZACE PŘIJÍMACÍCH ZKOUŠEK

Technologické postupy práce s aktovkou IS MPP

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 10

Hybridní spis je realita. Tomáš Lechner Vysoká škola ekonomická v Praze Národohospodářská fakulta Katedra práva

ERP informační systém

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Hledat a označit 2 z 16

1. Popisové pole Rozměry a umístění popisového pole

JAK DEFINOVAT PRAVIDLO PRO VÍCE BUNĚK NARÁZ

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Co je nového 2018 R2

Maticové operace projekt č. 3

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Dealer Extranet 3. Správa objednávek

M Ů Ž E T E S E S P O L E H N O U T

Uživatelský manuál. pro program DPH_ZMENA. Servisní program pro uživatele systému Shop2000 Pro přechod na novou daňovou soustavu

ver. E.134 Manuál Skladové hospodářství - inventura

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Paralelní programování

Barvy a barevné systémy Formáty obrázků pro WWW

Manuál k e-learningovému vzdělávacímu modulu 1 MODUL HIGH-TECH POTRAVINY. Popularizace zdraví Po.Zdrav (CZ.1.07/3.1.00/ )

POZNÁMKY K VYDÁNÍ 3.1. Hilti ON!Track. Datum vydání:

Generalizace. Přednáška z předmětu Tematická kartografie (KMA/TKA) Otakar Čerba Západočeská univerzita

Popis výukového materiálu

Manuál QPos Pokladna V1.18.1


Novinky ISÚI a VDP verze (aktualizováno dne 17. srpna 2016)

Programátorská dokumentace

Systém elektronického rádce v životních situacích portálu

Vypracoval: Antonín Krumnikl Mob.: Tel.:

Barvy a barevné systémy Formáty obrázků pro WWW

Učebnice pro modeláře Ing. Ivo Mikač 2008

Dallmayr WebShop. Uživatelská příručka. Dallmayr WebShop. Uživatelská příručka. Tiliaris s. r. o Tiliaris s. r. o Strana 1 / 11

NPRG030 Programování I, 2010/11

Internetový obchod Mironet

Formuláře. Téma 3.2. Řešený příklad č Zadání: V databázi formulare_a_sestavy.accdb vytvořte formulář pro tabulku student.

7 Aktivace oznamování nových výzev

Zpracoval Ing. Ladislav Škraňka, Brno, březen 2012

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Definice kótování. Základní vlastnosti kótování

24 Uživatelské výběry

Informace, popis verze2 REG13 + Informace k filtrování - verze2 REG13. Informace, popis verze2 REG13

Výroková a predikátová logika - III

NPRG030 Programování I, 2016/17 1 / :58:13

POKROČILÉ ZPRACOVÁNÍ TEXTU

Záznamník trasy. Michal Sluštík Y39PDA ČVUT, FEL, Popis aplikace. Specifikace požadavků

Program Půjčovna sportovních potřeb

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Účetní speciál pro uživatele Informačního systému Signys

Standardní operační postup (SOP) ČNRDD/M01/verze03. Práce s databází RDKD

Manuál QPOS Pokladna V 2.0

C. 3. Vytvoření metodiky práce s implementovaným IS včetně jeho naplnění daty relevantních procesů a způsobů jejich vyhodnocování

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Velmi stručný návod jak dostat data z Terminálu Bloomberg do R

PDF Split and Merge. Průvodce programem pro práci s PDF

Transkript:

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky ZVI Skeletizace Plzeň, 2006 Martin Chlupáč

1. Zadání Cílem této práce bylo implementovat skeletizační algoritmus popsaný V. K. Govindanem a A. P. Shivaprasadem [1] a ukázat jeho klady a zápory. Vycházel jsem pouze z odkazovaného článku, který jsem ovšem musel, jak bude dále uvedeno, několikrát doplnit vlastním postupem, neboť některé podstatné údaje pro korektní implementaci v něm nejsou uvedeny. 2

2. Popis algoritmu Algoritmus sestává ze dvou částí; první je prostá skeletizace, kdy o odstranění jednotlivého pixelu z obrázku rozhoduje pouze výsledek 4 testů týkajících se jeho nejbližšího okolí (pokud již nebyl dříve označen jako součást kostry); druhou částí je vylepšení dosahovaných výsledků, pomocí aktivního vyhledávání některých klíčových pixelů, které jsou následně zpracovávány odlišným způsobem. 2.1 Sekvenční ztenčování Před stručným popisem vlastního ztenčování je nejprve třeba definovat několik pojmů. Definice pojmů sousední pixel je pixel, který se zvoleným pixelem sdílí hranu (d-neighbour, přímý soused), nebo s ním sousedí alespoň přes roh (i-neighbour, nepřímý soused). Úplné okolí zahrnuje všechny přímé i nepřímé sousední pixely daného bodu. d-path, i-path cesta složená z přímo, resp. i nepřímo, sousedících pixelů Crossing number (CSN) počet přechodů z jedné barvy do druhé (např. z černé do bílé), které se vyskytují na d-path v úplném okolí zvoleného bodu Black neighbours (BP) počet černých pixelů (0-8) v úplném okolí bodu Ztenčovací algoritmus Budu zde popisovat mnou upravenou verzi původního algoritmu, neboť v originálním článku nejsou popsány některé významné detaily a v případě potřeby implementovat algoritmus v jeho původní podobě by bylo nutno dělat řadu časově náročných testů, aby byly tyto detaily vyjasněny. Nejdříve jsou v obrázku nalezeny hraniční pixely, tedy takové černé pixely, pro které platí, že některý z jejich sousedů (přímých, nepřímých, obou) je bílý. Tyto jsou označeny v daném kroku skeletizace za pixely hraniční a pouze jich se týkají všechny další operace. Dále jsou jednotlivé hraniční pixely testovány, zda splňují následující podmínky a dle výsledků jsou buď odstraněny, označeny za součást kostry nebo ponechány k pozdějšímu zpracování v dalších krocích. 3

Hraniční pixel je z obrázku odstraněn pokud následující podmínky jsou splněny: 1. CSN daného bodu je rovno 1 2. BP > 1 3. BP < 7 4. pixel nebyl již dříve označen za součást skeletonu Pixel je označen za součást kostry pokud alespoň jedna z prvních dvou podmínek není splněna. V ostatních případech zůstává pixel nezměněn. První z podmínek zaručuje, že výsledná kostra bude tvořit d-path. V případě požadavku na i-path by pak bylo třeba ji modifikovat. Odkazy na důkaz lze nalézt v původním článku [1]. Výsledky Obecně pro většinu skeletizačních algoritmu platí, že jejich výsledky více či méně závisejí na pořadí, ve kterém jsou pixely v obrázku zpracovávány. Autoři tohoto algoritmu v článku nespecifikují jaký postup zvolili, resp. uvádějí: The sensitivity of the skeleton to direction and starting point of peeling is avoided to a greater extent by incorporating appropriate simple logic in the tracing algorithm. Já jsem nevyužil žádnou z pokročilejších metod, ale provedl jsem jednoduchý pokus, ve kterém jsem postupně vyzkoušel všechny čtyři základní směry a zvolil jsem ten, který dával subjektivně nejlepší výsledky odshora dolů a zleva doprava. Obrázek 2.1: Srovnání originálu a skeletonů vzniklých při zpracování ve směru po sloupcích resp. po řádcích. Z obrázku je zjevná závislost výsledku za směru zpracování 4

Obrázek 2.2: Srovnání originálu a koster vzniklých při hledání obrysu pomocí i-neighbour, d-neighbour, resp. obou současně 5

V dalších ukázkách bude použito hledání obrysu pomocí úplného okolí bodu. Pixely jsou zpracovávány odshora dolů po jednotlivých řádcích. 6

Obrázek 2.3: Ukázky výsledků skeletizace 7

2.2 Adaptivní varianta algoritmu Z uvedených ukázek je zřejmé, že algoritmus trpí některými neduhy, které vedou k deformacím výsledného tvaru vytvořené kostry. Při bližším zkoumání vyjde najevo, že problematickými jsou ta místa, ve kterých dochází ke spojování jednotlivých čar tvořících kostru; bylo by tedy vhodné takovým oblastem věnovat zvýšenou pozornost. Především jde o situaci, kdy u ostrých vnitřních úhlů nedochází ke včasnému odstraňování bodů, které se nacházejí v jeho vrcholu. U původní verze algoritmu se navíc objevovaly defekty, podobné tomu jaký je na předchozím obrázku u písmene E, ve všech pravoúhlých spojeních čar. Tyto deformace se mi podařilo ve značné míře potlačit vhodně zvoleným směrem, ve kterém algoritmus prochází body v obrázku. Negativním dopadem v tomto případě je asymetrie, již lze pozorovat u písmene M. Původní algoritmus tedy jako zvláštní případy řešil nejen spojení čar v ostrém úhlu, ale i pravoúhlá spojení typu T a L. Já jsem ve své verzi použil jen jednu úpravu, která pomáhá potlačit oba druhy defektů současně. Tento postup jsem byl nucen zvolit, neboť v původním článku nejsou některé detaily zpracování pravoúhlých spojů upřesněny. V prvním kroku proběhne odstranění jednotlivých hraničních bodů dle dříve popsaného postupu. Nově se k němu však přidává krok druhý, kdy jsou odstraněny i body splňující kriterium BP == 7. Kdybychom tuto podmínku přidali přímo k předchozím pravidlům, došlo by k výraznému poškození výsledné kostry diagonálně umístěnými artefakty. Obrázek 2.4: Kostra písmene B s viditelnými artefakty po přidání dodatečného pravidla k původnímu setu pravidel Kromě přidaných artefaktů je ovšem zřejmé, že ke zlepšení došlo. Postupoval jsem tedy tak, že nejprve byla na obrázek aplikována původní množina pravidel, poté na kopii obrázku byla uplatněna množina pravidel rozšířená o nové omezení a výsledné obrázky byly zkombinovány přes logický součet. Tento postup je blízký způsobu, který je popsán v původním článku. Autoři algoritmu použili pro odstranění artefaktů heuristiky, kdy kladou podmínku na 8

minimální délku čáry, která je jinak odstraněna jako artefakt (podrobnosti však nejsou uvedeny). Výsledky 9

Obrázek 2.5: Ukázky výsledků skeletizace Jak Obrázek 2.5 demonstruje, ve všech případech došlo ke zlepšení výsledků skeletizace, pouze u písmen P a M přibyly artefakty ve svislém směru. Jejich vzniku původní algoritmus zabraňoval pomocí výše zmíněné heuristiky. 10

3. Implementace Celý algoritmus jsem implementoval v prostředí.net a jazyce C#. Výsledná aplikace pracuje s obrázky v True Color a při načítání je převádí do šedé škály. Obrázek 3.1: Základní okno aplikace s načteným obrázkem po převodu do šedých tónů 11

Obrázek 3.2: Posuvníkem v horní části obrazovky lze obrázek naprahovat Dále lze zvolit zda mají být hrany obrázku (Contour) hledány pomocí d-neighbours, i-neighbours nebo jejich kombinace a zda má být použita základní verze algoritmu nebo jeho verze hledající kritická místa (Advanced). Postupným klikáním na tlačítko >> jsou prováděny jednotlivé kroky skeletizace. V každém okamžiku lze přepnout (Switch images) na původní verzi obrázku, aby ji bylo možno porovnat s aktuálním výsledkem skeletizace. 12

Obrázek 3.3: Výsledek skeletizace Kdykoli je též možno uložit aktuální obrázek do souboru formátu PNG (viz menu File) Poznámka k implementaci Prostředí.NET se ukázalo být velmi nevhodným pro manipulaci s obrázky, neboť pro práci s nimi nabízí metody zcela neoptimalizované vůči rychlosti zpracování. Důsledkem je, že i prostý převod obrázku do šedé škály trvá velmi dlouho a pro vlastní skeletizaci jsem byl nucen použít náhradní datové struktury (bool[,]), neboť práce přímo s hodnotami jednotlivých pixelů obrázku byla neúměrně pomalá. Tuto pomalost lze řešit přepnutím do neřízeného (unmanaged) kódu a pracovat pak s hodnotami přes pointery; to však naprosto popírá celou filosofii.netu a pro školní demonstraci algoritmu není otázka rychlosti natolik kritická, aby se bylo třeba uchylovat k takto radikálním řešením. 13

4. Závěr Původní algoritmus popsaný v [1] se mi nepodařilo implementovat z důvodu jeho nedostatečného popisu, kdy některé důležité informace nebyly v článku vůbec uvedeny či byly pouze naznačeny. Pro jeho přesnou implementaci by tak bylo třeba dalších pokusů, aby byly jednotlivé detaily upřesněny. Úspěšně jsem však implementoval variantu algoritmu, která je velmi blízká té původní a i přes svoji větší jednoduchost dává velmi podobné výsledky. Moji verzi algoritmu by bylo možno dále vylepšit, pokud by byla přidána heuristika z algoritmu původního, která pomáhá odstraňovat artefakty, které nyní na výsledné kostře zůstávají. 14

Literatura [1] GOVINDAN, V. K., SHIVAPRASAD, A. P. A Pattern Adaptive Thinning Algorithm. Pattern Recognition. 1987, vol. 20, no. 6, s. 623-637. [2] Picturebox Smoothing [online]. 2005 [cit. 2006-05-25]. Dostupný z WWW: <http://channel9.msdn.com/showpost.aspx?postid=44031>. 15