ANALÝZA MORFOLOGIE KAMENNÝCH HROTŮ

Rozměr: px
Začít zobrazení ze stránky:

Download "ANALÝZA MORFOLOGIE KAMENNÝCH HROTŮ"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS ANALÝZA MORFOLOGIE KAMENNÝCH HROTŮ DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR JAROSLAV SUCHARDA BRNO 2009

2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS ANALÝZA MORFOLOGIE KAMENNÝCH HROTŮ DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR JAROSLAV SUCHARDA ING. PETR SADOVSKÝ PH.D. BRNO 2009

3 ZDE VLOŽIT LIST ZADÁNÍ Z důvodu správného číslování stránek

4 ABSTRAKT Cílem projektu je umožnit automatické archivování a měření archeologických nálezů. Prvním krokem je zpracování obrazu sestávající z prahování, segmentace a úpravy nalezených objektů. Po těchto operacích je nalezený objekt reprezentován komplexním vektorem. Druhá část se zabývá měřením hrotu a zjišt ováním jeho tvaru. Přístup k naměřeným datům zajišt uje uživatelské rozhraní popsané v poslední části projektu. KLÍČOVÁ SLOVA zpracování obrazu, segmentace, prahování, kamenné hroty, uživatelské rozhraní, Matlab ABSTRACT The aim of this project is to enable automatic cataloguing and measuring archeological discoveries. The first step is image processing, which is performed via thresholding, segmentation and adjusting found objects. After these procedures, examined objects are represented by a komplex vector. The second part is focused on measuring the point and identification of its shape. The access to retrieved data is permitted by user interface created in the last part of this project. KEYWORDS image processing, segmentation, threshold, stone points, user interface, Matlab

5 Sucharda, J. Analýza morfologie kamenných hrotů. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologíı, s. Vedoucí bakalářské práce Ing. Petr Sadovský, Ph.D.

6 PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma Analýza morfologie kamenných hrotů jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor této diplomové práce dále prohlašuji, že v souvislosti s vytvořením této práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. V Brně dne (podpis autora) PODĚKOVÁNÍ Děkuji vedoucímu diplomové práce Ing. Petru Sadovskému, Ph.D. V Brně dne (podpis autora)

7 OBSAH 1 Úvod 9 2 Zpracování obrazu Převod RGB na BW Metody prahování Segmentace obrazu Segmentace detekcí hran Segmentace detekcí oblastí Segmentace obrazu v programu Matlab Úpravy obrazu Měření hrotu Zjištění rozměrů měrky Změna souřadnicového systému a otočení objektu Zjištění základních rozměrů Určení koeficientů tvaru hrotu Parametry minima a maxima hrotu Zhodnocení měření Uživatelské rozhraní Úprava předešlých funkcí Základní rozhraní pro měření jednoho hrotu Rozhraní finálního programu Základní ovládání a zobrazení Pokročilé funkce programu Spuštění programu a instalace knihoven Závěr 49 7 Příloha 50 Reference 54

8 SEZNAM OBRÁZKŮ 2.1 Testovací fotografie s červeným pozadím Červená složka fotografie Barevné složky a jejich histogramy Příklad jedné z testovacích fotografií Histogram fotografie Histogram s naznačenými významnými body Originální fotografie Fotografie po aplikování prahovacích funkcí Průběh úrovně jasu přes hranu a jeho první a druhá derivace Příklad určení gradientu hrany Příklad některých hranových operátorů Funkce metody rozvodí Zobrazení nalezených hran Objekty nalezené ve fotografii Příklad aplikace eroze a dilatace s použitím okolí typu octagon Objekt získaný po segmentaci Výsledek 2D mediánové filtrace s okolím Vykreslení hran po segmentaci Hrany s polovičním počtem prvků Automaticky změřené rozměry na hrotu OI Tabulka manuálně a automaticky změřených rozměrů hrotu OI Zobrazení přímek pro odečtení vzdálenosti pod určitým úhlem Vznik chyby při použití nevhodných úhlů Zjištění úhlů spodní a vrchní strany hrotu Postup výpočtu koeficientů konvexnosti a konkávnosti Body určující konvexnost nebo konkávnost vyznačené v hrrotu Body při měření tvaru hrotu Body při měření výšky a šířky Rozhraní po načtení snímků Část submatice představující data v seznamu Nabídka Seznam Dotaz na uložení výsledku dávkového zpracování Zobrazení mřížky Černobílé zobrazení Manuální měření Výpis měření Nabídky typů bodů

9 5.12 Nabídka exportování výsledků Export sezamu do Excelu s funkcí měření základních rozměrů pro čelní i boční pohled Rozhraní programu při prvním spuštění Rozhraní programu s načteným seznamem, vyhledáváním a zobrazenými pohledy Zobrazení pěti hrotů do jednoho okna Rozhraní se zapnutým pokročilým měřením a výpočtem koeficientů tvaru hrotu

10 1 ÚVOD Cílem této práce je vytvořit program pro zpracování fotografií archeologických nálezů v prostředí Matlab. Spadá pod grantový projekt Ministerstva kultury nazvaného Bifeciální nástroje jako podklad pro kulturní determinaci číslo DE07P03OMG011. Jeho součástí tedy byly i konzultace s odborníky z řad archeologů. Jejichž cílem bylo specifikovat požadavky na výsledný program. Zejména šlo o vstupní data a obrazový výstup programu. Velmi důležitou informací také bylo definování toho, co odborníci považují za nejdůležitější údaje na zkoumaném nálezu. Osobně jsem neměl o této problematice dosud takřka žádné informace a nebyl bych tedy schopen přesně určit oblasti měření, na které se mám nejvíce zaměřit. Během těchto konzultací jsem také získal velké množství fotografií, které jsem používal při testování programu a které jsou použity i v tomto textu. Z pohledu programu by se dal projekt rozdělit do tří částí. První částí je načtení a předzpracování snímku. Zde se pracuje převážně s obrazovými daty a jsou zde obsaženy funkce pro prahování obrazu, segmentaci, výřez a dodatečné úpravy. Výstupem je pak vektor nebo matice přesně definující pouze hledaný objekt zachycený na snímku. Druhá část programu tak pracuje pouze s číselnými daty a jejím hlavním cílem je určit parametry objektu. Základem jsou různé matematické operace, které určí co nejpřesnější tvar zkoumaného objektu. Výsledkem této části je co nejstručnější soubor koeficientů, které umožní co nejpřesněji identifikaci objektu. Poslední část práce se zabývá vytvořením uživatelského rozhraní. Jeho hlavním úkolem bude propojení dvou prvních částí a umožnění přístupu k naměřeným datům. Rozhraní navíc musí být jednoduché a jeho ovládání snadno pochopitelné. Veškeré funkce je navíc nutné konzultovat s uživateli tak, aby co nejlépe vyhovovali jejich požadavkům. Z těchto důvodů jsem se mu rozhodl věnovat velkou část této práce. Přístup k naměřeným datům a jejich správu jsem řešil jednoduchým seznamem. Tento formát je vzhledem k typu dat dostačující a bylo by zbytečné zabývat se zde databázovými systémy. 9

11 2 ZPRACOVÁNÍ OBRAZU První část tohoto projektu se bude zabývat prací s obrazovými daty. Během odborných konzultací jsem získal velké množství fotografií, které budou představovat požadovaný datový vstup výsledného programu. Aby však bylo možné provádět samotné měření, je nutno tyto fotografie upravit. Prvním krokem je převod barevné škály. Fotografie jsou do programu nahrány v podobě RGB obrázků. Následné operace však nejlépe pracují s černobílým obrazem. Tomuto převodu bude věnována krátká část následující kapitoly. Zbytek kapitoly pak bude pojednávat o metodách prahování. Důvodem je snaha o rozdělení obrazu na objekt a pozadí. Takto převedený obraz je totiž nezbytný pro další segmentaci. Velmi důležitou roli zde tedy hraje správné zvolení prahu. Přes značnou důležitost této operace se o prahování zmiňuji pouze stručně, v úvodní části této práce. Hodlám zde nastínit jen pár teoretických a praktických metod jeho realizace. Celý program bude realizován v prostředí Matlab, takže se zaměřím zejména na možnosti prahování v tomto programu. Dalším krokem ve zpracování obrazu je segmentace. Tato část je velmi rozsáhlá, takže jsem se jí rozhodl věnovat samostatnou kapitolu. Je zde totiž nutné v první řadě nastínit teoretický princip segmentace, nebot existuje velké množství segmentačních metod, přičemž každá z nich má určité klady a zápory. Několik základních metod zde popíšu a konečně se zaměřím na segmentaci v prostředí Matlab. Ačkoliv ten má na segmentaci vlastní funkce a postupy, považuji za důležité zmínit zde i teorii segmentace, poskytuje totiž dobrou představu o tom, co se děje během jednotlivých funkcí. Do této kapitoly jsem se také rozhodl zahrnout krátkou část pojednávající o dalších úpravách obrazu. Zejména jde o funkce eroze a dilatace. Tyto metody jsem testoval při vyhlazování hran hrotů. Ačkoliv jsem dále našel výhodnější způsob, považuji za vhodné tyto metody alespoň uvést. 2.1 Převod RGB na BW Před samotným prahováním je třeba získat z obrazu jednu matici s hodnotami definujícími jednotlivé body původního snímku. Jednou z možností by bylo prahovat zvlášt každou barevnou složku původního snímku a z nich pak vytvořit jedinou matici. Tento postup by však byl zbytečně složitý. Nabízí se zde ale další možnost využití jednotlivých barevných matic. Nemáme totiž zaručeno, že všechny fotografie budou takového typu jako ty na obrázku 2.4. Toto se týká zejména barvy pozadí. V případě například jasně červeného pozadí, jako je na obrázku 2.1, by byla schopnost automatické detekce prahu podstatně snížena a mohlo by dojít k chybám. Řešením by mohlo být bud manuální nebo automatické určení barvy 10

12 pozadí a následné potlačení tohoto nežádoucího efektu. Základem bylo rozdělení obrazu do jednotlivých barevných složek. Vznikly tak tři matice zastupující jednotlivé barvy. Úroveň jednotlivých barev je vyjádřena hodnotami v buňkách, přičemž čím větší hodnota, tím je daná barva výraznější. Na obrázku 2.2 je zobrazena červená složka z fotografie 2.1. V prostředí Matlab jsou vysoké hodnoty znázorněny bíle, takže jasně červenému pozadí původní fotografie odpovídá bílé pozadí červené složky. Jako nejlepší možný další postup se tedy nabízí vybrání této barevné složky. Při automatizaci tohoto výběru jsem se rozhodl vycházet z histogramů jednotlivých barevných složek a z teorie prahování. Ta definuje jako nejvhodnější práh hodnotu mezi vrcholy bimodálního histogramu. Jako ideální barevnou složku tedy volím tu, jenž má nejvýraznější dva vrcholy histogramu. Jednotlivé barevné složky snímku 2.1 a jejich histogramy jsou zachyceny na obrázku 2.3. Při pohledu na tento obrázek je jasně vidět, že histogram červené složky snímku je výrazně bimodální. Automatické rozpoznání vrcholů histogramu je ale poměrně složitá operace a je nutné uvažovat různé typy histogramů. Základem je rozdělení histogramu na dvě poloviny, ve kterých následně hledáme vrcholy. Tímto se omezí chybná detekce bodu jednoho vrcholu jako samostatného vrcholu. Přesný postup detekce vrcholů histogramu je uveden v následující kapitole 2.2, jenž se zabývá detekcí prahu v histogramu. Výsledkem jsou tedy dvě hodnoty pro každý histogram, které určují maximální vrchol v každé jeho polovině. Složka s největšími vrcholy je pak hledaným obrazem, který se dále využívá jako šedotónová verze původního snímku. Obrázek 2.1: Testovací s červeným pozadím. fotografie Obrázek 2.2: Červená složka fotografie. 11

13 Obrázek 2.3: Barevné složky a jejich histogramy. 2.2 Metody prahování Prahování bývá někdy samo o sobě uváděno jako jednoduchý druh segmentace. Zde ho však užívám hlavně pro prvotní úpravu obrazu a následné lepší automatické segmentování programem Matlab. Budu se tedy hlavně soustředit na možnosti správného zvolení prahu, což je pro tuto metodu základní parametr. Nejsnadnější je nalezeni prahu u obrazů s bimodálním histogramem. Tento postup vychází z předpokladu, že v obraze existují dva základní druhy pixelů. Do první kategorie spadají pixely náležící hledanému objektu a do druhé ostatní pixely patřící do pozadí. Oba druhy pixelů přitom musí tvořit co největší část zkoumaného obrazu, aby tak vytvořili co nejvýraznější maxima. V ideálním případě by snímek obsahoval pouze tyto dva druhy pixelů. Tento stav však není u reálného snímku dosažitelný. Z obrázku 2.5 je jasně vidět, že prostor kolem a mezi vrcholy je vyplněn body, které pokrývají takřka celé jasové spektrum. Přes tento nedostatek jsou jasně patrné dva vrcholy a můžeme tak hovořit o bimodálním histogramu. Je také jasně patrné, že hledaný práh se nachází právě mezi těmito dvěma vrcholy, což přibližně odpovídá středu histogramu. Nejvhodnější je tedy nalézt maxima obou vrcholů a určit střed mezi nimi. Nalezení maxim vrcholů není možné provést na celém histogramu, protože by nešlo rozlišit, jestli další nalezené maximum odpovídá druhému vrcholu, nebo je jen podvrcholem vrcholu prvního. Je tedy nutné histogram rozdělit na dvě poloviny tak, aby každá obsahovala jeden vrchol. První možností je rozdělit histogram přesně v polovině. Pokud by byl objekt definován například sytě černou a pozadí čistě bílou barvou, byl by tento postup ideální. Reálný obraz 2.4 ale opět vypadá jinak. Čisté 12

14 Obrázek 2.4: Příklad jedné z testovacích fotografií. Obrázek 2.5: Histogram fotografie. hodnoty barev se v něm většinou nevyskytují a vše je tedy určeno úrovněmi šedé. Dochází tak ke zúžení histogramu a tedy většímu zhuštění hodnot v jeho středu. U některých snímků by tak mohly oba vrcholy spadnout do první nebo druhé poloviny histogramu. Dělení v přesné polovině by tedy nepřineslo žádný výsledek. Je tedy nutné nejprve vyjmout všechny úrovně jasu, které nejsou ve snímku zastoupeny. V cyklu tak dochází k porovnávání a je vytvořen nový kratší vektor obsahující pouze úrovně jasu s nenulovou hodnotou. Takto upravený histogram si už můžeme dovolit dělit v polovině. Po rozdělení je potřeba nalézt maximální hodnoty. K tomu opět poslouží jednoduchá funkce max použitá na každou polovinu zvlášt. Z obrázku je vidět, že hledaná hodnota prahu se nachází právě mezi těmito dvěma maximy a představuje nejnižší hodnotu grafu. Budeme tedy hledat minimální hodnotu v rozmezí mezi prvním a druhým maximem. Nejrychlejší je využít funkce min, funkce zjistí jak minimální hodnotu, tak pozici na které se nalézá. Právě tato pozice je hledaným prahem. Popsaná operace je znázorněna na obrázku 2.6. Zde jsou vidět všechny body hledané ve výše popsaném textu. Zelenou barvou jsou označeny krajní nenulové body histogramu, mezi kterými jsou prováděna další hledání. Žlutá barva označuje pozice nalezených maxim. Jejich velikost zde není důležitá, hlavní je právě jejich pozice. Poslední červený bod představuje nalezený práh. Pro tento postup je však nezbytný bimodální histogram a velké rozdíly jasu jednotlivých složek. Výše popsaný postup je výhodný hlavně pro konkrétní skupinu obrazů. Při prahování obrazů s rovnoměrným rozložením histogramu se proto musejí hledat jiné 13

15 Obrázek 2.6: Histogram s naznačenými významnými body. metody. Nejvhodnějším řešením je zde využití metod přímo integrovaných v programu Matlab. Nejjednodušší je využití integrované funkce pro nalezení prahu: level = graythresh(i) (2.1) Level představuje hledaný práh a I vstupní obraz. Samotný postup graythresh je založen na Otsuově metodě. Tato metoda minimalizuje rozptyl hodnot pixelů v jednotlivých regionech, čímž maximalizuje rozptyl mezi regiony. Jejím základem je tedy snaha o co největší oddělení maximálních hodnot v regionech. Bližší popis této metody je možné najít v literatuře [10]. Výsledkem této funkce je však hodnota v rozmezí mezi 0 a 1. Definuje tedy hodnotu prahu pro binární obraz. Naproti tomu předešlá funkce zjistí hodnotu prahu pro obraz s hodnotami v rozmezí mezi 0 a 255. Nebylo by tedy možné uplatnit obě dvě metody získání prahu na stejnou funkci prahování bez úprav.v našem případě jsou však k dispozici fotografie s bimodálním histogramem, což je vidět na obrázku. Z tohoto důvodu jsem se rozhodl pro využití první popsané metody zjištění prahu. Metoda zjištění prahu pomocí funkce graytrash by však mohla najít využití jako alternativa k první funkci. V případě jiného typu fotografií, než mám momentálně k dispozici. Proto by ji bylo možné zařadit do výsledného programu. Bylo by však nutné použít kombinaci níže popsaných metod prahování. Využití tak bude záviset hlavně na pozdějším testování finálního programu. Prozatím této funkce nebylo třeba a hodnotu prahu spolehlivě zjistila metoda vycházející z histogramu. 14

16 Předešlé operace určili poměrně přesně hodnotu prahu, kterou je nyní potřeba aplikovat na fotografii. Opět je zde několik možných způsobů prahování. První možností je opět integrovaná funkce programu Matlab: BW = im2bw(i,level) (2.2) I(I<level)=255; a I(I>level)=0; (2.3) BW představuje výsledný prahovaný obraz a I je vstupní obraz. Funkce dokáže spolehlivě pracovat se všemi typy vstupního šedotónového obrazu. Pouze u indexovaných obrazů je nutné vložit ještě barevnou mapu. Hodnota prahu level však musí být zadána v rozmezí 0 a 1, důvodem je výstupní binární formát obrazu. Zde by se tedy uplatnila hodnota prahu získaná funkcí graythresh. Funkce vycházející z histogramu by zde naopak měla problémy a bylo by nutné hodnotu dále upravit. Výstupem funkce je binární obraz, tedy obraz kde jsou body nad zvoleným prahem reprezentovány hodnotou 1 a ostatní body mají nulovou hodnotu. Tento tvar není příliš vhodný pro následnou segmentaci, takže jsem vyzkoušel druhou metodu založenou na jednoduché přiřazovací funkci 2.3. Obrázek 2.7: Originální fotografie. Obrázek 2.8: Fotografie po aplikování prahovacích funkcí. Funkce vezme původní obraz a všem jeho hodnotám přiřadí hodnotu podle podmínky. Nedochází zde tedy ke vzniku nového výstupního obrazu, ale jen k přepsání hodnot ve vstupním snímku. Velkou výhodou této funkce je možnost nastavení libovolných výstupních parametrů. Můžu si zde tedy zvolit, jestli mají mít body nad prahem level hodnotu 0 nebo 255, případně jakoukoliv jinou hodnotu. Další velkou výhodou této metody je to, že mohu použít takřka libovolný počet prahů. Například mohu vytvořit několik intervalů, přičemž každému z nich přiřadím jinou hodnotu. Ačkoliv 15

17 se v tomto projektu tato výhoda příliš neuplatní,vybral jsem tuto metodu jako vhodnější. Je totiž velmi jednoduchá a lze ji snadno modifikovat. Výsledek prahování touto metodou je vidět na obrázku 2.8. Jako vstup zde byl použita fotografie 2.4, jejíž histogram je na obrázku 2.5. Hodnota prahu uvedená u obrázku byla získána metodou vycházející z histogramu a následné prahování jsem provedl přiřazovací metodou. Hledané objekty byli nalezeny přesně, ale došlo ke vzniku nepřesností na okrajích objektů. Tyto chyby není možné absolutně odstranit, takže musejí být dále uvažovány. Jejich částečné potlačení bude součástí dalších kapitol této práce. 16

18 3 SEGMENTACE OBRAZU Cílem prvního úseku této kapitoly je teoreticky popsat některé základní metody segmentace obrazu. Nejjednodušším způsobem segmentace je prahování, tomu jsem se však dostatečně věnoval v předchozí kapitole. Zde se tedy raději zaměřím na další dvě velmi významné skupiny metod. První z nich je segmentace pomocí detekce hran. Základem této metody je úvaha, že každý objekt obrazu je obklopen hranicí. Segmentaci tedy provádíme nalézáním a definováním bodů hranic. Do druhé skupiny patří metody pracující s detekcí oblastí. U těchto metod se nehledají hrany, ale oblasti, které splňují určité požadavky. Například mají podobnou texturu, úroveň jasu atd. Druhá část této práce bude pojednávat o segmentaci v prostředí Matlab. Narozdíl od předešlé části zde půjde o praktickou aplikaci segmentace. Konkrétně se zaměřím na funkce segmentace integrované v knihovně Image Processing Toolbox. Poslední část této kapitoly budu věnovat možnostem úpravy obrazu. Popíšu zde především funkce pro erozi a dilataci obrazu. Tyto metody zde zmiňuji zejména proto, že jsem je testoval jako možnost při vyhlazování hran obrazu. Přestože se dále v programu objevili lepší možnosti vyhlazení, považuji za vhodné zde tyto funkce alespoň zmínit. 3.1 Segmentace detekcí hran Tato metoda je považována za jednu ze dvou základních operací pro segmentaci, přičemž tato je pravděpodobně nejpoužívanější. Celá třída těchto metod vychází z předpokladu, že každý objekt ve snímku je kompletně obklopen hraničními body. Tyto hranice jsou nejčastěji definovány jako skokové změny úrovně jasu. Tomu odpovídá první průběh na obrázku 3.1. Cílem těchto metod je tedy nalezení všech těchto hranových bodů a jejich spojení do souvislých hran. Pro spojování jednotlivých bodů se využívají metody prokládání bodů, například metoda nejmenších čtverců. Vyplňováním takto ohraničených oblastí následně získáme hledané objekty. Jedním z nejjednodušších způsobů detekce hranic jsou gradientní metody. Z prvního snímku obrázku 3.1 je jasně vidět náročná detekce hrany uprostřed průběhu. Snaha o lepší definování hranových bodů vedla k využítí derivací. Zejména se zde uplatnila první a druhá derivace. Výsledky derivací a jejich přínos je jasně patrný z druhého a třetího snímku obrázku 3.1. Právě první derivace, zachycená na druhém snímku, s maximem v bodě hrany se stala základem gradientních metod. Maximum průběhu pak popisuje intenzitu kontury v daném bodě a je označována jako velikost hrany. Výsledkem těchto zjištění jsou nejjednodušší hranové detektory f/ x a f/ y 17

19 . Jednoduchost těchto operátorů se však odráží v omezení jejich uplatnění pouze na hrany rovnoběžné s osami. Pro praktické využití jsou tedy výše popsané operátory Obrázek 3.1: Průběh úrovně jasu přes hranu a jeho první a druhá derivace. nepoužitelné. Dalším krokem je tedy vytvoření operátorů schopných detekovat hranice v jakémkoliv směru. Řešením je zjišt ování průběhu funkce jasu v kolmém směru na předpokládanou hranu. Definujeme tedy vektor n = (cosθ, sinθ), jímž popíšeme kolmý směr vzhledem k možné hraně. Souřadnice měřená v tomto směru pak bude definována jako ξ. Hranici v tomto bodě určíme derivací ve směru podle vzorce3.1. f ξ f f = grad(f) n = cosθ + sinθ (3.1) x y Velikost hrany ve zkoumaném bodě je určena vztahem f/ ξ. Tento údaj však není dostačující pro určení, zda je v daném bodě hrana. Proto je stěžejní zjištění směru, ve kterém je změna jasu největší. Pro určení tohoto směru slouží zejména gradient obrazové funkce. Kolmice ke směru gradientu pak určí směr hrany. Před zapsáním potřebné funkce je nutné definovat několik parametrů. Velikost hrany e(x, y), směr gradientu ϕ(x, y) a směr hrany v daném bodě ψ(x, y). Tyto proměnné jsou znázorněny na obrázku 3.2. Pokud následně zavedeme zjednodušení 3.2 získáme funkce 3.3 a 3.4. Výsledná příslušnost bodu s hodnotou e(x,y) k hraně se určuje podle předem zvolených prahů. f x (x, y) = f(x, y)/ x f y (x, y) = f(x, y)/ y (3.2) e(x, y) = f 2 x(x, y) + f 2 y (x, y) (3.3) ϕ(x, y) = arctan f y(x, y) f x (x, y) a ψ(x, y) = ϕ(x, y) + π 2 (3.4) Výše popsané metody jsou platné pro spojité obrazové funkce. Při počítačovém zpracování obrazu ale pracujeme s diskrétním obrazovým signálem. Aby tedy byly 18

20 Obrázek 3.2: Příklad určení gradientu hrany. tyto funkce použitelné i pro diskrétní signál, je nutné nahradit derivace diferencemi. Po této úpravě získáme vztah 3.5 f x (x, y) = f(x + 1, y) f(x, y) a f y (x, y) = f(x, y + 1) f(x, y) (3.5) Výše popsané funkce jsou základem výpočtu hran pomocí gradientu. Pro složitější operace z nich následně vzniklo velké množství operátorů. Přehled těch nejpoužívanějších je uveden na obrázku 3.3, bližší popis těchto operandů je v publikacích [1] a [8]. Použití těchto operátorů je podobné konvolučnímu filtrování signálu. Rozdíl mezi hranovými detektory je pak dán operátory, neboli jádrem konvolučního filtru. Výsledný gradientní obraz pak vznikne konvolucí jádra filtru a originálního obrazu. Obrázek 3.3: Příklad některých hranových operátorů. Popsané metody detekce zatím pracovali pouze s první derivací hranového signálu. Z třetího snímku obrázku 3.1, který představuje druhou derivaci, je jasně vidět výhoda této metody. Je zde totiž využito ještě přesnějšího způsobu nalezení hrany definované průchodem nulou. V místě hrany tedy dochází u druhé derivace ke změně znaménka. Opět se zde ale vyskytuje problém se směrem hledané hrany. Nejméně je zde nutné počítat druhou derivaci minimálně ve dvou směrech. Nejjednodušší možností je zvolit výpočet ve směru os. Obvykle používaným způsobem výpočtu je Laplaceův operátor definovaný vztahem f(x, y) = f xx (x, y) + f yy (x, y) (3.6) 19

21 Přičemž jsou jednotlivé proměnné definovány podle 3.7 f xx (x, y) = 2 f(x, y)/ x 2 a f yy (x, y) = 2 f(x, y)/ y 2 (3.7) Opět jde o funkce určené pro spojitý signál, které se dají změnou derivací na diference upravit pro signál diskrétní. Nevýhodou této metody je značná citlivost na šum, i s malým šumem zde může dojít k detekci velkého množství falešných hran. Závěrem bych pouze dodal, že existuje velké množství metod detekce hran založených na této metodě. Já je zde zmiňuji zejména jako teoretický nástin funkce segmentace. 3.2 Segmentace detekcí oblastí Metody popsané v předešlé části hledaly objekty pomocí jejich hranic. Oproti tomu metody spadající do této kapitoly pracují se zadaným kritériem konstantnosti oblasti. Mohou to být konstantní nebo podobné úrovně jasu, barvy, textury atd. Velkou výhodou těchto metod je také to, že jsou použitelné i na zašumělé obrazy. Předešlé metody měli s touto deformací velké problémy. Dále se v této kapitole zaměřím na popis několika jednoduchých základních metod této třídy. Jedna ze základních metod pracuje se spojováním oblastí. Na začátku běhu jsou určeny malé oblasti, třeba i velikosti jednoho pixelu, které jsou dále spojovány do větších ploch. Celý proces probíhá do doby, kdy už jsou v obraze jen dále nespojitelné oblasti.základním kritériem pro spojování jsou výše popsané hodnoty jasu, barvy, textury atd. Zároveň by tyto oblasti neměly být odděleny výraznou hranicí. V takovém případě by totiž byla detekována jako další objekt. Naproti tomu zde můžeme ignorovat slabé nebo přerušované hranice. Metoda spojování oblastí je poměrně účinná, zároveň ale vyžaduje velký výpočetní výkon. S tím také souvisí náročnější implementace výpočetního algoritmu. Další metoda dělení oblastí by se dala považovat za inverzní k metodě spojování oblastí. Zde je na začátku jedna velká oblast, představovaná celým obrazem. Oblast je pak dělena podle podobnosti. Často používané je dělení oblasti modální metodou využívající histogram. vychází se zde z předpokladu, který jsem popsal už v kapitole o prahování. Pokud histogram obsahuje dva a více vrcholů, můžeme předpokládat, že je v něm obsaženo několik objektů. V takovým případě musí dojít k dělení. Celý proces pokračuje dokud nemá každý objekt v obraze homogenní histogram. Z toho vyplývá, že určování prahu v kapitole 2.2 je primitivní formou segmentace dělením oblastí. Zde byli uvažovány pouze dva objekty a tedy bimodální histogram. Pokud by bylo v obraze objektů více, bylo by nutné provádět výše popsané operace dělení opakovaně. Stejně jako předešlá metoda spojování oblastí je i tato považována za spolehlivou, ale výpočetně náročnou. 20

22 Na konec této kapitoly jsem se rozhodl zařadit ještě metodu rozvodí neboli watershed. Sice pracuje i s hledáním hranic, ale funkčně se více blíží metodám detekce oblastí. Základem této metody jsou teorie vycházející z geografie. Obraz je zde přirovnáván ke krajinnému reliéfu, ve kterém světlé odstíny představují kopce a tmavé barvy naopak údolí. Postup průběhu metody je znázorněn na obrázku 3.4. Prvním krokem je nalezení nejnižšího terénního bodu, tedy místa s nejnižším jasem. Další krok si můžeme představit jako postupné zaplavování krajiny od nejnižšího bodu. Tento průběh je naznačen na druhém a třetím snímku. Zaplavování probíhá až do okamžiku, kdy vznikne jednolitá hladina. Objekty následně určujeme vztyčením hranic v bodech, kde došlo ke styku hladin. Vztyčení hranice je znázorněno na čtvrtém a pátém snímku. Výsledkem je tedy obraz rozdělený na oblasti s podobnou úrovní jasu. Velkou výhodou této metody je opět vysoká spolehlivost a účinnost. Zároveň je schopná pracovat plně automaticky bez zásahu uživatele. Oproti tomu se zde projevila nevýhoda metod pracujících s detekcí hranice. Opět se zde totiž objevuje chyba vznikající v důsledku vlivu šumu v obraze. Je tedy nutné na závěr použít některou metodu spojování oblastí. Bližší informace o této metodě je možné nalézt v publikaci [8] Obrázek 3.4: Funkce metody rozvodí. 3.3 Segmentace obrazu v programu Matlab V této kapitole se budu zabývat popisem a možnostmi využití funkcí z knihovny Image Processing Toolbox prostředí Matlab. Nejprve se zaměřím na popis funkce bwtraceboundary. Z názvu příkazu je patrné, že tato funkce pracuje s binárním obrazem. Na začátku je tedy nutné převést hodnoty do binárního tvaru. Vhodná je k tomu metoda přiřazování, kterou jsem využil v kapitole 2.2 pro prahování. Běh funkce částečně vychází z metody segmentace spojováním oblastí. Nepracuje se zde však s celým obrazem. Oblast se zvětšuje od předem zadaného počátečního bodu. Tento postup bude jasnější po vysvětlení některých parametrů této funkce. B=bwtraceboundary(BW,P,fstep,conn) (3.8) 21

23 Prvním vstupním parametrem je zpracovávaný binární obraz, druhým parametrem je počáteční bod. Právě zvolení tohoto bodu je velmi důležité a závisí na něm funkčnost celé této metody. Zároveň je zde také jasně vidět hlavní nevýhoda této funkce. Zadávání výchozího bodu je možné, pouze pokud předem známe pozice hledaných objektů. Při automatickém běhu programu by bylo velmi náročné tyto body zjišt ovat a zadávat. Tato funkce se tedy ukázala jako nevhodná pro použití v tomto projektu. Popis této funkce je ale vhodný pro lepší pochopení běhu níže popisované funkce, která z této přímo vychází. Pro úplnost bych pouze doplnil význam zbylých parametrů. Po zadání výchozího bodu je potřeba určit směr dalšího postupu. Toto zajišt uje parametr fstep, do kterého se zadávají zkratky světových stran. Poslední parametr určuje způsob prohledávání okolí počátečního bodu. První možností je volba 4-okolí, tedy prohledávání pouze ve svislém a vodorovném směru. Lepší možností je volba 8-okolí, pak bude program sledovat všechny body kolem počátku. Nutnost manuálního nastavování funkce bwtraceboundary řeší použití její vylepšené verze, funkce bwboundaries. Princip je téměř totožný a přesný popis je v publikaci [3]. Opět zde vycházíme z metody spojování oblastí, tentokrát ale bez nutnosti zadávání počátečních bodů. Díky tomu umožňuje tato jednoduchá funkce nalézt v obraze libovolný počet objektů a přesně je definovat. Jelikož zde pracujeme s větším počtem údajů než v předchozím bodě, byl zde také vylepšen formát výstupních dat. U minulé funkce byla jediným výstupem B matice bodů hran objektu. Zde je výstupem B submatice obsahující matice hranových bodů pro každý nalezený objekt. Tento výstupní údaj je velmi užitečný a dále v programu s ním budu ještě mnohokrát pracovat. Dovoluje totiž přesně definovat nalezený objekt jednoduchou maticí, případně vektorem. Aby bylo možné jednotlivé objekty v obraze rozpoznat, je tu druhý výstup L. Ten obsahuje indexovou matici velikosti původního obrazu. V ní je každému nalezenému objektu přiřazeno pořadové číslo, kterým je následně vyplněna celá plocha objektu. Ve výsledku je tak v matici několik oblastí obsahujících různé číselné hodnoty. Tento výstup je vhodný především pro vizuální kontrolu výsledku. Poslední položka N obsahuje celkový počet nalezených objektů. Systém výstupů a vstupů funkce bude pravděpodobně srozumitelnější z jejího zápisu. [B,L,N]=bwboundaries(BW,conn,options) (3.9) Výsledek funkce jsem popsal v předešlém odstavci a nyní bych tedy stručně věnoval vstupům, se kterými pracuje. BW je vstupní binární obraz. O jeho vlastnostech a možnostech vytvoření jsem se již zmínil v části věnované funkci bwtraceboundary. Stejně tak hodnoty parametru conn jsou shodné s těmi u předešlé funkce. Oproti předešlé funkci zde ale přibyl parametr options. Ten vychází ze složitější struktury 22

24 této funkce a umožňuje detekování děr v objektech, případně i objektů v objektech. Standardně je zde nastavena hodnota holes, která právě umožňuje detekci děr a vnořených objektů. Já v této úloze nepředpokládám výskyt objektů s otvory a výskyt vnořených objektů je zde také velmi nepravděpodobný. Z tohoto důvodu volím hodnotu noholes. Běh funkce se tím alespoň mírně zjednoduší. Použití a výsledek popsané funkce bwboundaries dále ukážu na snímku 2.7. Tato fotografie je nejprve upravena podle výše popsaných metod. Byla převedena z tvaru RGB na šedotonový obraz a následně prahována. Samotná segmentace tedy bude provedena na snímku 2.8. Zápis programu pro segmentaci je totožný se zápisem 3.9, tudíž považuji za zbytečné ho zde uvádět. Rovnou tedy uvedu výsledky operace. Na obrázku 3.5 je vykreslen průběh jednotlivých hranových bodů ze submatice výstupu B. Průběh přesně odpovídá bodům na hranici objektů ze snímku 2.8. Zároveň je ale vidět, že průběh převzal od objektů značnou nepravidelnost jejich hran. Na řešení tohoto problému se zaměřím v dalších částech práce. Je totiž pro vizuální vyhodnocení nevhodné zobrazovat takto složité průběhy. Zároveň je také potřeba zmínit, že souřadnice hranových bodů jsou definovány přímo pro tento obraz. Opět je to velmi nevhodný způsob zobrazení. Převodem do jiného systému souřadnic se budu zabývat v kapitole 4.2. Na vedlejším obrázku 3.6 jsou již zobrazeny vyjmuté objekty. Oba dva jsou přesně vyříznuty na základě matice hran. Tento údaj slouží zejména pro vizuální kontrolu. Až na výpočet rozměrů měrky v kapitole 4.1 totiž všechny další operace provádím na matici hranových bodů. Možnost využití by však tyto výřezy mohly mít dále při zobrazování v interface nebo při ukládání do seznamu. Pokud bych výřez extrahoval z původní fotografie místo prahované, získal bych vyříznutý obraz hrotu přímo z fotografie. Byli by v něm tedy obsaženy všechny detaily zachycené na snímku. Při použití funkcí pro zlepšení kvality obrazu by mohly být tyto detaily ještě zřetelnější. Obrázek 3.5: Zobrazení hran. nalezených Obrázek 3.6: Objekty nalezené ve fotografii. 23

25 3.4 Úpravy obrazu V minulé kapitole jsem se zmínil o potřebě funkce pro vyhlazení průběhu hran. Zde se tedy zaměřím na funkce umožňující toto vyhlazení ještě v obraze. Operace vyhlazení aplikované na matici hranových bodů popisuji v další části této práce. První metoda, kterou jsem vyzkoušel, využívala funkcí eroze a dilatace. Tyto funkce pracují s obrazovými daty tak, že způsobují rozrůstání nebo smršt ování oblastí. Tato funkce bude určitě srozumitelnější z obrázku 3.7. Prvním snímkem je vstupní obraz. Požil jsem zde objekt hrotu vyříznutý z obrázku 2.8. Druhý snímek v pořadí představuje výsledek aplikace eroze na první obrázek. Je jasně patrné zvětšení objektu a vyhlazení některých prohlubní na povrchu. Oproti tomu na třetím snímku je použita dilatace. Zde došlo naopak ke zmenšení objektu a tím k ořezání některých výstupků. Poslední snímek představuje použití eroze a následně dilatace. Objekt se tedy zvětší a dojde k vyrovnání prohlubní, následně se opět zmenší a jsou oříznuty výstupky. Při bližším pohledu je ale patrné, že změna nenastala na celém objektu. Důvodem této chyby je nutnost nastavení oblasti efektu jak u eroze, tak u dilatace. V nastavení funkce je možné zvolit oblast přímky pod určitým úhlem: čtverec, kruh, octagon a několik dalších. Vyzkoušel jsem všechny tyto možnosti, ale žádná neposkytovala uspokojivý výsledek. Z tohoto důvodu jsem tuto metodu po několika pokusech zavrhnul jako neefektivní. Obrázek 3.7: Příklad aplikace eroze a dilatace s použitím okolí typu octagon. Další možností vyhlazení použitelnou ještě na obraze je mediánová filtrace. Prostředí Matlab umožňuje využití množství filtračních metod prostřednictvím integrovaných funkcí. Mediánovou filtraci pro obraz tedy můžu jednoduše provést užitím příkazu medfilt2.tato funkce je velmi jednoduchá, jejími vstupními parametry jsou pouze 24

26 zpracovávaný obraz a obdélníková oblast určující okolí zpracovávaného bodu. Výsledek filtrace je vidět na obrázku 3.9. Došlo k mnohem lepšímu vyhlazení obrazu než u využití předešlé metody. Přesto je však obraz stále zbytečně členitý. Po testování těchto dvou metod jsem došel k závěru, že vyhlazování hran ještě v obraze je neefektivní. Dále jsem se tedy soustředil na vyhlazení průběhu hranových bodů, kterému se budu věnovat v kapitole 4.2 spolu s dalšími funkcemi pro úpravu hranových bodů. Obrázek 3.8: Objekt získaný po segmentaci. Obrázek 3.9: Výsledek 2D mediánové filtrace s okolím

27 4 MĚŘENÍ HROTU Předešlé operace nalezly na fotografii hledané objekty, provedly jejich vyjmutí a jednoduše je definovaly pomocí hranových bodů získaných funkcí bwboundaries. Pro účely přesného měření jsou však takováto data nepoužitelná. Objekty jsou různě posunuty a jejich rozměry odpovídají rozměrům snímku a nikoliv reálnému objektu. Z tohoto důvodu se nejprve zaměřím na zpracování objektu měrky. Z něj je potřeba získat koeficient pro přepočet rozměrů hledaného objektu. Je tedy velmi důležité z pootočené a prahováním mírně deformované měrky zjistit co nejpřesnější rozměry. Další kroky už se budou týkat pouze zkoumaného objektu. Prvním krokem bude otočení tohoto objektu tak, aby jeho svislá osa odpovídala svislé ose souřadnic. S tím úzce souvisí druhý krok, který posouvá nejnižší bod do počátku osy souřadnic. To je výhodné pro další měření a hlavně pro výsledné zobrazování. Následující části této kapitoly už se budou zabývat měřením a zjišt ováním parametrů objektu. Zde bude cílem co nejpřesněji určit tvar objektu. 4.1 Zjištění rozměrů měrky Označení měrka patří objektu, který se umíst uje vedle nálezu při fotografické dokumentaci. Může jít o libovolný předmět, který však musí mít přesně definovány rozměry. Na testovacích fotografiích, které jsem měl k dispozici, byly použity dva typy měrek. Prvním byl papírový obdélník. Délka obdélníku je deset centimetrů, přičemž je dále rozdělen na čtverce o straně jeden centimetr. Ty jsou navíc odlišeny kontrastní barvou. Takováto měrka je výhodná při manuální katalogizaci a zpracování fotografií. Uživateli poskytuje velmi rychlou, ale málo přesnou informaci o zkoumaném nálezu. Při počítačovém zpracování je její nevýhoda v příliš velkém počtu údajů, jenž jsou na ní uvedeny. Z tohoto důvodu jsme po dohodě přistoupili k používání druhého typu měrky. Druhý typ představuje prostý čtverec se stranou deset milimetrů a s jednotnou barvou povrchu. Takovou měrku je možné umístit kamkoliv do blízkosti nálezu a vyfotografovat. Není zde ani potřeba přesně zarovnávat hrany měrky s hranami nálezu. Prvotní informace o měrce získáme hned po segmentaci, kdy kromě mapy hrany nálezu obdržíme i mapu hran měrky. Díky tomu můžeme jednoduchým příkazem celý objekt měrky z fotografie vyříznout. Výsledkem je matice zachycená na prvním snímku??. Je zde vidět, že měrka byla mírně pootočena a také došlo k malé deformaci způsobené prahováním, což je znázorněno tím, že plocha měrky plně nevykrývá plochu vyříznutého objektu. Zároveň je to také jasně viditelný důvod, proč nemůžeme uvažovat jako stranu měrky stranu výřezu. Aby byla tato chyba 26

28 potlačena, je nutné nalézt jiné způsoby výpočtu. Já jsem použil postup vycházející z obsahu čtverce. Při určení obsahu obrazu měrky je potřeba uvažovat pouze objekt měrky a nikoliv body okolí. Pomocí funkce find jsem nalezl všechny nenulové body objektu. Tím jsem získal vektor obsahující pořadová čísla všech nenulových bodů, počítaný po sloupcích od levého horního rohu. Funkce length mi následně určí délku tohoto vektoru a tedy počet všech nenulových bodů. Tento rozměr v našem případě představuje obsah obrazu měrky. Vypočítáním druhé odmocniny tohoto obsahu získáme délku strany. Na závěr už jen zbývá podělit vypočítanou délku strany skutečnou délkou. Získaným koeficientem pak není problém přepočítat veškeré další změřené hodnoty na reálné rozměry. Kromě tohoto postupu jsem také testoval metodu vycházející z délky úhlopříčky ve čtverci. Ta spočívala v nalezení nejvzdálenějších bodů objektu a následným uvažováním této vzdálenosti jako úhlopříčky obrazu měrky. Určení maximální vzdálenosti je však velmi náročné. Bylo potřeba brát postupně každý hranový bod objektu a počítat jeho vzdálenost od všech dalších bodů. Tento postup se ukázal být zbytečně náročný, a navíc jím poskytované výsledky takřka odpovídaly délce strany vyříznuté oblasti, nikoliv délce strany měrky. Z mých pokusů vyšla jako nejspolehlivější metoda využívající obsahu čtverce. Přináší nejpřesnější výsledky a zároveň je velmi jednoduchá. 4.2 Změna souřadnicového systému a otočení objektu Tato část se zaměří na převedení matice hran získané segmentací do lépe srozumitelné a zpracovatelné formy. Hlavně se zde budu zabývat přesunem bodů do jiných souřadnic a otočením objektu tak, aby byl kolmo k rovině. Oba tyto úkony jsou poměrně rozsáhle, ale také spolu úzce spojené. Z tohoto důvodu se jimi zabývám v jedné a nikoliv ve dvou kapitolách. Po proběhnutí segmentace totiž získáme matici přesně definující všechny hranové body nalezeného objektu. Souřadnice těchto bodů jsou však zapsány ve stylu odpovídajícímu vstupu, tedy obrazu. Počáteční bod je tak umístěn v levém horním rohu a ostatní body jsou vyjádřeny jakoby v prostoru bez spojení s osami. Tento způsob zobrazení je pro naši úlohu takřka nepoužitelný, protože by prakticky nebylo možné zobrazit překrývaně více objektů tak, aby se dal zjistit nějaký údaj o jejich podobnosti. Navíc by bylo velmi náročné přepočítávání všech změřených hodnot. Hned v úvodu se nabízely dvě možnosti dalšího postupu. První možností bylo ponechat souřadnice ve tvaru klasických souřadnic x,y. Tímto způsobem jsem pracoval nejprve. Postup byl jednoduchý, ale zároveň se zde objevila komplikace v podobě 27

29 dvousloupcové matice. Například při nalezení maximální hodnoty souřadnic v jednom sloupci primitivní funkcí programu Matlab. Nalezení k ní odpovídající hodnoty v druhém sloupci matice vyžadovalo použití prohledávání v cyklu a tedy zbytečně mnoho operací. Druhou možností bylo hned převést veškeré souřadnice na komplexní hodnotu. Reálnou složku komplexního čísla tak představovala souřadnice x. Imaginární složka byla souřadnicí y. Celý tento převod byl proveden jednoduchou funkcí complex. Zároveň tento převod umožnil jednodušší zobrazení a snazší výpočty vzdáleností bodů. Kde bylo při využití klasických souřadnic potřeba zapisovat dlouhé vzorce využívající Pythagorovu větu a goniometrické funkce, tady je nahradily jednoduché příkazy obsažené přímo v programu Matlab. V tomto kroku jsem se také rozhodl pro další úpravu těchto souřadnic. Jak je vidět na obrázku 4.1, byl graf hranových bodů zbytečně členitý. Tento jev jednak znesnadňoval vizuální vyhodnocení a navíc zbytečně zvyšoval potřebný výpočetní výkon. Vyhlazení průběhu by mohlo obstarat zařazení vhodného filtru, například mediánového, který jsem popisoval v kapitole 3.4. Když jsem ale převáděl souřadnice do komplexního tvaru, naskytla se mnohem jednodušší a efektivnější metoda. Stačilo jen převést každou druhou souřadnici. Došlo tím ke zmenšení objemu dat na polovinu a zároveň se průběh vyhladil. Výsledek je vidět na obrázku 4.2. Bylo by možné snížit počet dat ještě více než na polovinu, opět by to vyhladilo průběh, jenže by to sebou už přineslo větší riziko ztráty původních bodů pro měření a tedy i zhoršení přesnosti měření. Pro polovinu hodnot je tato nepřesnost zanedbatelná. Navíc je zde jen poloviční šance, že se vynechání bude týkat právě maximálního bodu. Možnost uvažování menšího než polovičního počtu hodnot by však bylo možné využít jako manuální volbu při tvorbě uživatelského rozhraní v pokračování této práce. Zejména by to bylo vhodné pro výrazné snížení výpočetní a pamět ové náročnosti. Dalším krokem po převodu souřadnic je přesunutí nulového bodu a s tím úzce spojené otočení objektu. Aby mohlo být následné zobrazení co nejvýhodnější, je zapotřebí mít u všech objektů stejně umístěný nulový bod. Jako jeho nejvhodnější pozici jsem po konzultaci s archeology zvolil nejspodnější část zkoumaného objektu. Těžiště ani geometrický střed objektu nebyly příliš vhodné pro vizuální porovnávání. Po zvolení budoucího nulového bodu nastal problém s jeho nalezením. Současný nejnižší bod byl totiž nalezen v původním obraze. Jde tedy o nejnižší bod mírně pootočeného objektu. Sklon sice nebývá příliš velký, přesto by zanesl určitou chybu. Z tohoto důvodu je třeba najít skutečně nejnižší bod celého objektu bez ohledu na jeho polohu. K tomu sem využil metodu, kterou jsem pro její náročnost zavrhl u zjišt ování rozměrů měrky. V tomto případě se sice stala díky většímu počtu bodů ještě náročnější, přesto se velmi osvědčila a poskytuje výborné výsledky. Základem této metody je nalezení dvou bodů na hranách objektu, které mezi sebou 28

30 Obrázek 4.1: Vykreslení hran po segmentaci. Obrázek 4.2: Hrany s polovičním počtem prvků. mají maximální vzdálenost. Spojnice těchto bodů pak odpovídá svislé ose objektu. Celý výpočet je ve dvou vnořených cyklech, které mají délku rovnou počtu bodů hran. Právě zde se projeví razantní zrychlení díky snížení počtu bodů, popsanému v předešlém odstavci. Výpočet vzdálenosti se provádí integrovanou funkcí abs, která určuje absolutní hodnotu komplexního čísla. Aby počítala vzdálenost od hledaného bodu a nikoliv od počátku, stačí odečíst druhý bod od prvního. Po proběhnutí obou cyklů získáme nejdelší vzdálenost dvou bodů objektu a také souřadnice těchto dvou bodů. Zbývá už jen určit, který ze dvou bodů odpovídá spodní části objektu. Hledaný bod je na imaginární ose položen mnohem níže než druhý bod. Nalezením bodu s menší imaginární složkou z obou zkoumaných tedy nalezneme hledaný nejnižší bod objektu. Následně od souřadnic všech bodů odečteme souřadnice tohoto bodu. Tím vznikne na místě nalezeného bodu nulová hodnota. Předešlý krok pouze upravil souřadnice tak, aby byl objekt umístěn do nulového bodu, ale obraz stále není kolmo k rovině. Díky předešlému úkonu už známe body osy objektu, takže musíme určit úhel náklonu a provést otočení. Určení úhlu imaginárního čísla je velmi jednoduché. V programu Matlab stačí využít předem definované funkce angle. Díky předešlé úpravě není nutné souřadnice přepočítávat a použijeme funkci angle rovnou na druhý bod osy. Výsledný úhel v radiánech udává 29

31 sklon osy objektu od imaginární osy. Nyní je potřeba objekt otočit. Před použitím komplexních čísel jsem zde prováděl rotaci celého obrázku. Následně však bylo nutné opět provést segmentaci a definování hran. Tento postup byl náročný a během opětovné segmentace docházelo k chybám, které měly za následek opětovné mírné vychýlení osy objektu. S využitím komplexních čísel tato chyba odpadla. V prvním kroku bylo nutné vyjádřit všechny body hran v goniometrickém tvaru. Příkaz abs tedy představuje modul a angle argument komplexního čísla. Právě argument je při otáčení nejvýznamnější. Je patrné, že jediné, co je potřeba při otáčení změnit, je právě argument a jediné, co musí zůstat zachováno, je modul a nulový bod. Otočení o požadovaný úhel provedeme přičtením nalezeného úhlu odchylky k argumentu komplexního čísla. Goniometrický tvar je ale nevhodný pro další měření a zobrazování. Využitím jednoduchých provedeme přepočet zpět do algebraického tvaru. Posledním úkonem této fáze je vydělení souřadnic koeficientem získaným z měrky pro přepočet. Dělení provádím až na konci, protože tím vzniknou z původně celých čísel souřadnic čísla s velkým počtem desetinných míst. Vlivem zaokrouhlování by tak mohlo dojít u předešlých výpočtů ke vzniku chyby. Po tomto úkonu už máme k dispozici konečný vektor komplexních čísel, která přesně definují zkoumaný objekt v jeho skutečných rozměrech. Zároveň je tento vektor ideálně uzpůsoben ke grafickému zobrazení a případnému vizuálnímu vyhodnocení. 4.3 Zjištění základních rozměrů Výsledkem všech zatím popsaných operací je vektor komplexních čísel, který přesně definuje nalezený objekt. Nyní tedy přichází na řadu určení rozměrů objektu. Základními rozměry zde rozumím výšku, šířku a tloušt ku hrotu. Z toho plyne, že kromě čelního pohledu bude nutné pracovat i s bočním snímkem hrotu. Nepřináší to však přílišné ztížení programu, pouze výše popsané operace provedeme dvakrát. Měření výšky je nejjednodušší, už totiž byla určena v části o otáčení objektu. Délka osy spojující dva nejvzdáleněnjší body je právě hledanou výškou. Protože nyní pracujeme ještě s bočním pohledem na hrot, získáme dvě hodnoty určující výšku. Obě hodnoty jsou získané stejným způsobem, takže jsou rovnocenné. Výsledná výška je tedy udána průměrem těchto dvou hodnot. Další měření šířky a tloušt ky jsou prakticky totožná. Jak u čelního tak u bočního pohledu je nutné určit krajní body. Tento úkon jsme už také dříve provedli při vyříznutí objektu. Z vektoru hran tedy najdeme nejmenší a největší reálné číslo. Vzdálenost těchto dvou bodů udává hledaný rozměr. Z tohoto popisu je patrné, že tento údaj nezjišt uji na přímce, ale mezi skutečně krajními body. Tento postup je tedy efektivnější než manuální měření, kde je tato metoda velmi složitá. Příklad takto naměřených hodnot je 30

32 na obrázku 5.2. Hodnoty jsou sice přesně změřené, ale je nutné zjistit, zda kore- Obrázek 4.3: Automaticky změřené rozměry na hrotu OI spondují se skutečnými rozměry hrotu. Pro tento účel jsem dostal tabulku obsahující rozměry některých vybraných hrotů. Automaticky a manuálně změřené údaje pro hrot z obrázku 5.2 jsou porovnány v tabulce 4.4. Z tabulky je jasně vidět, že nejmenší odchylku má výška. I při jejím manuálním měření je totiž poměrně jednoduché nalézt maximální body.odchylka u rozměru šířky a tloušt ky je už větší. Zde bych se ale přikláněl k hodnotám naměřeným programem. Na obrázku 5.2 je jasně vidět, z jak vzdálených bodů byli tyto hodnoty odečítány. Největší rozdíl vzdáleností je u tloušt ky, kde se také objevila největší odchylka. Ve výsledku pak autoamticky změřené rozměry poměrně přesně odpovídají rozměrům dodaným. 4.4 Určení koeficientů tvaru hrotu Po změření základních rozměrů je potřeba několika konstantami definovat tvar hrotu. Já jsem zvolil jako první údaj vzdálenost od počátku nebo maxima hrotu ke straně 31

33 Obrázek 4.4: Tabulka manuálně a automaticky změřených rozměrů hrotu OI pod konkrétním úhlem. To znamená, že z bodu 0,0 vedu přímky pod úhly 75, 80 a 85 jak v kladném tak v záporném smyslu. Obdobně pak vedu totožné přímky z vrcholu hrotu. Tento postup je názorně zachycen na obrázku 4.5. Vzdálenosti opět určuji pomocí funkce abs. Aby bylo jednodušší tyto hodnoty dále porovnávat, využívám zde dělení výškou hrotu. To je nejdelší vzdálenost v hrotu, takže veškeré změřené hodnoty jsou pak v rozmezí od 0 do 1. Díky tomu je možné porovnávat hroty s libovolnými základními rozměry. Obrázek 4.5: Zobrazení přímek pro odečtení vzdálenosti pod určitým úhlem. Úhly pod kterými jsou přímky vedeny jsem volil s ohledem na jejich koncové body. Z obrázku 4.6 je vidět vznik chyby při použití příliš malého úhlu. Vlivem různého tvaru hrotu totiž mohou některé výčnělky nebo dutiny procházet daným úhlem aniž by byli hledanými body. U zvolených úhlů je toto riziko velmi malé. Výše popsaným 32

34 Obrázek 4.6: Vznik chyby při použití nevhodných úhlů. způsobem jsem získal dvanáct konstant definujících tvar hrotu v oblasti počátku a maxima. Je tedy ještě potřeba definovat střední část. Částečně už je to zajištěno šířkou hrotu, ta je však vždy měřena v jiných bodech, takže se na ní nedá absolutně spolehnout. Z tohoto důvodu měřím další dvě hodnoty v rovině od středu hrotu. Jde tedy o určení šířky hrotu v polovině jeho výšky. Pro lepší porovnávání opět dělím vzdálenosti výškou hrotu. Celkově jsem tedy získal čtrnáct konstant pro určení tvaru hrotu. 4.5 Parametry minima a maxima hrotu V předešlé kapitole jsem určil množství parametrů definujících tvar hrotu. Nyní se zaměřím spíše na posouzení tvaru pro další rozlišení hrotů a jejich katalogizaci. Základem zde jsou tvar spodní a vrchní části hrotu. Prvním možným parametrem je úhel, který svírají hrany u těchto bodů. Názorně jsou tyto úhly zobrazeny na obrázku??. V první řadě je nutné zvolit úsek, na kterém se budou tyto úhly měřit. Já jsem zvolil body mající od minima nebo maxima vzdálenost menší 33

35 než 1/5 výšky hrotu. Tyto oblasti jsou na obrázku zvýrazněny modře pro spodní stranu hrotu a zeleně pro vrchní stranu hrotu. Kritérium 1/5 výšky se dá jednoduše změnit a je tak možné výpočet libovolně přizpůsobit. Postupně pak ke všem bodům splňujícím tuto podmínku počítám jejich úhel od výchozího bodu. Výsledný úhel je pak tvořen průměrnou hodnotou všech změřených úhlů. Výsledné úhly jsou vyznačeny v obrázku. Využití tohoto údaje pro porovnávání jednotlivých úhlů zřejmě není příliš vhodné. Naopak se hodí pro klasifikaci jednotlivých hrotů. Můžou tak vzniknout třídy s hroty majícími ostré, tupé, výrazně tupé atd. minima nebo maxima. Dalším údajem určujícím parametry těchto oblastí hrotu je stupeň konvex- Obrázek 4.7: Zjištění úhlů spodní a vrchní strany hrotu. nosti nebo konkávnosti hrany u hlavních bodů. Postup určování těchto hodnot je znázorněn na obrázku 4.8. Opět zde pracuji s 1/5 výšky hrotu. Tentokrát však vedu přímku od nulového nebo maximálního bodu do bodu ležícího na přímce ve výšce právě 1/5. Tyto přímky by bylo možné vést i pod libovolným úhlem, nebo k bodu v jiné výšce. Já jsem to zatím takto zvolil pro účely testování programu. Dále určím délku těchto přímek a zvolím na ní několik bodů zájmu. Prozatím jsou těmito body 1/4, 1/2 a 3/4 délky přímky. Tyto body jsou vidět na obrázku 4.9. Modré body 34

36 označují zvolené body zájmu. Černé body jsou pak nalezené body na hraně. Opět se zde dají jednoduše vybrat jiné body. Těmito body následně vedu kolmice k přímce sahající ke hraně hrotu. Tento postup je zřejmý z obrázku 4.8. Hledaným údajem je pak vzdálenost mezi bodem zájmu a hranou. Kladné nebo záporné znaménko následně určuje, na které straně přímky se hrana nachází. Porovnání tří získaných vzdáleností zase definuje míru konvexnosti nebo konkávnosti hrany. Tento údaj opět slouží spíše pro získání co nejpřesnější informace o tvaru hrotu pro další katalogizaci. Obrázek 4.8: Postup výpočtu koeficientů konvexnosti a konkávnosti. Obrázek 4.9: Body určující konvexnost nebo konkávnost vyznačené v hrrotu. 4.6 Zhodnocení měření V této kapitole jsem navrhnul a naprogramoval několik metod pro určení základních rozměrů a tvaru zkoumaného hrotu. Úvod této kapitoly však věnuji zjištění rozměrů měrky v obraze pro přepočet na skutečné rozměry. Tato část je velmi důležitá a je nezbytné stanovit tyto rozměry co nejpřesněji. Po několika pokusech jsem jako nejvhodnější zvolil metodu vycházející z obsahu čtverce. S tím souvisí i další podkapitola zabývající se přepočtem souřadnic a otočením hrotu. Tyto kroky jsou nezbytné pro přesnost všech dalších měření. Z části zabývající se samotným měřením považuji za nejdůležitější a v budoucnu nejpoužívanější část zabývající se měřením základních 35

37 rozměrů. S uživateli jsem konzultoval několik metod určení tvaru hrotu, přičemž nejvíce jim vyhovovala metoda měřící vzdálenost od maxima a minima pod určitým úhlem a metoda měření úhlu vrcholu a základny. Poslední metoda měřící konvexnost a konkávnost hrotu se z praktického hlediska nejevila příliš přínosná a proto jsem ji zatím do finálního programu nezahrnul. Program na její výpočet jsem však vytvořil a její implementaci tedy nic nebrání. 36

38 5 UŽIVATELSKÉ ROZHRANÍ V této části práce se zaměřím na propojení předešlých částí pomocí uživatelského rozhraní. Prvním krokem je úprava formátu zápisu všech výše popsaných funkcí. Zejména jde o přehlednost zápisu a možnost doplnění dalších funkcí, což byl jeden z požadavků na výsledný program. Během vývoje programu jsem vytvořil několik verzí uživatelského rozhraní, které jsem upravoval nebo zcela měnil podle potřeb uživatelů. První verze prováděla pouze měření jednoho hrotu, jeho zobrazení a neumožňovala další operace. Přesto jsem ji využil ve finálním programu jako rozhraní pro vkládání nového hrotu. Z tohoto důvodu se budu v jedné z dalších kapitol věnovat jeho popisu. Na závěr zde uvedu podobu a funkce finální verze programu. Tato část bude obsahovat možnosti nastavení programu a zaměřím se na popis jeho nejdůležitějších funkcí. 5.1 Úprava předešlých funkcí Předešlé kapitoly práce zkoumaly možnosti detekce objektu v obraze, metody měření nalezeného objektu a zvolil jsem v nich metody, které budu dále používat. Nyní je potřeba tyto zvolené operace přepsat do programu takovým způsobem, aby byli snadno a univerzálně použitelné. Z tohoto důvodu jsem vytvořil dva soubory volané funkcemi. Do části předzpracování jsem zahrnul vše od převodu snímku na odstíny šedi po otočení a změnu souřadnic. Zápis a volání funkce je podle příkazu 5.1. Vstup je pouze načtená fotografie a výstupem je vektor komplexních hodnot definujících okraj zvoleného hrotu. Jediným dalším parametrem je velikost měrky v milimetrech. Protože bylo dohodnuto, že všechny zpracovávané fotografie budou mít měrku právě se stranou 10 mm, je tato hodnota zapsána přímo v programu. Nic však nebrání její editaci přímo v kódu. Z toho vyplývá možnost využití této funkce pro zpracování jakékoliv fotografie, která bude obsahovat objekt a měrku. Výstupem bude vždy vektor definující okraje objektu na fotografii. [hrany]=predzpracovani(obr) (5.1) [vysledek, body]=mereni(funkce, hrany, parametr) (5.2) Druhý soubor obsahuje všechny funkce měření. Jedním z požadavků na výsledný program byla možnost doplňování dalších měření, čemuž jsem přizpůsobil právě tento soubor. Bylo tedy potřeba vytvořit univerzální funkci, pomocí které budou volány vnitřní měřící funkce. Jako nejvhodnější řešení jsem zde zvolil využití příkazu switch (x), který testuje proměnnou x a volá funkce case podle její hodnoty. V jádru 37

39 case je pak zapsána celá funkce měření. Proměnnou testovanou ve switch je hodnota vstupu funkce ze zápisu 5.2. Programem je dané, že může nabývat pouze celočíselných kladných hodnot, přičemž hodnota nula vypisuje seznam všech dostupných funkcí měření a jejich stručnou nápovědu s popisem výstupu a případného parametru. Samotné funkce měření jsou zapsány od hodnoty jedna a horní limit nemají. Tento postup zajišt uje, že bude volána vždy jen jedna požadovaná funkce a zároveň umožňuje jednoduché vkládání dalších funkcí. To probíhá jednoduchým přidáním dalšího case. Pokud jsou dodrženy všechny pokyny uvedené v nápovědě, bude nová funkce dostupné ihned po opětovném kompilování a spuštění programu. Nyní je potřeba popsat zbývající vstupní a výstupní parametry. Nejprve se zaměřím na vstupy funkce. Druhým vstupem označeným hrany je komplexní vektor bodů hran získaný předzpracováním. Vstupují tedy všechny údaje o zkoumaném objektu, které máme k dispozici. Díky tomu jde o univerzální vstup pro všechna měření. Posledním vstup má označení parametr. Tato proměnná se zadává manuálně z uživatelského rozhraní pomocí komponenty Edit. Její obsah tedy může být libovolné číslo, ale i řetězec. Tento parametr je zde pro potřeby konkrétních funkcí, které vyžadují nějaký koeficient pro svůj běh. Například ho využívám u funkce měření úhlu vrcholu a báze hrotu, kde určuje na jak velké části hrotu má měření probíhat. Tyto vstupní parametry podle mého názoru umožňují zapsání jakékoli potřebné funkce v oblasti určení programu. Nyní se ještě zaměřím na výstupy funkce. Ty bylo potřeba navrhnout tak, aby do nich bylo možné uvést číselnou hodnotu, vektor nebo matici. K tomu slouží proměnná vysledek, do níž je možné vkládat všechny výše zmíněné tvary výsledku. Pouze je potřeba brát v úvahu, že výsledek bude v okně Vypis, takže by neměl obsahovat příliš mnoho hodnot. Druhým výstupem je proměnná body, která slouží pro grafické znázornění výsledku měření. Zde už je nutné dodržet určitý formát zápisu ve tvaru matice o dvou řádcích a libovolném počtu sloupců. Dále musí být v každé buňce komplexní číslo definující bod. Čísla v prvním řádku v grafu označují červené body a čísla v druhém řádku označují body modré. Na obrázcích 5.1 a 5.2 jsou vidět zobrazené body při měření tvaru hrotu a základních rozměrů, popis funkcí a významu bodů je v kapitole 4. Body je také možné pro lepší čitelnost nebo tisk zobrazit černě, s použitím jiné marky nebo je nezobrazit vůbec. Popisem výběru způsobu zobrazení se budu zabývat v kapitole 5.5 společně s popisem dalších funkcí programu. 38

40 Obrázek 5.1: Body při měření tvaru hrotu. Obrázek 5.2: Body při měření výšky a šířky. 5.2 Základní rozhraní pro měření jednoho hrotu Během vývoje programu jsem vytvořil několik verzí uživatelského rozhraní, které jsem dále upravoval podle potřeb uživatelů programu. Jednou z prvních verzí byl jednoduchý program pro měření jednoho hrotu. Přestože jsem ve finální verzi využil úplně nové rozhraní, používám tento program jako rozhraní pro přidání nového hrotu do programu. Při spuštění se zobrazí pouze levé okno z obrázku 5.3. Při stisknutí tlačítka Nacteni se spustí klasické okno pro výběr souboru. Filtr výběru je nastaven na *a.tif, což odpovídá tvaru souboru, na kterém jsme se dohodli s uživateli. Název souboru je totiž identifikační číslo hrotu a písmeno na konci označuje pohled, ze kterého byla fotografie pořízena. Konkrétně písmeno a odpovídá čelnímu pohledu a b pohledu bočnímu. Při načítání je prvně zpracováván čelní pohled, takže jsem filtr nastavil tak, aby se ve výběru nepletly soubory bočního pohledu. Po vybrání souboru se stejný proces opakuje ještě jednou pro boční pohled. Výsledek po načtení obou snímků je vidět na obrázku 5.3. Oba pohledy jsou vykresleny pomocí jejich bodů hran do samostatných oken. Díky tomu se s jednotlivými průběhy lépe manipuluje a je usnadněn export obrázku. V původním okně programu jsou pak v okně Zmerene hodnoty uvedeny změřené základní rozměry hrotu. Zároveň je možné v tomto okně kliknout na text Vyska, Sirka, Tloustka přičemž se v obrázcích hrotu zvýrazní body, mezi kterými byla daná hodnota měřena. Na obrázku 5.3 je vidět zobra- 39

41 zení šířky hrotu. Postup měření těchto rozměrů je uveden v kapitole 4.3 společně s vysvětlením výběru konkrétních bodů. Pod oknem s naměřenými hodnotami se nachází ještě panel Edit se jménem hrotu. Sem je primárně vkládán název souboru, ze kterého byl hrot načten. Je však možné tento text měnit a v případě vkládání hrotu do seznamu se jako jeho jméno bere právě text z tohoto pole. Tvorbou seznamu a jeho vlastnostmi se budu zabývat v další kapitole. Poslední částí tohoto programu je tlačítko OK. Při spuštění samotného programu dojde při jeho stisknutí pouze k zavření okna. Pokus je však program spuštěn z hlavního rozhraní, budou zde nastaveny globální proměnné, které umožní přenést změřený hrot z tohoto rozhraní do finálního programu. Z tohoto popisu je vidět, že zmiňovaný program by mohl najít uplatnění i samostatně v případě nutnosti pouhého změření objektu na základě fotografie. Zejména však posloužil k vysvětlení základního běhu rozhraní a v podstatě i k popisu vkládání nových hrotů do finálního programu. Obrázek 5.3: Rozhraní po načtení snímků. 5.3 Rozhraní finálního programu Předchozí části kapitoly jsem věnoval popisu předzpracování, měření a částečně i vkládání nového hrotu. V této části se zaměřím na propojení těchto operací ve finální 40

42 verzi uživatelského rozhraní. Zejména se zde budu soustředit na tvorbu a práci se seznamem změřených hodnot a základní nastavení zobrazení programu. Funkce umožňující export dat, manuální měření a pokročilé měření s využitím souboru měření z předešlé kapitoly považuji za velmi významné, takže se jim budu věnovat v následující kapitole práce. Pojem seznam budu v této a následujících kapitolách používat velmi často, takže považuji za vhodné nejprve popsat právě tuto součást. Program má sloužit k evidenci archeologických nálezů, takže bylo nezbytné nějakým způsobem ukládat změřené výsledky. Prvním krokem bylo zjištění možností ukládání proměnných z programu Matlab. Ten má pro tyto potřeby svoji vlastní proměnnou označenou příponou.mat. Do těchto souborů je možné ukládat a opětovně z nich načítat libovolné proměnné vytvořené v programu Matlab. Jedinou nevýhodou těchto souborů je nemožnost jejich přímé editace. Úprava a prohlížení dat je umožněno pouze jejich načtením do programu. Dalším krokem byl výběr dat k uložení. Vhodné je uložit co nejméně dat, která však budou daný hrot co nejlépe charakterizovat. Na prvním místě je nutnost uložení názvu hrotu. Dalším prvkem pak jsou vektory hranových bodů hrotu pro čelní a boční pohled. Tyto údaje jsou sice objemné, ale dokonale charakterizují hrot a je na nich možné provádět všechna potřebná měření. Každá z těchto tří hodnot má však jiný formát, takže bylo potřeba určit ještě způsob jejich ukládání. Formát.mat dokáže pracovat i se submaticemi, takže nejlepším řešením bylo vytvořit submatici. Na obrázku 5.4 je znázorněna část seznamu načteného v rozhraní na obrázku 7.2. První sloupec obsahuje jména hrotů, která se zobrazují při načtení seznamu. Ve druhém a třetím sloupci jsou uloženy řádkové komplexní vektory čelního a bočního pohledu. Samostatné číslo ve čtvrtém sloupci prvního řádku určuje počet hrotů v seznamu. Je vidět, že každému hrotu náleží jeden řádek, takže není problém jejich doplňování ani odebírání. Obrázek 5.4: Část submatice představující data v seznamu. Tuto část jsem se rozhodl koncipovat jako jednoduchého průvodce startem pro- 41

43 gramu. Začnu tedy spuštěním programu, přičemž už zde se nabízejí dvě možnosti dalšího postupu. První možnost nastane v případě prvního spuštění na daném počítači. Tehdy dojde pouze k otevření prázdného rozhraní jako na obrázku 7.1 v příloze práce. V případě opětovného spuštění programu se při jeho startu zobrazí nabídka umožňující pokračování v práci. Při volbě Ne se zobrazí čisté rozhraní. Pokud chceme pokračovat, bude načten poslední otevřený seznam a provedeno poslední vyhledávání. Pro toto obnovení slouží soubor setup.mat ve složce programu, který se vytváří při načtení seznamu. Nyní budu uvažovat první spuštění programu, takže před sebou máme rozhraní podle obrázku 7.1. Nejprve se zaměřím na grafickou podobu rozhraní, kde jsou jasně patrné čtyři hlavní části. První částí vlevo nahoře je panel pro zobrazení načteného seznamu. Pravá horní část obsahuje panel pro vyhledávání v seznamu. Pod ním jsou umístěny volby nastavení programu a ve spodní části okna je panel pro výpis výsledků a kroků programu. Samostatnou částí je pak lišta s tlačítky v horní části okna. Nabídka Seznam má na starosti práci se seznamem, jeho načítání a vytváření. Z tohoto důvodu je tato položka zpravidla první věcí, kterou uživatel použije a bude tedy i první komponentou na kterou se zaměřím. Nabídka Export sice také souvisí s jednotlivými panely, přesto se jejím popisem budu zabývat až v další kapitole. Nyní máme před sebou prázdné rozhraní a bud můžeme načíst už hotový seznam, nebo budeme vytvářet nový. Otevřeme tedy položku seznam a rozbalí se nabídka podle obrázku 5.5. První položka umožňuje načtení již vytvořeného seznamu. Ve složce programu jsem už vytvořil testovací seznam z několika dodaných snímků nazvaný seznam.mat. Pokud chceme vytvořit nový seznam, je nejvhodnější zvolit druhou položku Davka. Ta umožňuje zvolit složku s fotografiemi a najednou zpracovat všechny snímky v ní obsažené. Program automaticky načítá všechny fotografie předem dohodnutého formátu TIFF, čelní a boční pohled opět určuje podle písmena na konci názvu. Zde není možnost měnit název hrotu jako u programu pro zpracování jednoho hrotu, ale všechny jsou uloženy pod svými identifikačními čísly nebo názvy z fotografie. Po spuštění dávkového zpracování se program nejprve ptá na způsob uložení výsledku oknem z obrázku 5.6. Volba Yes požaduje otevření již vytvořeného seznamu na jehož konec budou přidány hroty zpracované dávkou. Pokud chceme vytvořit úplně nový seznam stiskneme No a budeme zadávat jméno nového souboru. Průběh zpracování signalizuje progress bar po jehož automatickém zavření je seznam hotov. Tato funkce byla jedním z požadavků ze strany uživatelů, kteří budou muset zpracovávat velké množství dat, a postupné měření by tak bylo velmi zdlouhavé. Nyní máme vytvořen seznam a můžeme ho otevřít výše zmíněnou volbou Nacist. Seznam se pak zobrazí v levém horním panelu nazvaném Seznam. Poslední dvě volby menu Seznam slouží pro editaci a doplňování seznamu. Položka Pridat 42

44 hrot spustí rozhraní z obrázku 5.3. Po zpracování načtených snímků a stisknutí tlačítka OK je nový hrot uložen na konec stávajícího seznamu. Položka Odstranit hrot naopak vymaže ze seznamu označený hrot nebo hroty. Tímto už se dostávám k ovládání samotného panelu Seznam, které je velmi jednoduché a budu se jím zabývat v další kapitole. Obrázek 5.5: Nabídka Seznam. Obrázek 5.6: Dotaz na uložení výsledku dávkového zpracování. 5.4 Základní ovládání a zobrazení V předešlé kapitole jsem popsal způsob načtení a tvorby seznamu, takže nyní máme načten seznam a rozhraní vypadá podle obrázku 7.2. Pro zobrazení obrysu hrotu jako na obrázku stačí kliknout na jméno zvoleného hrotu. V panelu nastavení je ihned po startu zatržen Celni pohled. Po naklinknuti se tak rovnou zobrazí obrys hrotu z čelního pohledu v samostatném okně Celni pohled. Ten poskytuje nejlepší představu o zkoumaném hrotu. Boční pohled spíše slouží pro bližší zkoumání a přesnější měření. Jeho zobrazení tedy není okamžité a je potřeba nejprve zaškrtnout volbu Bocni pohled v panelu Nastaveni. Pomocí těchto zatržítek je možné vypnout zobrazování libovolného pohledu, přičemž okno s posledním zobrazeným hrotem zůstane otevřené pro další porovnání. Zároveň se zobrazením hrotu se v panelu Vypis zobrazí jeho jméno a na dalším řádku jeho základní rozměry. Hodnoty jsou počítány v reálném čase a nikde se neukládají. Při zvolení hrotu je tedy volána funkce mereni, která provede požadovaný výpočet. Okno s výpisem rozměrů zvoleného hrotu je opět vidět na obrázku 7.2, na kterém je mimo jiné vidět text blue u jména hrotu. U zobrazení jednoho hrotu není tento údaj potřebný, ale využívá se u zobrazení několika hrotů v jednom okně. Tato funkce byla jedním ze základních požadavků uživatelů společně s požadavkem na její ovládání pomocí kláves Ctrl a Shift. Matlab naštěstí podporuje výběr myší při stisknutí klávesy, takže program funguje v tomto ohledu jako běžný editor nebo správce souborů. Při stisknutí klávesy Ctrl je možné nakliknout až pět různých hrotů. Klávesou Shift vybíráme 43

45 pět hrotů v řadě. Přestože je možné zatrhnout i více než pět hrotů, je pět maximum, které se zobrazí v okně a panelu Vypis. Důvodem tohoto omezení je přehlednost zobrazení. Na obrázku 7.3 je vidět, že už v případě pěti zobrazení se okno stává nepřehledné. Zároveň jsem byl také omezen výběrem použitelných barev aby byly jednotlivé průběhy zřetelné a přitom nesplývaly. Pro identifikaci jednotlivých hrotů slouží text v okně Vypis, kde je u jména každého hrotu uvedena v závorce barva, kterou je vykreslen. Tento text je opět vidět na obrázku 7.3. Pro úpravu zobrazení jsou ještě další dvě zatržítka v panelu Nastaveni. První z nich pojmenované Grid slouží k zobrazení mřížky v grafu. Pro vykreslení mřížky jsem použil integrovanou funkci grid on. Jde tedy o automatické vykreslení, takže je možné manipulovat s oknem bez nebezpečí narušení mřížky. Zapnutá mřížka je vidět na obrázku 5.7 Druhá volba Cernobile slouží k úpravě zobrazení před černobílým tiskem. Zejména zde o případ, kdy je zobrazeno více hrotů v okně. Při černobílém tisku by tak byli jednotlivé hroty velmi těžko rozpoznatelné a tak by neměl obrázek v podstatě žádnou vypovídací hodnotu. Díky tomuto zatržítku je tak možné změnit barevné rozlišení hrotů na rozlišení podle typů čar. Příklad této funkce je vidět na obrázku 5.8. U této funkce je však nutné brát v úvahu, že při přepnutí zobrazení je možné najednou zobrazit pouze čtyři hroty. Důvodem této změny je malý počet typů čar, které jsou k dispozici a zároveň jsou rozlišitelné. Obrázek 5.7: Zobrazení mřížky. Obrázek 5.8: Černobílé zobrazení. Z hlavního rozhraní zbývá ještě panel umožňující vyhledávání. Předpokládá se, že program bude využívat jeden nebo několik málo velkých seznamů, takže bylo třeba vytvořit funkci, která v nich bude vyhledávat. Opět je zde nejprve nutné načíst seznam. Následně můžeme do pole Edit v panelu Vyber vepsat libovolný řetězec. Pokud některý z názvů hrotů v seznamu obsahuje hledaný řetězec, bude zobrazen v panelu pod zadaným řetězcem. Příklad s vyhledáváním řetězce MB je 44

46 na obrázku 7.2. Zároveň s tím se do pole Vypis zobrazí hledaný řetězec a počet nalezených hrotů. Program také podporuje vyhledávání několika řetězců současně. Stačí mezi ně vložit znaménko +, tento přístup byl opět požadován uživateli. Díky tomu je možné vyhledat velké množství hrotů, pokud známe jejich název. Další výhoda souvisí s funkcí exportu výsledků popsanou v další kapitole. Ta umožňuje exportovat pouze změřené výsledky hrotů zobrazených v panelu Vyber. Můžeme tak pracovat pouze s momentálně potřebnými údaji a neprovádíme zbytečně měření na celém seznamu. Kromě těchto funkcí podporuje výběr i veškeré zobrazovací funkce popsané v předešlém odstavci u pole Seznam. 5.5 Pokročilé funkce programu Nyní se zaměřím na zbývající funkce programu, kterými jsou manuální měření, pokročilé měření a export výsledků. v předchozí kapitole jsem popsal několik prvních voleb v panelu Nastaveni a další na řadě je tedy funkce Manualni mereni. Jejím účelem je měřit manuálně rozměry hrotu pomocí myši. Levým tlačítkem myši se umíst uje červený bod a pravým tlačítkem bod modrý. Zároveň s tím se do panelu Vypis zobrazují komplexní souřadnice zvolených bodů a jejich vzdálenost. Takto je možné měřit vzdálenost kdekoliv v zobrazeném grafu. Pokud se potřebujeme při měření držet obrysu hrotu, můžeme zatrhnout možnost Přichytavat. Ta u každého kliknutí hledá nejbližší bod nacházející se na obrysu hrotu a na něj přesune bod. Dochází tak k měření přesně na obrysu. Tuto funkci je možné využít i při zobrazení několika hrotů zároveň. Opět zde hledá nejbližší body, tentokrát však na obrysech všech hrotů. Můžeme tedy přesně měřit rozdíly mezi jednotlivými hroty. Měření se zapnutým přichytáváním je názorně vidět na obrázku 5.9 a výpis změřených hodnot na obrázku Obrázek 5.9: Manuální měření. Obrázek 5.10: Výpis měření. 45

47 Další funkcí v panelu Nastaveni je Pokrocile mereni. Tato funkce rozšiřuje základní rozhraní o několik dalších panelů, které jsou vidět na obrázku 7.4. Toto rozhraní slouží k ovládání a volání skriptu mereni.m popsaného v kapitole 5.1. V panelu Dostupne funkce se zobrazuje seznam funkcí obsažených v souboru. Panel Popis funkce obsahuje jednoduchou nápovědu pro zvolenou funkci. Je zde zejména uvedeno, zda měření vyžaduje parametr a v jakém formátu jsou výsledky měření. Seznam měření i nápověda jsou v souboru uvedeny pod číslem funkce nula. Pokud tam není uveden alespoň název funkce, nebude v programu dostupná. Ovládání je opět realizování výběrem myší z panelu Dostupne funkce. Kliknutím vybereme požadované měření, doplníme parametr a tlačítkem Vypocet spustíme měření. Měření je vždy prováděno pouze na hrotu, který je momentálně zvolen. V případě výběru a zobrazení několika hrotů zároveň bude funkce počítána vždy pro první z nich. Měření několika hrotů současně by bylo s ohledem na rozsah výsledků nepřehledné. V případě nutnosti měření několika hrotů je však možné využít dále popsanou funkci exportu. S výběrem měřeného hrotu také souvisí výběr pohledu, na kterém bude měření probíhat. Zde se program řídí výběrem zobrazení na prvních dvou položkách panelu Nastaveni. Je tedy možné provádět měření na čelním pohledu, bočním pohledu a na obou zároveň. Výsledek se opět zobrazuje v panelu Vypis společně s číslem funkce a parametrem. Na obrázku 7.4 je vidět výsledek pro měření tvaru hrotu. Ke správné prezenetaci výsledků slouží nápověda funkce, kde je uvedeno co která hodnota znamená. Jak už jsem zmínil v kapitole 5.1 je možné výsledky i zobrazit. K tomu slouží několik voleb v panelu Nastaveni, které se zviditelní při aktivaci měření. První položka Zobrazit body vykreslí do grafu důležité body konkrétní funkce uvedené v proměnné body. Výběr těchto bodů je čistě na programátorovi, který je umístí do matice o dvou řádcích a libovolném počtu sloupců. Body v prvním řádku se zobrazí červeně, zatímco z druhého řádku modře. Typy bodů volíme ve spodních dvou rozbalovacích nabídkách označených Red a Blue. Primárně je nastaven typ kolečko. Dalšími možnostmi je zobrazení křížku, bodu, černé varianty těchto typů a nakonec nezobrazení bodů konkrétní barvy. Názorně jsou tyto volby vidět na obrázku Na obrázku 7.4 je vidět zobrazení bodů v podobě červených koleček a modrých křížků. Popis jednotlivých bodů je opět uveden v panelu Popis funkce. Díky funkci pokročilého měření je tak možné doplňovat do program libovolné další funkce měření a pohodlně s nimi pracovat s využitím rozšířeného rozhraní. Poslední částí této kapitoly je popis exportu výsledků programu. Všechny nabídky jsou pod tlačítkem Export na hlavní liště. Výpis možností je vidět na obrázku Z obrázku je patrné, že většina funkcí exportu se vztahuje k programu Excel. 46

48 Obrázek 5.11: Nabídky typů bodů. Obrázek 5.12: Nabídka exportování výsledků. Toto byl opět jeden z hlavních požadavků od uživatelů, aby byly změřené výsledky zobrazitelné právě pomocí tohoto programu. Program Matlab má speciální funkci xlswrite, která umožňuje exportovat data právě do prostředí Excel. Forma tabulkového editoru je totiž velmi vhodná pro vyjádření matic, které jsou v podstatě základem programu. Je tedy pouze nutné upravit exportovaná data do matice, přičemž rozmístění dat v této matici bude odpovídat rozmístění dat v tabulce. Díky tomu je možné jednoduše vkládat do matice i popisky. Příklad exportovaných dat je na obrázku Nyní se zaměřím na popis jednotlivých možností exportu z obrázku První možností je Seznam do Excel, při vybrání vezme program seznam načtený v panelu Seznam, vypočítá k němu základní rozměry a exportuje matici obsahující jméno hrotu, výšku, šířku a tloušt ku. Průběh zpracování opět signalizuje progress bar. Je zde nutné počkat až do jeho automatického zavření, protože až pak je vytvořen nový soubor. Druhou volbou je velmi podobná položka Vyber do Excel, která exportuje výsledky hledání. Načte tedy hroty vypsané v panelu Vyber, dopočítá k nim základní rozměry a výsledek exportuje. Tato funkce je velmi vhodná pro případ, kdy potřebujeme získat rozměry pouze některých hrotů a export celého seznamu by tak byl zbytečný. Nyní přeskočím k posledním dvěma volbám, kterými jsou Seznam + funkce a Vyber + funkce. Opět zde první volba bude exportovat celý seznam a druhá pouze vyhledané hroty. Nebudou už ale přidány základní rozměry, ale výsledky zvolené funkce z pokročilého měření. Vybereme tedy požadovanou funkci, zvolíme opět pohled na kterém má měření proběhnout a následným zvolením typu exportu provedeme výpočet. Na obrázku 5.13 je vidět export s funkcí měření základních rozměrů pro oba pohledy. V popisku se automaticky objeví název zvolené funkce a data jsou oddělena podle pohledu. K jasné prezentaci dat opět slouží nápověda u každé funkce. Poslední možností exportu je přeskočená položka Ulozit vypis. Zde neprobíhá export do programu Excel, ale do klasického textového souboru s příponou txt. Obsahem je kompletní obsah okna Vypis, díky čemuž je možné dohledat prováděná měření a další operace. Po exportu se panel vymaže a bude v něm uvedena informace o jménu souboru s exportovanými daty. 47

49 Obrázek 5.13: Export sezamu do Excelu s funkcí měření základních rozměrů pro čelní i boční pohled. 5.6 Spuštění programu a instalace knihoven Tato kapitola je velmi krátká, ale je nezbytná pro spuštění programu. Na přiloženém CD je umístěna zkompilovaná verze programu, která se jednoduše spouští souborem Hroty.exe. Složka s programem může být umístěna kdekoliv, je však nutné brát v úvahu, že při ukládání a načítání je jako výchozí místo nastaveno umístění složky s programem. Před samotným spuštěním je však ještě nutné nainstalovat důležité knihovny programu Matlab, bez kterých by program nefungoval. Instalační balík knihoven se rovněž nalézá na přiloženém CD a má název MCRInstaller.exe. Tento soubor je také dostupný ze stránek společnosti MathWorks. Instalace knihoven trvá poměrně dlouho dobu a doporučuji po skončení instalace provést restart počítače. Po nainstalování knihoven je již možné program spustit. Zde bych se ještě zmínil o možnostech kompilace programu v prostředí Matlab. Ten má vlastní kompilátor do jazyka C, který se volá příkazem mcc v příkazové řádce prostředí. Příkaz má velké množství nastavení, mně se však pro správnou funkčnost osvědčil zápis 5.3. Text za symbolem -o označuje jméno výstupního souboru a text za symbolem -m název hlavního souboru obsluhujícího program. Je vhodné mít všechny soubory patřící k programu umístěny ve složce s obsluhujícím souborem. Při editaci nebo úpravách programu je po jejich dokončení nutné program opět zkompilovat uvedeným příkazem. mcc o Hroty m Hrotynove.m (5.3) 48

50 6 ZÁVĚR První část práce je zaměřena na zpracování obrazu. Zejména se zde věnuji způsobům převodu obrazu na jiný barevný formát, prahování a segmentaci. Kromě teoretického popisu metod zde používám praktické příklady vytvořené v programu Matlab. Výsledkem této části je soubor predzpracovani.m, který provádí detekci objektů v obraze. Zároveň s tím upravuje nalezený objekt do souřadnic odpovídajících reálným rozměrům zjištěným z objektu měrky. Vstupem je tedy fotografie s měrkou a výstupem je komplexní vektor přesně definující okraje hrotu. Ve druhé části práce jsem prováděl několik měření hrotu přičemž vstupem byl získaný vektor. Hlavním bodem bylo měření základních rozměrů hrotu. Z tabulky 4.4 je vidět, že program poskytuje velmi přesná měření. Následně jsem navrhnul několik metod měření pro definování tvaru hrotu. Po konzultaci s uživateli jsme jako nejvhodnější zvolili metodu měření vzdáleností od minima a maxima hrotu pod určitými úhly. Stejně tak se ukázala být užitečnou metoda měření úhlu vrcholu a báze hrotu. Tyto funkce a ještě některé další jsem následně zahrnul do souboru mereni.m, který obsahuje veškeré funkce měření a je ovládán z uživatelského rozhraní. Jehož tvorba byla poslední částí této práce. Během konzultací jsme vytvořil několik typů rozhraní, přičemž podoba finálního programu je vidět na obrázcích 7.1, 7.2 a 7.4. Tento vzhled nejvíce vyhovoval požadavkům uživatelů, protože je v něm možné libovolně manipulovat s okny zobrazujícími měřené hroty, je přehledné a snadno ovladatelné. Mezi dalšími požadavky byla hlavně možnost doplňování dalších funkcí měření, což jsem zajistil zmíněným souborem mereni.m a rozhraním z obrázku 7.4. Dále bylo třeba umožnit přenos výsledků mezi programy. Tento problém jsem vyřešil přidáním funkce umožňující export změřených dat do prostředí Excel. Poslední z významných funkcí je možnost manuálního měření. Pomocí levého a pravého tlačítka myši jsou vybrány dva body, mezi kterými je měřena vzdálenost. Výsledkem práce je tedy plně funkční program pro měření hrotů z jejich fotografií. Zároveň slouží k uchování a opětovnému přístupu k výsledkům měření. Projekt je součástí grantového projektu Ministerstva kultury číslo DE07P03OKG011. V současné době je program testován v oddělení Anthropos Moravského zemského muzea. S uživateli jsem neustále v kontaktu pro případ úprav programu. Výsledný program je spolu se skripty použitými v této práci uložen na přiloženém CD. 49

51 7 PŘÍLOHA Obrázek 7.1: Rozhraní programu při prvním spuštění. 50

52 Obrázek 7.2: Rozhraní programu s načteným seznamem, vyhledáváním a zobrazenými pohledy. 51

53 Obrázek 7.3: Zobrazení pěti hrotů do jednoho okna. 52

54 Obrázek 7.4: Rozhraní se zapnutým pokročilým měřením a výpočtem koeficientů tvaru hrotu. 53

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící

Více

Operace s obrazem II

Operace s obrazem II Operace s obrazem II Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 Osnova Matematická morfologie Segmentace obrazu Klasifikace objektů

Více

Analýza a zpracování digitálního obrazu

Analýza a zpracování digitálního obrazu Analýza a zpracování digitálního obrazu Úlohy strojového vidění lze přibližně rozdělit do sekvence čtyř funkčních bloků: Předzpracování veškerých obrazových dat pomocí filtrací (tj. transformací obrazové

Více

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1 Kapitola 4 Rasterizace objektů Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na rastrově definované obrazy. Při zobrazení reálného modelu ve světových souřadnicích na výstupní

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH Viktor Haškovec, Martina Mudrová Vysoká škola chemicko-technologická v Praze, Ústav počítačové a řídicí techniky Abstrakt Příspěvek je věnován zpracování biomedicínských

Více

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE

Více

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU ÚLOHY S POLYGONEM Polygon řetězec úseček, poslední bod je totožný s prvním 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU 3 úsečky (segmenty) v horní části 2 úsečky ve spodní části

Více

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2 Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací

Více

SEMESTRÁLNÍ PRÁCE X. Aproximace křivek Numerické vyhlazování

SEMESTRÁLNÍ PRÁCE X. Aproximace křivek Numerické vyhlazování KATEDRA ANALYTICKÉ CHEMIE FAKULTY CHEMICKO TECHNOLOGICKÉ UNIVERSITA PARDUBICE - Licenční studium chemometrie LS96/1 SEMESTRÁLNÍ PRÁCE X. Aproximace křivek Numerické vyhlazování Praha, leden 1999 0 Úloha

Více

Jasové transformace. Karel Horák. Rozvrh přednášky:

Jasové transformace. Karel Horák. Rozvrh přednášky: 1 / 23 Jasové transformace Karel Horák Rozvrh přednášky: 1. Úvod. 2. Histogram obrazu. 3. Globální jasová transformace. 4. Lokální jasová transformace. 5. Bodová jasová transformace. 2 / 23 Jasové transformace

Více

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 Mgr. Tomáš Kotler I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán rovinný obrazec, v obrázku vyznačený barevnou výplní, který představuje

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION

Více

Zpracování digitalizovaného obrazu (ZDO) - Segmentace

Zpracování digitalizovaného obrazu (ZDO) - Segmentace Zpracování digitalizovaného obrazu (ZDO) - Segmentace úvod, prahování Ing. Zdeněk Krňoul, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Zpracování digitalizovaného obrazu

Více

Excel 2007 praktická práce

Excel 2007 praktická práce Excel 2007 praktická práce 1 Excel OP LZZ Tento kurz je financován prostřednictvím výzvy č. 40 Operačního programu Lidské zdroje a zaměstnanost z prostředků Evropského sociálního fondu. 2 Excel Cíl kurzu

Více

Extrémy funkce dvou proměnných

Extrémy funkce dvou proměnných Extrémy funkce dvou proměnných 1. Stanovte rozměry pravoúhlé vodní nádrže o objemu 32 m 3 tak, aby dno a stěny měly nejmenší povrch. Označme rozměry pravoúhlé nádrže x, y, z (viz obr.). ak objem této nádrže

Více

Numerické řešení variačních úloh v Excelu

Numerické řešení variačních úloh v Excelu Numerické řešení variačních úloh v Excelu Miroslav Hanzelka, Lenka Stará, Dominik Tělupil Gymnázium Česká Lípa, Gymnázium Jírovcova 8, Gymnázium Brno MirdaHanzelka@seznam.cz, lenka.stara1@seznam.cz, dtelupil@gmail.com

Více

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu Excel - pokračování Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu Př. Analýza prodeje CD základní jednoduché vzorce karta Domů Př. Skoky do dálky - funkce

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Zpracování obrazů. Honza Černocký, ÚPGM

Zpracování obrazů. Honza Černocký, ÚPGM Zpracování obrazů Honza Černocký, ÚPGM 1D signál 2 Obrázky 2D šedotónový obrázek (grayscale) Několikrát 2D barevné foto 3D lékařské zobrazování, vektorová grafika, point-clouds (hloubková mapa, Kinect)

Více

Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy

Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy Centrum Digitální Optiky Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy Výzkumná zpráva projektu Identifikační čí slo výstupu: TE01020229DV003 Pracovní balíček: Zpracování dat S-H senzoru

Více

Návod k použití softwaru Solar Viewer 3D

Návod k použití softwaru Solar Viewer 3D Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a

Více

Jeden z mírně náročnějších příkladů, zaměřený na úpravu formátu buňky a především na detailnější práci s grafem (a jeho modifikacemi).

Jeden z mírně náročnějších příkladů, zaměřený na úpravu formátu buňky a především na detailnější práci s grafem (a jeho modifikacemi). Příklad zahrnuje Textová editace buněk Základní vzorce Vložené kliparty Propojené listy Grafi cká úprava buněk Složitější vzorce Vložené externí obrázky Formuláře Úprava formátu Vysoce speciální funkce

Více

Úloha - rozpoznávání číslic

Úloha - rozpoznávání číslic Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání

Více

M E T O D Y R O Z P O Z NÁNÍ OB J E K T Ů V O B R A Z U

M E T O D Y R O Z P O Z NÁNÍ OB J E K T Ů V O B R A Z U M E T O D Y R O Z P O Z NÁNÍ OB J E K T Ů V O B R A Z U CÍLE LABORTATORNÍ ÚLOHY 1. Seznámení se s metodami rozpoznání objektů v obraze 2. Vyzkoušení detekce objektů na snímcích z kamery a MRI snímku ÚKOL

Více

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází Tiskové sestavy Tiskové sestavy se v aplikaci Access používají na finální tisk informací z databáze. Tisknout se dají všechny objekty, které jsme si vytvořili, ale tiskové sestavy slouží k tisku záznamů

Více

VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019

VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019 VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019 Bc. Michael Froněk Západočeská univerzita v Plzni Univerzitní 8, 306 14 Plzeň Česká republika ABSTRAKT Práce se zabývá řešením problému

Více

Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Semestrální projekt Vyhodnocení přesnosti sebelokalizace Vedoucí práce: Ing. Tomáš Jílek Vypracovali: Michaela Homzová,

Více

Seriál II.II Vektory. Výfučtení: Vektory

Seriál II.II Vektory. Výfučtení: Vektory Výfučtení: Vektory Abychom zcela vyjádřili veličiny jako hmotnost, teplo či náboj, stačí nám k tomu jediné číslo (s příslušnou jednotkou). Říkáme jim skalární veličiny. Běžně se však setkáváme i s veličinami,

Více

MATURITNÍ TÉMATA Z MATEMATIKY

MATURITNÍ TÉMATA Z MATEMATIKY MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické

Více

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 41 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán magický čtverec, pro nějž platí,

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

Téma 2: Pravděpodobnostní vyjádření náhodných veličin

Téma 2: Pravděpodobnostní vyjádření náhodných veličin 0.05 0.0 0.05 0.0 0.005 Nominální napětí v pásnici Std Mean 40 60 80 00 0 40 60 Std Téma : Pravděpodobnostní vyjádření náhodných veličin Přednáška z předmětu: Spolehlivost a bezpečnost staveb 4. ročník

Více

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT) MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT) 1. Číselné obory 1.1 Přirozená čísla provádět aritmetické operace s přirozenými čísly rozlišit prvočíslo

Více

4. Statika základní pojmy a základy rovnováhy sil

4. Statika základní pojmy a základy rovnováhy sil 4. Statika základní pojmy a základy rovnováhy sil Síla je veličina vektorová. Je určena působištěm, směrem, smyslem a velikostí. Působiště síly je bod, ve kterém se přenáší účinek síly na těleso. Směr

Více

algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V

algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V Hledání lokálního maxima funkce algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V Č R Abstrakt : Lokální maximum diferencovatelné funkce je hledáno postupnou změnou argumentu. V

Více

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a datových modelů Obsah Seznam tabulek... 1 Seznam obrázků... 1 1 Úvod... 2 2 Metody sémantické harmonizace... 2 3 Dvojjazyčné katalogy objektů

Více

Rozvoj tepla v betonových konstrukcích

Rozvoj tepla v betonových konstrukcích Úvod do problematiky K novinkám v požární odolnosti nosných konstrukcí Praha, 11. září 2012 Ing. Radek Štefan prof. Ing. Jaroslav Procházka, CSc. Znalost rozložení teploty v betonové konstrukci nebo její

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MECHANIKY TĚLES, MECHATRONIKY A BIOMECHANIKY Komentovaný metodický list č. 1/4 Vytvořil: Ing. Oldřich Ševeček & Ing. Tomáš Profant, Ph.D.

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2. Kapitola 2 Přímková a rovinná soustava sil 2.1 Přímková soustava sil Soustava sil ležící ve společném paprsku se nazývá přímková soustava sil [2]. Působiště všech sil m i lze posunout do společného bodu

Více

Funkce pro studijní obory

Funkce pro studijní obory Variace 1 Funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce Funkce je přiřazení,

Více

CVIČNÝ TEST 3. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 7 III. Klíč 17 IV. Záznamový list 19

CVIČNÝ TEST 3. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 7 III. Klíč 17 IV. Záznamový list 19 CVIČNÝ TEST 3 Mgr. Zdeňka Strnadová OBSAH I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Jsou dány intervaly A = ( ; 2), B = 1; 3, C = 0;

Více

František Hudek. červenec 2012

František Hudek. červenec 2012 VY_32_INOVACE_FH14 Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek červenec 2012 8.

Více

Výsledný graf ukazuje následující obrázek.

Výsledný graf ukazuje následující obrázek. Úvod do problematiky GRAFY - SPOJNICOVÝ GRAF A XY A. Spojnicový graf Spojnicový graf používáme především v případě, kdy chceme graficky znázornit trend některé veličiny ve zvoleném časovém intervalu. V

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

OHYB (Napjatost) M A M + qc a + b + c ) M A = 2M qc a + b + c )

OHYB (Napjatost) M A M + qc a + b + c ) M A = 2M qc a + b + c ) 3.3 Řešené příklady Příklad 1: Pro nosník na obrázku vyšetřete a zakreslete reakce, T (x) a M(x). Dále určete M max a proveďte dimenzování pro zadaný průřez. Dáno: a = 0.5 m, b = 0.3 m, c = 0.4 m, d =

Více

APLIKACE. Poznámky Otázky

APLIKACE. Poznámky Otázky APLIKACE Následující úlohy lze zhruba rozdělit na geometrické, algebraické a úlohy popisující různé stavy v některých oblastech jiných věd, např. fyziky nebo ekonomie. GEOMETRICKÉ ÚLOHY Mezi typické úlohy

Více

K OZA SE PASE NA POLOVINĚ ZAHRADY Zadání úlohy

K OZA SE PASE NA POLOVINĚ ZAHRADY Zadání úlohy Koza se pase na polovině zahrady, Jaroslav eichl, 011 K OZA E PAE NA POLOVINĚ ZAHADY Zadání úlohy Zahrada kruhového tvaru má poloměr r = 10 m. Do zahrady umístíme kozu, kterou přivážeme provazem ke kolíku

Více

Obsah. Funkce grafu Zdrojová data pro graf Typ grafu Formátování prvků grafu Doporučení pro tvorbu grafů Zdroje

Obsah. Funkce grafu Zdrojová data pro graf Typ grafu Formátování prvků grafu Doporučení pro tvorbu grafů Zdroje Grafy v MS Excel Obsah Funkce grafu Zdrojová data pro graf Typ grafu Formátování prvků grafu Doporučení pro tvorbu grafů Zdroje Funkce grafu Je nejčastěji vizualizací při zpracování dat z různých statistik

Více

Programátorská dokumentace

Programátorská dokumentace Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci

Více

Měření průtoku kapaliny s využitím digitální kamery

Měření průtoku kapaliny s využitím digitální kamery Měření průtoku kapaliny s využitím digitální kamery Mareš, J., Vacek, M. Koudela, D. Vysoká škola chemicko-technologická Praha, Ústav počítačové a řídicí techniky, Technická 5, 166 28, Praha 6 e-mail:

Více

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze Aproximace funkcí Numerické metody 6. května 2018 FJFI ČVUT v Praze 1 Úvod Dělení Interpolace 1D Více dimenzí Minimalizace Důvody 1 Dělení Dělení - Získané data zadané data 2 Dělení - Získané data Obecně

Více

BALISTICKÝ MĚŘICÍ SYSTÉM

BALISTICKÝ MĚŘICÍ SYSTÉM BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD

Více

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII V úvodu analytické geometrie jsme vysvětlili, že její hlavní snahou je popsat geometrické útvary (body, vektory, přímky, kružnice,...) pomocí čísel nebo proměnných.

Více

Sestavení pohybové rovnosti jednoduchého mechanismu pomocí Lagrangeových rovností druhého druhu

Sestavení pohybové rovnosti jednoduchého mechanismu pomocí Lagrangeových rovností druhého druhu Sestavení pohybové rovnosti jednoduchého mechanismu pomocí Lagrangeových rovností druhého druhu Václav Čibera 12. února 2009 1 Motivace Na obrázku 1 máme znázorněný mechanický systém, který může představovat

Více

STATISTICKÉ ODHADY Odhady populačních charakteristik

STATISTICKÉ ODHADY Odhady populačních charakteristik STATISTICKÉ ODHADY Odhady populačních charakteristik Jak stanovit charakteristiky rozložení sledované veličiny v základní populaci? Populaci většinou nemáme celou k dispozici, musíme se spokojit jen s

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka Příklady použití tenkých vrstev Jaromír Křepelka Příklad 01 Spočtěte odrazivost prostého rozhraní dvou izotropních homogenních materiálů s indexy lomu n 0 = 1 a n 1 = 1,52 v závislosti na úhlu dopadu pro

Více

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +, Příklad 1 Najděte body, v nichž má funkce (,) vázané extrémy, případně vázané lokální extrémy s podmínkou (,)=0, je-li: a) (,)= + 1, (,)=+ 1 lok.max.v 1 2,3 2 b) (,)=+, (,)= 1 +1 1 c) (,)=, (,)=+ 1 lok.max.v

Více

Prezentace dat. Grafy Aleš Drobník strana 1

Prezentace dat. Grafy Aleš Drobník strana 1 Prezentace dat. Grafy Aleš Drobník strana 1 8.3 GRAFY Užití: Grafy vkládáme do textu (slovního popisu) vždy, je-li to vhodné. Grafy zvýší přehlednost sdělovaných informací. Výhoda grafu vůči tabulce či

Více

Úpravy rastrového obrazu

Úpravy rastrového obrazu Přednáška 11 Úpravy rastrového obrazu Geometrické trasformace Pro geometrické transformace rastrového obrazu se používá mapování dopředné prochází se pixely původního rastru a určuje se barva a poloha

Více

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009.

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK PRAKTIKUM III Úloha č. XXVI Název: Vláknová optika Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009 Odevzdal dne: Možný počet bodů

Více

Co je nového 2018 R2

Co je nového 2018 R2 Co je nového 2018 R2 Obsah NOVINKY... 5 1: Vyhledat prvek... 5 2: Čáry modelu podle... 6 3: Duplikovat výkresy... 7 4: Délka kabelů... 8 5: Výškové kóty... 9 VYLEPŠENÍ... 10 1: Excel Link... 10 2: Uspořádání

Více

Využití tabulkového procesoru MS Excel

Využití tabulkového procesoru MS Excel Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...

Více

Globální matice konstrukce

Globální matice konstrukce Globální matice konstrukce Z matic tuhosti a hmotnosti jednotlivých prvků lze sestavit globální matici tuhosti a globální matici hmotnosti konstrukce, které se využijí v řešení základní rovnice MKP: [m]{

Více

Vliv realizace, vliv přesnosti centrace a určení výšky přístroje a cíle na přesnost určovaných veličin

Vliv realizace, vliv přesnosti centrace a určení výšky přístroje a cíle na přesnost určovaných veličin Vliv realizace, vliv přesnosti centrace a určení výšky přístroje a cíle na přesnost určovaných veličin doc. Ing. Martin Štroner, Ph.D. Fakulta stavební ČVUT v Praze 1 Úvod Při přesných inženýrsko geodetických

Více

Operace s obrazem I. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.

Operace s obrazem I. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č. Operace s obrazem I Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 Osnova 1 Filtrování obrazu 2 Lineární a nelineární filtry 3 Fourierova

Více

1 Základní funkce pro zpracování obrazových dat

1 Základní funkce pro zpracování obrazových dat 1 Základní funkce pro zpracování obrazových dat 1.1 Teoretický rozbor 1.1.1 Úvod do zpracování obrazu v MATLABu MATLAB je primárně určen pro zpracování a analýzu numerických dat. Pro analýzu obrazových

Více

Matematické modelování dopravního proudu

Matematické modelování dopravního proudu Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení

Více

Ctislav Fiala: Optimalizace a multikriteriální hodnocení funkční způsobilosti pozemních staveb

Ctislav Fiala: Optimalizace a multikriteriální hodnocení funkční způsobilosti pozemních staveb 16 Optimální hodnoty svázaných energií stropních konstrukcí (Graf. 6) zde je rozdíl materiálových konstant, tedy svázaných energií v 1 kg materiálu vložek nejmarkantnější, u polystyrénu je téměř 40krát

Více

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 36 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Určete iracionální číslo, které je vyjádřeno číselným výrazem (6 2 π 4

Více

Zatížení nohou. Pro: Plantograf Petr Novák

Zatížení nohou. Pro: Plantograf Petr Novák Zatížení nohou Pro: Plantograf 10.02.002.000 Petr Novák (novakpe@labe.felk.cvut.cz) Stručný popis: Možnost detekce zatížení částí chodidla nohou je vytvořeno pomocí několika ROI (region of interest). Vždy

Více

Matematická analýza III.

Matematická analýza III. 2. Parciální derivace Miroslav Hušek, Lucie Loukotová UJEP 2010 Parciální derivace jsou zobecněním derivace funkce jedné proměnné. V této kapitole poznáme jejich základní vlastnosti a využití. Co bychom

Více

5. Lokální, vázané a globální extrémy

5. Lokální, vázané a globální extrémy 5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,

Více

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem 7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela

Více

Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky

Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky 6. Vázané a absolutní extrémy. 01-a3b/6abs.tex Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky jednoduché, vyřešíme

Více

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ Parametrické vyjádření přímky v rovině Máme přímku p v rovině určenou body A, B. Sestrojíme vektor u = B A. Pro bod B tím pádem platí: B = A + u. Je zřejmé,

Více

2.5 Rovnováha rovinné soustavy sil

2.5 Rovnováha rovinné soustavy sil Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 2.5 Rovnováha rovinné soustavy sil Rovnováha sil je stav, kdy na těleso působí více sil, ale jejich výslednice

Více

Funkce a lineární funkce pro studijní obory

Funkce a lineární funkce pro studijní obory Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce

Více

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté polynomy pro případ dvou uzlových bodů ξ 1 = 1 a ξ 2 = 4. Experimentální body jsou x = [0.2 0.4 0.6 1.5 2.0 3.0

Více

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d. Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. 2. PŘEDNÁŠKA MATEMATICKÝ MODEL ÚLOHY LP Mgr. Sekničková Jana, Ph.D. 2 OSNOVA PŘEDNÁŠKY Obecná formulace MM Množina

Více

veličin, deskriptivní statistika Ing. Michael Rost, Ph.D.

veličin, deskriptivní statistika Ing. Michael Rost, Ph.D. Vybraná rozdělení spojitých náhodných veličin, deskriptivní statistika Ing. Michael Rost, Ph.D. Třídění Základním zpracováním dat je jejich třídění. Jde o uspořádání získaných dat, kde volba třídícího

Více

7. přednáška Systémová analýza a modelování. Přiřazovací problém

7. přednáška Systémová analýza a modelování. Přiřazovací problém Přiřazovací problém Přiřazovací problémy jsou podtřídou logistických úloh, kde lze obecně říci, že m dodavatelů zásobuje m spotřebitelů. Dalším specifikem je, že kapacity dodavatelů (ai) i požadavky spotřebitelů

Více

přesné jako tabulky, ale rychle a lépe mohou poskytnou názornou představu o důležitých tendencích a souvislostech.

přesné jako tabulky, ale rychle a lépe mohou poskytnou názornou představu o důležitých tendencích a souvislostech. 3 Grafické zpracování dat Grafické znázorňování je velmi účinný způsob, jak prezentovat statistické údaje. Grafy nejsou tak přesné jako tabulky, ale rychle a lépe mohou poskytnou názornou představu o důležitých

Více

Obsah. Několik slov o Excelu 2007 a 2010 9. Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1

Obsah. Několik slov o Excelu 2007 a 2010 9. Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1 Obsah Kapitola 1 Několik slov o Excelu 2007 a 2010 9 Nové uživatelské rozhraní 9 Pás karet 10 Panel nástrojů Rychlý přístup 11 Tlačítko Office 11 Pracovní plocha 12 Nápověda 13 Kapitola 2 Operace při otvírání

Více

pracovní list studenta

pracovní list studenta Výstup RVP: Klíčová slova: pracovní list studenta Funkce kvadratická funkce Mirek Kubera žák načrtne grafy požadovaných funkcí, formuluje a zdůvodňuje vlastnosti studovaných funkcí, modeluje závislosti

Více

Fraktální analýza prahovaných a neprahovaných signálů (View+HT) HT 1D

Fraktální analýza prahovaných a neprahovaných signálů (View+HT) HT 1D Fraktální analýza prahovaných a neprahovaných signálů (View+HT) HT 1D Petra Bursáková Fakulta chemická, Vysoké učení technické vbrně Purkyňova 118, 612 00 Brno e-mail:t HUxcbursakova@fch.vutbr.czUH Podstatou

Více

6 Samodružné body a směry afinity

6 Samodružné body a směry afinity 6 Samodružné body a směry afinity Samodružnými body a směry zobrazení rozumíme body a směry, které se v zobrazují samy na sebe. Například otočení R(S má jediný samodružný bod, střed S, anemá žádný samodružný

Více

Aplikovaná numerická matematika

Aplikovaná numerická matematika Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních

Více

Popis funkcí tlačítek jednotlivých modulů programu OGAMA

Popis funkcí tlačítek jednotlivých modulů programu OGAMA Nevázaná příloha bakalářské práce VYUŽITÍ OPEN-SOURCE NÁSTROJŮ PRO PŘÍPRAVU, PRŮBĚH A VYHODNOCENÍ EYE-TRACKING EXPERIMENTŮ Popis funkcí tlačítek jednotlivých modulů programu OGAMA Michal KUČERA, 2014 Replay

Více

Manuál k programu IDP 1.0

Manuál k programu IDP 1.0 Příloha B Manuál k programu IDP 1.0 Toto je manuál k programu IDP - Interakční diagram průřezu 1.0, který byl vytvořen v rámci této diplomové práce za podpory grantu Studentské grantové soutěže ČVUT v

Více

9 Prostorová grafika a modelování těles

9 Prostorová grafika a modelování těles 9 Prostorová grafika a modelování těles Studijní cíl Tento blok je věnován základům 3D grafiky. Jedná se především o vysvětlení principů vytváření modelů 3D objektů, jejich reprezentace v paměti počítače.

Více

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice I. Funkce dvou a více reálných proměnných 1. Úvod Značení: V textu budeme používat označení: N pro množinu všech přirozených čísel; R pro množinu všech reálných čísel; R n pro množinu všech uspořádaných

Více

Úvod do zpracování signálů

Úvod do zpracování signálů 1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování

Více

Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků

Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků Maturitní zkouška z matematiky 2012 požadované znalosti Zkouška z matematiky ověřuje matematické základy formou didaktického testu. Test obsahuje uzavřené i otevřené úlohy. V uzavřených úlohách je vždy

Více

OBRAZOVÁ ANALÝZA. Speciální technika a měření v oděvní výrobě

OBRAZOVÁ ANALÝZA. Speciální technika a měření v oděvní výrobě OBRAZOVÁ ANALÝZA Speciální technika a měření v oděvní výrobě Prostředky pro snímání obrazu Speciální technika a měření v oděvní výrobě 2 Princip zpracování obrazu matice polovodičových součástek, buňky

Více

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Automatická detekce anomálií při geofyzikálním průzkumu Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Cíle doktorandské práce Seminář 10. 11. 2010 Najít, implementovat, ověřit a do praxe

Více