IMPLEMENTACE ALGORITMU PRO ROZPOZNÁVÁNÍ SÍTNICE OKA IMPLEMENTATION OF ALGORITHM FOR RECOGNITION OF EYE RETINA
|
|
- Blanka Blažková
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS IMPLEMENTACE ALGORITMU PRO ROZPOZNÁVÁNÍ SÍTNICE OKA IMPLEMENTATION OF ALGORITHM FOR RECOGNITION OF EYE RETINA BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR JAN ONDROUŠEK Ing. JOSEF HÁJEK BRNO 2012
2 Abstrakt Cévní řečiště oční sítnice je velmi významným prvkem v lékařství pro diagnózu očních a kardiovaskulárních chorob. Proto je také kladen velký důraz na význam jeho automatické segmentace. V této práci je po krátkém úvodu, který se věnuje významu oční sítnice, představena implementace metody podle diplomové práce Ing. Jana Odstrčilíka - Analýza barevných snímků sítnice se zaměřením na segmentaci cévního řečiště vytvořené pod záštitou Ústavu biomedicínského inženýrství Fakulty elektrotechniky a komunikačních technologií Vysokého učení technického v Brně v roce Metoda je založena na filtraci vstupního snímku vhodně navrženými filtračními maskami, následované prahováním vhodně spočtenou hodnotou a očištěním výsledného obrazu od artefaktů. Algoritmus byl napsán v jazyce C++. Všechny důležité funkce byly implementovány přesně pro účely dané metody s ohledem na rychlost a přesnost. Hlavní úseky zdrojového kódu společně s popisem uživatelského rozhraní programu jsou dále představeny v této práci. V závěru byla implementace podrobena testování na reálných snímcích z databází ÚBMI a DRIVE, výsledky jsou zaznamenány, vyhodnoceny a jsou diskutovány možnosti dalšího rozšíření a úprav metody i implementace. Abstract Vessel structure is a very important element in medical sience for diagnosis of eye and cardiovascular diseases. Therefore, its automatic segmentation is very important too. In introduction there is a short description of eye retina. After that, method of implementation is presented according to Ing. Jan Odstrčilík s thesis - Analyze of colour retinal images aimed to segmentation of vessel structures created under the auspices of Brno University of Technology - Faculty of Electrical Engineering and Communication, Department of Biomedical Engineering in This method is based on filtering input image with properly designed filtering masks, followed by thresholding with properly calculated value and finally cleaning result image from artefacts. Algorithm was written in C++ language. All important functions were implemented for purpose of given method with consideration on speed and accuray. Main sections of source code with description of user interface are introduced next in this thesis. At the end, the implementation was tested on real images from ÚBMI and DRIVE databases, results were recorded, expansions and adjustments possibilities of implementation were debated. Klíčová slova sítnice, oko, segmentace, cévní řečiště, filtrace, prahování Keywords retina, eye, segmentation, vessel structure, filtering, thresholding Citace Jan Ondroušek: Implementace algoritmu pro rozpoznávání sítnice oka, bakalářská práce, Brno, FIT VUT v Brně, 2012
3 Implementace algoritmu pro rozpoznávání sítnice oka Prohlášení Prohlašuji, že jsem tuto bakalářskou práci na téma Implementace algoritmu pro rozpoznávání sítnice oka vypracoval samostatně pod vedením pana Ing. Josefa Hájka. K vypracování jsem použil odbornou literaturu a další zdroje relevantních informací. Všechny zdroje použité v této bakalářské práci jsou řádně citovány v seznamu použité literatury na konci dokumentu Jan Ondroušek 13. května 2012 Poděkování Děkuji Ing. Josefu Hájkovi, vedoucímu mé bakalářské práce, za odbornou a pedagogickou pomoc a další užitečné rady při vypracování mé práce. c Jan Ondroušek, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
4 Obsah 1 Úvod 4 2 Sítnice oka Buňky v sítnici Části sítnice Oční choroby 8 4 Biometrické využití sítnice Zisk obrazu sítnice Historie Snímání Zpracování snímku Chybovost, přesnost metody Vztah mezi FRR a FAR Výhody a nevýhody snímání sítnice Snímací zařízení Obrazová data Vstupní snímky Databáze ÚBMI Databáze DRIVE Použitá metoda segmentace Cévní profily Profily cév snímků z databáze ÚBMI Profily cév snímků z databáze DRIVE Filtrace Návrh vhodného filtru Filtrační masky pro snímky z databáze ÚBMI Filtrační masky pro snímky z databáze DRIVE Úprava filtračních masek Filtrace Prahování Co-occurrence matice Volba vhodného prahu Prahování Čištění artefaktů
5 6.4.1 Odstranění okraje FOV Odstranění artefaktů Implementace algoritmu Základní hierarchie Třídy Datové struktury Proces segmentace Automatická volba parametrů segmentace Hromadná segmentace Srovnání snímků Koeficient shody snímků Významné části zdrojového kódu Procentuální shoda, koeficient shodnosti Gaussova křivka Výpočet entropie a prahu Co-occurrence matice Čištění artefaktů Automatické nastavení parametrů segmentace Rotace filtračních masek Filtrace Popis programu Hlavní okno programu Hromadné zpracování Srovnání snímků Ostatní součásti Výsledky a zhodnocení metody Rychlost procesu segmentace Databáze ÚBMI Databáze DRIVE Diskuze Závěr 47 A Obsah CD 51 2
6 Seznam obrázků 2.1 Řez okem [1] Řez sítnicí [15] Významné části sítnice Oční choroby [14] Graf znázorňující hodnotu koeficientů FAR a FRR. [14] Fundus kamera Canon CR Ukázka snímků z databáze ÚBMI [4] Ukázka snímku z databáze DRIVE [3] Jednotlivé barevné složky vstupního RGB obrazu Ukázka typů cév v sítnici na snímcích z databáze ÚBMI Jasové profily vybraných úseků cév z databáze ÚBMI [13] Průměrné jasové profily snímků databáze ÚBMI [13] Jasové profily vybraných úseků cév z databáze DRIVE [13] Průměrné jasové profily snímků databáze DRIVE [13] Řezy navrženými 2D filtračními maskami [13] Ukázka filtračních masek pro široké cévy pro úhly v krocích po Parametrické obrazy tenkých cév pro některé směry natočení filtračních masek Parametrické obrazy středních cév pro některé směry natočení filtračních masek Parametrické obrazy širokých cév pro některé směry natočení filtračních masek Rozdělení co-occurrence matice na kvadranty [13] Parametrické obrazy a příslušné výsledky prahování Celkový binární obraz vzniklý spojením dílčích obrazů z obr Binární obraz po fázích čištění Třídy a datové struktury Hlavní okno programu Hromadné zpracování Srovnání snímků Nastavení parametrů segmentace Výsledky ÚBMI. První snímek zleva je vstupní [4], uprostřed výsledek implementace podle [13], vpravo výsledek programu popsaného v této práci Výsledky DRIVE. První snímek zleva je vstupní [3], uprostřed výsledek manuální segmentace [3], vpravo výsledek programu popsaného v této práci
7 Kapitola 1 Úvod Oční sítnice je velmi významným prostředkem k diagnostice zdravotního stavu člověka. Je jediným místem v lidském těle, kde lze bez operativních zásahů pozorovat cevní systém, samozřejmostí je také diagnostika očních chorob. Proto je analýza snímků sítnice považována za užitečný a často používaný nástroj v lékařství. Existuje celá řada metod vedoucí k segmentaci jednotlivých částí snímků oční sítnice, např. optického disku, žluté skvrny, nervových vláken apod. Tato práce se zabývá segmentací řečiště cév podle [13]. Jako testovací vstupní data byly použity snímky z databází ÚBMI a DRIVE (kapitola 5). Metoda, podrobně popsaná v kapitole 6, je založená na filtraci vhodně navrženými filtračními maskami pro cévy tenké, střední a široké. Postupně provádíme konvoluci filtračních masek se vstupním obrazem a to v celkem 12 směrech v krocích po 15. Výsledkem této filtrace jsou parametrické obrazy, které jsou dále po vyhledání vhodného prahu prahovány za účelem vytvoření binarního obrazu reprezentujícího cévní řečiště. Z výsledného binárního obrazu je odstraněn kruhový okraj snímku, který vznikl chybnou detekcí zorného pole fundus kamery a smazány ostatní artefakty způsobené opět falešnou detekcí, nejčastěji nervových vláken a šumu v obraze. Výsledkem práce je program s intuitivním uživatelským rozhraním popsaným v kapitole 8. Tento program byl implementován (kapitola 7) podle metody popsané v [13] s použitím programovacího jazyka C++, některých tříd Qt Frameworku a vývojového prostředí Qt Creator Výsledný program je spustitelný *.exe soubor na platformě Windows R. Hlavní okno programu je z důvodu přehlednosti složeno z více záložek. Každá záložka zobrazuje jiné výsledky a to jednotlivé barevné složky snímku, parametrické obrazy nebo konečný výsledek segmentace. Součástí je také dialogové okno Nastavení parametrů segmentace, kde máme možnost navolit parametry segmentace, případně zvolit výběr parametrů automaticky. V tom případě program sám na základě parametrů vstupního snímku spočte vhodná nastavení. Program dále obsahuje modul pro hromadné zpracování více snímků najednou s jejich uložením do požadovaného adresáře a modul určený ke srovnání dvou snímků a vyhodnocení, zda lze snímky považovat za shodné nebo ne. V závěru práce se zabýváme zhodnocením výsledků a jejich srovnáním se snímky referenčními, tj. výsledky programu popsaného v [13] a manuálně, zkušenými lékaři vytvořenými binárními reprezentacemi cévního řečiště (kapitola 9). Také diskutujeme případná vylepšení implementace algoritmu. 4
8 Kapitola 2 Sítnice oka Sítnice (lat. retina) je tenká vrstva nacházející se na vnitřní straně zadní částí oční bulvy. Jednou z nejdůležitějších částí sítnice jsou světločivné buňky, tyčinky a čípky. Jedná se o buňky reagující na světlo v námi viditelném barevném spektru (vlnové délky nm),. Tyčinky nám umožňují černobílé vidění za zhoršených světelných podmínek. Čípky naopak slouží k vytváření kvalitního a barevného obrazu za dobrých světelných podmínek. Tyto buňky po dopadu světla vytvářejí vzruchy, které jsou nervovými vlákny vedeny dále do mozku, který vzruchy zpracuje v informace a vytvoří z nich obraz skutečnosti. Ve zdravém oku člověka se nachází přibližně 7 milionů čípků a 100 milionů tyčinek [10]. Obrázek 2.1: Řez okem [1]. 2.1 Buňky v sítnici Přirozeně se v sítnici nacházejí i další typy neméně důležitých podpůrných buněk [10] (viz obr. 2.2): Gangliové - nervové buňky sloužící ke sběru informací ze sítnice a jejich dalšímu předání do mozky, neboť shluk jejich axonů vytváří zrakový nerv. Pigmentové - tyto buňky slouží k zabránění odrazu světla od sítnice. 5
9 Bipolární, horizontální, amakrinní - k propojení jednotlivých typů buněk v sítnici. Müllerovy - chrání sítnici, zbavují ji odumřelých buněk. Obrázek 2.2: Řez sítnicí [15]. Buňky uvnitř sítnice je nutné vyživovat, tedy zásobovat krví. To je umožněno tepnami a žílami, které jsou umístěny v tzv. choroidu - tenké vrstvě za sítnicí. Označení biometrické metody snímání oční sítnice není tedy úplně přesné, neboť výsledkem snímání je obraz choroidu a jeho cév - cévního řečiště. Toto označení je ovšem natolik zažité a známé, že jej budu nadále používat. 2.2 Části sítnice Na oční sítnici rozlišujeme z anatomického hlediska několik významných míst a útvarů [10] (viz obr. 2.3): Žlutá skvrna - místo s nejostřejším viděním. V tomto místě obsahuje sítnice nejvyšší koncentraci čípků (tyčinky se zde nenachází). Při zaostření oka na předmět dopadá jeho obraz právě na tuto část sítnice. Její plocha je přibližně 5mm 2. Paradoxně se na barevných snímcích sítnice jeví žlutá skvrna jako velmi sytě červená, až tmavě šedá. Optický disk - někdy také nazýván slepá skvrna. Je to místo, kudy vystupují nervy ven z oční bulvy, nejsou zde tedy čípky ani tyčinky. Velikost je přibližně 3mm 2, lidský mozek kompenzuje tuto chybějící část obrazu pomocí informace z okolí optického disku a také obrazem z oka druhého. Na snímcích sítnice je většinou zobrazen světlejší barvou - žlutou až bílou. 6
10 Cévní řečiště - soubor všech žil a tepen za oční sítnicí. Právě cévního řečistě je využíváno v biometrii k segmentaci a následné analýze. Obrázek 2.3: Významné části sítnice. 7
11 Kapitola 3 Oční choroby Obraz oční sítnice je velmi významný zdroj informací o člověku. Je to jediné místo v lidském těle, kde lze neinvazivním způsobem pozorovat cévní systém. Díky tomu může pohledem do lidského oka odhalit nejen choroby očního charakteru, ale také poruchy cévního systému [14]. Nejznámějšími vadami spojenými se sítnicí jsou vady refrakční, se kterými se setkáváme každodenně a prostředky k jejich potlačení, ať už velmi často používané brýle nebo kontaktní čočky, mohou způsobit nepřesnosti při identifikaci osob. Nemoci zasahující přímo sítnici bývají většinou velmi vážné a často vedou ke slepotě jedince, například: Diabetická retinopatie - vyskytuje se u lidí s cukrovkou. Zvýšená glykémie poškozuje stěny cév, dochází k nedostatečnému prokrvení sítnice a odlivu odpadních látek a tím přirozeně buňky sítnice pomalu odumírají. Makulární degenerace - toto onemocnění se vyskytuje u osob vyššího věku. Zasahuje makulu, neboli žlutou skvrnu. Projevuje se degenerací buněk v místech nejostřejšího vidění. Jedinec tedy nemá problémy s periferním viděním, nicméně v přímém směru má v zorném poli šedou až černou, postupně se zvětšující skvrnu. Amoce sítnice - dochází k odchlípnutí smyslových buněk od pigmentového epitelu, lze léčit, jinak končí slepotou. Rozštěp sítnice a řada dalších. (a) diabetická retinopatie (b) makulární degenerace (c) pohled člověka s makulární degenerací Obrázek 3.1: Oční choroby [14]. 8
12 Kapitola 4 Biometrické využití sítnice K identifikaci biometrickou metodou rozpoznávání osob podle sítnice oka využíváme jedinečnosti počtu, tloušťky a umístění cév v choroidu každého jedince. Na skutečnost, že každý člověk má jedinečný obraz sítnice, přišli již v roce 1935 dva oční lékaři Carleton Simon a Isidore Goldstein. Tito muži později publikovali studii ukazující použití sítnice oka pro identifikaci osob právě na základě vzoru cév. V 50. letech 20. století dokázal navíc Paul Torer jedinečnost obrazu sítnice i mezi jednovaječnými dvojčaty. A nešlo pouze o malé rozdíly, jak by se dalo očekávat, nýbrž o dva značně odlišné obrazy. Tyto objevy nastartovaly zájem o tuto biometrickou metodu i o její komerční využití [14]. 4.1 Zisk obrazu sítnice Historie V roce 1976 založil Robert Hill firmu EyeDentify, která se zabývala výzkumem a vývojem zařízení pro snímání očního pozadí. Zpočátku bylo pro osvětlení očního pozadí používáno běžné viditelné světlo. Ovšem pro dostatečné osvětlení bylo nutné světlo takové intenzity, že se vyšetřovaným jevilo nepříjemné. Lasery se také neuchytily z důvodu obav veřejnosti v tyto systémy a jejich vedlejší učinky. Jako ideální varianta se tedy jevilo použití infračervených paprsků. Tato metoda se používá dodnes v moderních zařízeních. V roce 1981 byl zkonstruován první prototyp zařízení pro identifikaci osob pomocí oční sítnice. Dnes se touto problematikou zabývá řada firem a také řada vládních organizací po celém světě. Jedná se totiž o velmi spolehlivou a těžce oklamatelnou biometrickou metodu identifikace osob. Pro ještě vyšší bezpečnost systémů se často vužívá v kombinaci s jinými biometrickými metodami. Například identifikace jedince pomocí jeho oční duhovky a sítnice zároveň [14] Snímání Samotný proces snímání je pro uživatele poměrně nepohodlný. To je asi hlavní nevýhodou této biometrické metody a jakási brzda jejího většího rozmachu. Od uživatele se vyžaduje, aby se po dobu několika sekund plně soustředil. Je totiž nutné, aby se při snímání nehýbal, měl široce otevřené snímané oko a zaostřeno na určitý bod. Snímání se provádí ze vzdálenosti přibližně 2cm a u většiny přístrojů je nutné další osoby, jako obsluhy zařízení. 9
13 4.1.3 Zpracování snímku Nutným předpokladem je, aby se zařízení pro snímání dokázalo vypořádat s různou pozicí oka. Nikdy se totiž uživateli nepodaří dát oko vůči zařízení do stejné pozice - různé vzdálenosti od snímací čočky, různé natočení hlavy a oka. Toto je korigováno pomocí rotačního algoritmu, jehož podstatou je posunutí získaných dat o určité úhly a výběr varianty s nejlepší shodou. Stupěň shody může nabývat hodnot -1 (absolutní neshoda) až +1 (perfektní shoda). V praxi ovšem hodnoty +1 dosáhnout nelze, a proto se za shodu považuje většinou hodnoty stupně shody nad 0,7. Tím se dostáváme k určení přesnosti a chybovosti této biometrické metody Chybovost, přesnost metody FRR (False rejection rate) [14] - pravděpodobnost chybného odmítnutí. Tato veličina nám udává pravděpodobnost, s jakou bude oprávněný uživatel odmítnut. Z bezpečnostího hlediska se nejedná o kritický jev, neboť tato vada neumožní vstup neoprávněným osobám. Z hlediska uživatelské přívětivost je ovšem nežádoucí. Je-li zařízení příliš náročné, ztrácí v uživatelích důvěru a sympatie. FAR (False Acceptance Rate) [14] - pravděpodobnost chybného přijetí. Veličina udává pravděpodobnost, s jakou bude neoprávněný uživatel vpuštěn do systému. Z hlediska bezpečnosti je žádoucí, aby tato veličina nabývala co nejmenších hodnot Vztah mezi FRR a FAR V praxi není možné vytvořit ideální systém, který by měl koeficienty FRR a FAR nulových hodnot, byl tedy stoprocentně schopný rozlišit osoby oprávněné od osob neoprávněných. Vždy hledáme jistý kompromis. Nejčastěji je od systému požadována buď vysoká bezpečnost nebo uživatelská přívětivost. V prvním případě máme při tvorbě zařízení snahu dosáhnout hodnoty FAR blízké nule i na úkor hodnoty FRR, tedy uživatelské přívětivosti. V druhém případě, v systémech, kde není kladen takový důraz na bezpečnost, ale většinou do systému vstupuje větší množství uživatelů, je situace opačná. (a) ideální zařízení (b) reálné zařízení Obrázek 4.1: Graf znázorňující hodnotu koeficientů FAR a FRR. [14] 10
14 4.1.6 Výhody a nevýhody snímání sítnice Jak již bylo uvedeno, jedná se o velmi přesnou biometrickou metodu. Přesné koeficienty FRR a FAR vždy závisí od daného zařízení a od jeho nastavení. Například zařízení od firmy Eye- Dentify má při prahové hodnotě 0,7 pravděpodobnost nesprávného přijetí 1: [14]. Obelstít toto zařízení falešným okem také není nijak triviální. Vyrobit tak kvalitní kopii lidského oka, aby jej zařízení přijalo, je prakticky nemožné. Nevýhod je celá řada. Jak jsem již výše uvedl, je to nepříliš dobrá uživatelská přívětivost. Problémy ovlivňující spolehlivost zařízení mohou být prostředky pro korekci refrakčních vad oka. Sítnici oka nelze snímat uživatelům s nasazenými brýlemi. Také kontaktní čočky mohou způsobit problémy a to především v případě, kdy je čočka vůči oku mírně posunutá a její hrana přechází přes zornici. Mezi uživateli je také rozšířen strach o zrak z těchto zařízení. V neposlední řadě je nevýhodou také vysoká cena zařízení. 4.2 Snímací zařízení V současnosti se pro snímání lidské sítnice nejčastěji využívají digitální fundus kamery. Jedná se o speciální zařízení pro vyšetření oka. Součástí kamery je zdroj světla, který slouží k osvícení sítnice, dále systém čoček tvořící objektiv kamery, digitální CCD snímač a povětšinou displej s ovládacím panelem pro obsluhu [11]. Tyto kamery jsou již schopné samostatně nalézt střed sítnice a pomocí frekvenční analýzy provést automatické ostření. Těchto snímků se také využívá k diagnostice různých onemocnění očního či cévního charakteru. Laboratoř STRaDe 1 je vybavena digitální Non-mydriatickou fundus kamerou Canon CR-1. Opět se jedná o moderní a velmi drahé zařízení, které je možno ovládat joystickem a veškeré kroky lze sledovat na vestavěném displeji. Kamera umožňuje snímat různé typy obrázků (barevné, infračervené a fluorescenční) v rozlišení daném použitým fotoaparátem. Také umožňuje kompenzovat pacientovi refrakční vady. Obrázek 4.2: Fundus kamera Canon CR-1. 1 Security Technology and Development. Výzkumná skupina Ústavu inteligentních systému Fakulty informačních technologií VUT v Brně zabývající se výzkumem a vývojem v oblasti bezpečnostních technologií. 11
15 Kapitola 5 Obrazová data 5.1 Vstupní snímky Vstupními daty programu jsou data obrazového charakteru. Program akceptuje snímky sítnice ve formátech PNG a JPEG. Minimální velikost snímku je nastavena na pixelů, výchozí hodnoty horní hranice jsou pro segmentaci jednotlivých snímků pixelů, pro segmentaci hromadnou pixelů. Tyto hranice jsou nastaveny z důvodu rychlosti provádění segmentace a je možné je v nastavení parametrů segmentace měnit. Modul pro porovnání dvou snímků akceptuje snímky ve formátech PNG, JPEG, GIF a BMP. Velikost snímku není omezena, jedinou podmínkou jsou shodné rozměry obou srovnávaných snímků. Snímky použité pro testování programu pocházejí z databází ÚBMI (kapitola 5.2) a DRIVE (kapitola 5.3). Tyto snímky se shodně vyznačují vysokou kvalitou. Ze snímků jsou tedy jasně patrné jednotlivé části oční sítnice a to žlutá skvrna, optický disk se slepou skvrnou a v jeho okolí svazky nervových vláken (viz obr. 2.3). Nejvýraznějším prvkem je ovšem cévní řečiště, oblast zájmu této práce. Dále je na snímku patrné kruhové ohraničení, které je způsobeno hranicí zorného pole fundus kamery, která je v průběhu segmentace chybně detekována jako céva, tudíž je nutné ji v závěrečné etapě zpracování odstranit. 5.2 Databáze ÚBMI Snímky z databáze ÚBMI FEKT (Ústav biomedicínského inženýrství Fakulty elektrotechniky a komunikačních technologií) pocházejí z oftalmologické ordinace MUDr. Tomáše Kuběny ve Zlíně. Tyto snímky se vyznačují vysokým rozlišení pixelů a z toho vyplývající vysoké míře detailů. Nevýhodou je dlouhá doba procesu segmentace, a proto jsou tyto snímky ve výchozím nastavení zmenšeny na polovinu, tj pixelů. Snímky byly podle [13] pořízeny digitální fundus kamerou CANON CF-60 UVi s vestavěným digitálním fotoaparátem CANON EOS-20D. Velikost zorného pole F OV = Databáze DRIVE Databáze DRIVE (Digital Retina Images for Vessel Extraction) je standardizovaná databáze vytvořená zkušenými lékaři. Databáze obsahuje celkem 40 snímků ve formátu JPEG, 12
16 (a) (b) Obrázek 5.1: Ukázka snímků z databáze ÚBMI [4]. z toho je 7 snímků pořízeno od pacientů s diabetickou retinopatií. Snímky databáze DRIVE byly pořízeny digitální fundus kamerou Canon CR5 s velikostí zorného pole F OV = 45 [3]. Snímky jsou menšího rozlišení, konkrétně pixelů i přesto však vykazují dostatečné detaily pro vytvoření kvalitní binární reprezentace cévního řečiště. Výhodou této databáze je pro každý snímek manuálně vytvořený binární obraz cévního řečiště zkušenými oftalmology. Tyto binární obrazy bereme jako standardy a výsledky vytvořeného programu v této práci srovnáváme právě s těmito manuálně vytvořenými obrazy. 20 snímkům databáze označeným jako test přísluší vždy dva manuálně vytvořené obrazy, zbylým 20 označeným jako training je přiřazeno po jednom manuálně vytvořeném obrazu. (a) originální snímek (b) manuálně vytvořený obraz č.1 (c) manuálně vytvořený obraz č.2 Obrázek 5.2: Ukázka snímku z databáze DRIVE [3]. 13
17 Kapitola 6 Použitá metoda segmentace Základem použitého algoritmu segmentace je metoda popsaná v práci [13]. V podstatě jde o práci s obrazem a jeho zpracování. Vstupní data, tj. snímky sítnice popsané v kapitole 5.1 jsou postupně pixel po pixelu konvoluována s navrženými filtračními maskami podle profilů jednotlivých typů cév (kapitola 6.1). Filtrační masky jsou rozděleny na tři typy podle šířky cévy a to pro cévy tenké, středně široké a široké. Každá maska je s obrazem konvoluována ve 12 směrech, vždy s natočením o 15 vůči masce předchozí. Analýzou bylo zjištěno, že jako vstup pro samotnou filtraci je vhodné nepoužívat celý RGB snímek, nýbrž pouze jeho zelenou (G) složku. G-složka obrazu totiž obsahuje zdaleka nejvyšší množství informace o prostorovém rozmístění cévního řečiště v oční sítnici, což je také jasně patrné z obr (a) červená (R) složka (b) zelená (G) složka (c) modrá (B) složka Obrázek 6.1: Jednotlivé barevné složky vstupního RGB obrazu. Filtrací vznikají až tři parametrické obrazy (pro cévy tenké, střední a široké). Tyto obrazy jsou dále prahovány. K nalezení vhodného prahu je využito lokální entropie, která je spočtena z tzv. co-occurrence matice (kapitola 6.3). V další fázi vzniká hrubá binární reprezentace cévního řečiště, kde cévy jsou zastoupeny hodnotou logické 1 a pozadí hodnotou 0. Při filtraci vznikají v obraze jisté artefakty způsobené převážně šumem v obraze, případně okrajem zorného pole fundus kamery. Tyto artefakty jsou způsobem popsaným v kapitole 6.4 odstraněny. 6.1 Cévní profily Protože jsou cévy v oční sítnici nestejné šířky a postupně se směrem od optického disku zužují, není možné je všechny filtrovat jednou maskou. Po důkladné analýze profilů cév bylo 14
18 stanoveno použití rozdělení na cévy tenké, středně široké a široké v případě snímků z databáze ÚBMI. V případě databáze DRIVE je z důvodu menšího rozlišení snímků dostatečné dělení na cévy tenké a střední. Po této analýze bylo zjištěno, že jasový profil typické cévy lze aproximovat Gaussovou křivkou a to vztahem 6.3. Výjimku tvoří cévy široké u snímků z databáze ÚBMI a to z důvodu patrného tzv. centrálního reflexu 1. Jasový profil cév je tedy vhodné aproximovat složenou Gaussovou křivkou podle 6.4. (a) cévy se zobrazením jejich šířky (b) centrální reflex Obrázek 6.2: Ukázka typů cév v sítnici na snímcích z databáze ÚBMI Profily cév snímků z databáze ÚBMI Snímky z databáze ÚBMI vykazují šířku v rozmezí 5-22 pixelů. Na obrázku 6.3 je uvedeno několik jasových profilů cév různých šířek a níže na obrázku 6.4 průměrné naměřené hodnoty jasových profilů pro jednotlivé typy cév. Průměrné jasové profily vznikly podle [13] z hodnot naměřených u 50 různých cév. U jasových profilů širokých cév je patrný vliv centrálního reflexu Profily cév snímků z databáze DRIVE Šířka cév na snímcích z databáze DRIVE se pohybuje v rozmezí 2-7 pixelů. Tyto nižší hodnoty jsou způsobené menším rozlišením snímků. Konkrétně pixelů oproti pixelům snímků z databáze ÚBMI. Díky menší velikosti snímků není na jasových profilech téměř vůbec patrný vliv centrálního reflexu. Při vytváření masek pro filtraci můžeme tedy zanedbat profil typický pro široké cévy s centrálním reflexem a uvažovat pouze přítomnost cév vyhovujících profilu cév středních a tenkých. Jasové profily vybraných cév jsou znázorněny na obr. 6.5 a z nich vytvořené průměrné jasové profily na obr Projevuje se jako světlý pruh vedoucí středem cévy. 15
19 (a) (b) (c) Obrázek 6.3: Jasové profily vybraných úseků cév z databáze ÚBMI [13]. (a) tenké cévy (b) středně široké cévy (c) široké cévy Obrázek 6.4: Průměrné jasové profily snímků databáze ÚBMI [13]. 16
20 (a) (b) (c) Obrázek 6.5: Jasové profily vybraných úseků cév z databáze DRIVE [13]. (a) tenké cévy (b) středně široké cévy (c) široké cévy Obrázek 6.6: Průměrné jasové profily snímků databáze DRIVE [13]. 17
21 6.2 Filtrace Filtrace ve 2D prostoru můžeme podle [9] definovat jako 2D konvoluci vstupního obrazu f(x, y) s filtrační maskou h(x, y): g(x, y) = f(x, y) h(x, y). (6.1) Podle [9] lze také v diskrétní oblasti vyjádřit filtraci jako konvoluci vstupní obrazové matice f(i, k) s maskou h(i, k) vztahem: g(i, k) = f h (i, k) = h f (i, k) = m= n= f(i m, k n)h(m, n). (6.2) Programově je filtrace řešena průchodem vstupním snímkem bod po bodu a přikládáním čtvercové filtrační masky o rozměrech M M vždy k tomuto bodu. Výstupní obraz je pak tvořen lineární kombinací hodnot masky a příslušných obrazových bodů. Filtrace má poté nejvyšší odezvu v místě, kde se bude maska a část obrazu pod maskou nejvíce shodovat Návrh vhodného filtru V předchozí kapitole 6.1 bylo definováno rozdělení na cévy tenké, střední a široké. Profily tenkých a střední cév nejvíce aproximují jednoduché Gaussově křivce, kterou jako v [6] spočteme vztahem: ( x 2 h(x) = e 2σ ), 2 (6.3) kde x je vektor s požadovaným počtem hodnot, pro které dostaneme výsledný vektor h, který obsahuje hodnoty impulsní charakteristiky požadovaného filtru. Hodnota σ definuje poloviční šířku Gaussovy křivky v polovině její výšky. Tato hodnota byla pro jednotlivé typy cév odvozena z průměrných jasových profilů uvedených v kapitole 6.1. Hodnoty a výsledné filtrační masky pro snímky z databáze ÚBMI a DRIVE jsou uvedeny dále v kapitolách a Pro cévy široké je nutné uvažovat také vliv centrálního reflexu. Vhodnou aproximací je podle [12] složená Gaussova křivka definovaná vztahem: h(x) = A 1 e ( x 2 2σ 2 1 ) A 2 e ( x 2 2σ 2 2 ), (6.4) kde parametr x a h představují stejné vektory jako v případě vztahu 6.3. Parametr σ 1 představuje poloviční velikost šířky Gaussovy křivky v polovině její výšky, A 1 definuje výšku profilu cévy, σ 2 je hodnota poloviční velikosti šířky vnitřní Gaussovy křivky v polovině její výšky. Tato vnitřní Gaussova křivka zastupuje profil centrálního reflexu. A konečně A 2 představuje výšku profilu centrálního reflexu. Hodnoty parametrů a výsledné filtrační masky jsou opět uvedeny v následující kapitole Filtrační masky pro snímky z databáze ÚBMI Na základě faktů uvedených v kapitole 6.1 a výše uvedených vztahů 6.3 a 6.4 byly podle [13] zvoleny průměrné vhodné parametry pro jednotlivé typy cév a vytvořeny odpovídající dvourozměrné filtrační masky (obr. 6.7). 18
22 Parametry pro cévy: tenké: velikost masky 25 25px, σ = 1, 5px střední: velikost masky 25 25px, σ = 4px široké: : velikost masky 29 29px, σ 1 = 6px, σ 2 = 1, 5px, A 1 = 3, A 2 = Filtrační masky pro snímky z databáze DRIVE Pro snímky z databáze DRIVE byly zvoleny následující parametry a filtrační masky (obr. 6.7) pro cévy: tenké: velikost masky 13 13px, σ = 1px střední: velikost masky 13 13px, σ = 2, 8px (a) tenké cévy ÚBMI (b) středně široké cévy ÚBMI (c) široké cévy ÚBMI (d) tenké cévy DRIVE (e) středně široké cévy DRIVE Obrázek 6.7: Řezy navrženými 2D filtračními maskami [13] Úprava filtračních masek Výše uvedené filtrační masky počítají také s eliminací vlivu okolí masky na výsledek filtrace a to hlavně při rotaci masek. Bez této vlastnosti by se při rotaci a zachování velikosti masky ztrácely hodnoty v rozích masky. Zabránění tomuto chování je zajištěno nulovými hodnotami po stranách Gaussovy křivky. V případě databáze ÚBMI je počet těchto hodnot na každé straně roven 6, v případě snímků z databáze DRIVE je nastaven počet nulových hodnot na 3 z každé strany Gaussovy křivky. 19
23 Experimentováním s nastavením a analýzou výsledků programu jsem ovšem dospěl k závěru, že tyto přesahy nejsou nutné, protože rozdíly mezi parametrickými obrazy s tímto přesahem a bez něj jsou naprosto zanedbatelné a míra pozitivního vlivu na rychlost filtrace je natolik významná, že v programu jsou použité masky bez těchto nulových přesahů. Ilustrativní podoba masek pro úhly v krocích po 15 je pro široké cévy snímků databáze ÚBMI znázorněna na obr Obrázek 6.8: Ukázka filtračních masek pro široké cévy pro úhly v krocích po Filtrace Protože cévy v oční sítnici vedou do různých směrů, je nutné, aby byla filtrace provedena filtrační maskou natočenou do různých směrů. Jako dostatečný krok natočení masky byla podle [13] zvolena hodnota 15. Pro směry v úhlech 0, 45, 90 a 135 jsou zobrazeny ilustrativní výsledky pro všechny typy cév na následujících obrázcích. Vstupem je vždy G-složka snímku sítnice a výstupem parametrický obraz pro daný typ cévy. (a) G-složka (b) 0 (c) 45 (d) 90 (e) 135 (f) výsledný parametrický obraz Obrázek 6.9: Parametrické obrazy tenkých cév pro některé směry natočení filtračních masek. 20
24 (a) G-složka (b) 0 (c) 45 (d) 90 (e) 135 (f) výsledný parametrický obraz Obrázek 6.10: Parametrické obrazy středních cév pro některé směry natočení filtračních masek. (a) G-složka (b) 0 (c) 45 (d) 90 (e) 135 (f) výsledný parametrický obraz Obrázek 6.11: Parametrické obrazy širokých cév pro některé směry natočení filtračních masek. 21
25 6.3 Prahování Parametrické obrazy z kapitoly je dále nutné podrobit funkci prahování. Tato funkce upravuje vstupní data podle následujícícho předpisu [5]: { A pokud x > T f(x) = B pokud x T, (6.5) kde T je prahová hodnota. Pro účely prahování parametrického obrazu lze přepsat předpis na: { 1 pokud MF R(x, y) > T g(x, y) = 0 pokud MF R(x, y) T, (6.6) kde g(x, y) je výsledný binární obraz charakterizující výskyt cévy hodnotou logické 1 a pozadí hodnotou logické 0. M F R(x, y) je prahovaný parametrický obraz. Prahování je prováděno metodou popsanou v kapitole Co-occurrence matice Matice vyjadřující četnost opakujících se kombinací jasu na odpovídajících si pozicích v obraze. Z co-occurrence matice lze odvodit řadu parametrů - energii, kontrast, entropii atd. Jedná se o 2D sdružený histogram definovaný pro dva obrazy A a B shodných rozměrů s q a r stupni šedi [13]. Tento histogram je definovám vztahem [9]: h AB : h AB l,m = D l,m 1, kde l = 0, 1,..., q 1, m = 0, 1,..., r 1, D l,m = {[i, k] : ((a i,k A) = l) ((b i,k B) = m)}. (6.7) Samotnou co-occurrence matici pro parametrický obraz M F R(x, y) definujeme vztahem [9]: P Q t ij = δ, (6.8) kde δ = 1 pokud x=1 y=1 MF R(x, y) = i MF R(x, y + 1) = j nebo MF R(x, y) = i MF R(x + 1, y) = j δ = 0 jinak, (6.9) kde i, j jsou úrovně šedi, P, Q rozměry parametrického obrazu MF R(x, y). V této práci budeme dále vycházet z tzv. lokální entropie 2. Tuto lokální entropii lze spočítat vztahem [9]: H = 1 q p i log 2 2 p i, (6.10) i=0 kde q je počet úrovní šedi vstupního obrazu, p i je pravděpodobnost výskytu informace. 2 Entropie je množství informace obsažené ve zprávě [7]. Vyjádříme ji jako záporný logaritmus o základu 2 z pravděpodobnosti výskytu této zprávy na výstupu zdroje informace [9]. 22
26 6.3.2 Volba vhodného prahu Pro nalezení vhodného prahu je nutné nejprve spočítat z co-occurrence matice pravděpodobnost současného výskytu: p ij = i t ij j t ij. (6.11) Co-occurrence matici o rozměrech L 1 L 1, kde L je počet stupňů šedi, rozdělíme na čtyři kvadranty A, B, C a D podle obrázku Dále nás budou zajímat pouze kvadranty nacházející se na hlavní diagonále, tj. A a C a to z důvodu, že na hlavní diagonále se nacházejí nejvyšší hodnoty co-occurrence matice. Průchodem matice od i = 0, j = 0 až po i = L 1, j = L 1 dojde k postupnému zvětšování kvadrantu A a naopak zmenšování kvadrantu C. Nás zajímají hodnoty dílčích lokálních entropií H A a H C příslušných kvadrantů. V místě, kde je součet H A + H C nejvyšší se nachází námi hledaná hodnota prahu. Obrázek 6.12: Rozdělení co-occurrence matice na kvadranty [13]. Celkovou lokální entropii spočteme vztahem [6]: H(T ) = H A (T ) + H C (T ), (6.12) kde dílčí lokální entropie H A (T ) a H C (T ) vyjádříme vztahem [6]: H A (T ) = 1 2 H C (T ) = 1 2 T T i=0 j=0 T T i=0 j=0 P A ij log 2 P A ij, (6.13) P C ij log 2 P C ij, (6.14) přičemž hodnoty Pij A a P ij B 6.11 a to podle vztahu [6]: vyjadřují normalizované pravděpodobnosti spočtené podle 23
27 P A ij = p ij P A = T i=0 t ij T j=0 t, pro 0 i T, 0 j T, (6.15) ij P C ij = p ij P C = L 1 i=t +1 t ij L 1 j=t +1 t ij, pro T + 1 i L 1, T + 1 j L 1, (6.16) kde hodnoty P A a P C vyjadřují součet pravděpodobností současného výskytu v příslušných kvadrantech A a C: P A = T T p(i, j), (6.17) i=0 j=0 P C = L 1 L 1 i=t +1 j=t +1 p(i, j). (6.18) Hledaná hodnota vhodného prahu T je rovna hodnotě T, při které je celková lokální entropie H podle vztahu 6.12 maximální [6] Prahování Výsledky prahování pro jednotlivé typy cév jsou vyobrazeny na obr. 6.13, celkový binární obraz vzniklý spojením binárních obrazů tenkých, středních a širokých cév je poté zobrazen na obr Tento celkový binární obraz bude dále v kapitole 6.4 podléhat čištění od artefaktů. (a) parametrický obraz tenkých cév (b) binární obraz tenkých cév. 24
28 (c) parametrický obraz středních cév (d) binární obraz středních cév (e) Parametrický obraz širokých cév (f) binární obraz širokých cév Obrázek 6.13: Parametrické obrazy a příslušné výsledky prahování. 6.4 Čištění artefaktů Další částí popisované metody segmentace cévního řečiště je čištění hrubé binární reprezentace vstupního snímku od falešných struktur, které vznikly při filtraci chybnou detekcí prvků, které nelze považovat za cévy. Tyto falešné struktury jsou způsobeny zejména šumem v obraze, případně chybnou detekcí nervových vláken Odstranění okraje FOV Za artefakt v obraze lze považovat také okraj zorného pole fundus kamery FOV. Nejprve je algoritmem zkoumáno, zda se jedná o snímek z databáze DRIVE, které obsahují FOV v podobě celého kruhu nebo snímek z databáze ÚBMI, které obsahují FOV pouze v podobě kruhových výsečí po levé a pravé straně snímku (kapitola 5). V případě databáze ÚBMI je situace jednodušší. Postupně procházíme snímkem po řádcích zleva i zprava a při detekci prvního neprázdného (bílého) pixelu odstraníme určitý počet pixelů následujících. Tento počet je automaticky spočten z velikosti vstupního snímku a pro snímky z databáze ÚBMI je roven 22 pixelům. Jedná-li se o snímek z databáze DRIVE, prohledáváme stejným způsobem jako v případě snímků z databáze ÚBMI, pouze navíc zahrnujeme průchod shora a zdola. Pro snímky z databáze DRIVE je hodnota počtu odstraněných pixelů automaticky nastavena na
29 Obrázek 6.14: Celkový binární obraz vzniklý spojením dílčích obrazů z obr Odstranění artefaktů Dalšími falešnými strukturami jsou malé úseky v binárním obraze bez napojení na cévní řečiště. Tyto lze jednoduše odstranit postupem, kdy prohledáváme binární obraz a v případě, že narazíme na strukturu, která je plošně menší než zvolená hodnota, tuto strukturu odstraníme. Protože program vytvořený jako součást této práce neimplementuje metodu doplnění chybějících úseků cév podle [13], je upravena maximální přípustná velikost falešných struktur v obraze, což společně s upravenou hodnotou prahu popsanou v kapitole 9 dává výsledky velmi podobné (tabulky 9.2 a 9.4) jako implementace s doplňováním chybějících úseků cév. U snímků z databáze ÚBMI je tato hodnota automaticky nastavena na 204 pixelů, u snímků databáze DRIVE na 32 pixelů. (a) binární obraz po odstranění okraje FOV (b) binární obraz po kompletním čištění artefaktů Obrázek 6.15: Binární obraz po fázích čištění. 26
30 Kapitola 7 Implementace algoritmu Algoritmus byl implementován v jazyce C++ v prostředí Qt Creator verze za použití Qt Framework verze Implementace a testování (kapitola 9) probíhalo na osobním počítači s operačním systémem Windows R 7 Professional 64bit, procesorem Intel Core i7 M620@2.67GHz (Turbo Boost GHz) a 4GB operační paměti. Výsledkem implementace je spustitelný *.exe soubor. Uživatelské rozhraní a jeho ovládání je blíže popsáno v kapitole Základní hierarchie Třídy Základem programu jsou třídy MainWindow a Segment. Třída MainWindow se stará o obsluhu uživatelského rozhraní. Třída Segment provádí samotnou segmentaci. Její veřejná metoda Segmentation(); slouží ke komunikaci s uživatelský rozhraním a přístupu k dalším privátním metodám, které provádějí dílčí kroky procesu segmentace. Dalšími třídami jsou Options a Help. Tyto třídy vyvolají pomocí veřejných metod OptionsInit(); a HelpInit(); požadované dialogové okno a to buď s nápovědou programu, nebo nastavením parametrů segmentace Datové struktury V programu je využito několika struktur. Hlavní strukturou pro uchovávání dílčích výsledků pro zobrazení a možnost jejich manipulace v uživatelském rozhraní je tsegment (kód 7.1), která mimo snímky datového typu QImage uchovává také hodnotu rate 2. Tato struktura je vytvořena v třídě MainWindow uživatelského rozhraní a naplněna po dokončení procesu segmentace metodou Segmentation(); třídy Segment. Poté jsou jednotlivé dílčí výsledky zobrazeny v uživatelském rozhraní. Další významnou datovou strukturou je toptions (kód 7.2), která uchovává nastavení parametrů segmentace. Tato struktura je definována v metodě ResetOptions(); třídy MainWindow a poté v případě potřeby zpracována metodami třídy Options. Při segmentaci 1 Automatické krátkodobé zvýšení frekvence procesoru při vytížení. 2 Datová hodnota typu double, která určuje poměr mezi prázdnými (černými) a plnými pixely na vstupním snímku sítnice. 27
31 je ukazatel na tuto strukturu předán metodě Segmentation(); třídy Segment, která data ze struktury dále využívá v procesu segmentace. Struktura tshowimage (kód 7.4) uchovává indexy aktuálně zobrazených snímků v uživatelském rozhraní na záložkách Vstupní obraz RGB, Parametrický obraz MFR, Výsledek segmentace. Struktura tmasks (kód 7.3) je definována metodou CreateMasks(); třídy Segment a obsahuje filtrační masky pro všechny typy cév vždy natočené ve 12 různých směrech. struct tsegment { QImage image RGB ; // v s t u p n i snimek QImage image R ; // R s l o z k a QImage image G ; // G s l o z k a QImage image B ; // B s l o z k a QImage image MFR tenke ; // parametricky obraz tenkych cev QImage image MFR stredni ; // parametricky obraz s t r e d n i c h cev QImage image MFR siroke ; // parametricky obraz s i r o k y c h cev QImage i m a g e r e s u l t ; // konecny v y s l e d e k po c i s t e n i QImage i m a g e r e s u l t a r t ; // v y s l e d e k s a r t e f a k t y double r a t e ; // pomer prazdnych / plnych p i x e l u v s t u p n i h o snimku } ; Zdrojový kód 7.1: Struktura tsegment. struct toptions { // n a s t a v e n i j e d n o t l i v y c h parametru segmentace bool tenke, s t r e d n i, s i r o k e, threshold, clean, a u t o f i l t e r, a r t ; int tenke px, s t r e d n i p x, s i r o k e p x, t h r e s h o l d t e n k e, t h r e s h o l d s t r e d n i, t h r e s h o l d s i r o k e, a r t s i z e ; double tenke sigma, s t r e d n i s i g m a, s i r o k e s i g m a 1, s i r o k e s i g m a 2, s i r o k e a 1, s i r o k e a 2 ; int max width, max height, max width2, max height2 ; } ; Zdrojový kód 7.2: Struktura toptions. struct tmask { // 2D p o l e s maskami pro jeden smer double tenke ; double s t r e d n i ; double s i r o k e ; } ; struct tmasks { // p o l e masek pro j e d n o t l i v e smery n atoceni tmask mask [ANGLES ] ; } ; Zdrojový kód 7.3: Struktury tmasks a tmask. 28
32 struct tshowimage { // indexy a k t u a l n e zobrazenych snimku v z a l o z k a c h int input ; int mfr ; int r e s u l t ; } ; Zdrojový kód 7.4: Struktura tshowimage. Schéma na obr. 7.1 znázorňuje oblast definice hlavních datových struktur programu a jejich předávání mezi třídami včetně významu. Obrázek 7.1: Třídy a datové struktury. 7.2 Proces segmentace Základem segmentace je algoritmus popsaný v kapitole 6. Samotná segmentace je implementována třídou Segment, která obsahuje celkem 22 různých metod pro dílčí části segmentace. Tato třída komunikuje s ostatními pomocí veřejné metody Segmentation(); (kód 7.5). Některé další metody včetně jejich významných úsecích kódu budou individuálně popsány v kapitole Automatická volba parametrů segmentace Program je schopen na základě rozměrů vstupního snímku a poměru prázdných (černých) a plných pixelů automaticky nastavit použití a velikosti filtračních masek (kód 7.11). Dále z těchto informací automaticky nastavuje také maximální povolenou velikost artefaktů v obraze a šířku okraje chybně detekovaného zorného pole fundus kamery. V části prahování automaticky spočte také hodnoty prahu pro jednotlivé parametrické obrazy. Samozřejmostí je možnost vlastní volby všech výše zmíněných parametrů a to v Nastavení. 29
33 / Hlavni funkce pro image Vstupni topt S t r u k t u r a s nastavenim parametru bar U k a z a t e l prubehu b a r l a b e l Popisek u k a z a t e l e l a b e l v s t u p Label pro z o b r a z e n i v s t u p n i h o Vraci s t r u k t u r u tsegment s vysledkem segmentace. / tsegment Segment : : Segmentation (QImage image, toptions topt, QProgressBar bar, QLabel b a r l a b e l, QLabel l a b e l v s t u p ) ; Zdrojový kód 7.5: Veřejná metoda Segmentation(); třídy Segment. 7.3 Hromadná segmentace Součástí programu je také modul pro hromadnou segmentaci snímků. Jde o rozšíření uživatelského rozhraní, tudíž je modul implementován metodami třídy MainWindow. Jedná se o implementaci výběru více souborů zároveň, práci se seznamem jmen a cest souborů datového typu QStringList, uložení výsledků do vybrané složky. Podoba modulu je popsána dále v kapitole Srovnání snímků Další funkcionalitou programu je srovnání dvou výsledných snímků. Toto srovnání probíhá pixel po pixelu u snímků stejných rozměrů. V případě nestejně rozměrných snímků zobrazí program upozornění. Jako snímek referenční uvažujeme snímky vzorové (např. v případě databáze DRIVE se jedná o snímky manuálně segmentované zkušenými oftalmology), jako snímek porovnávaný bereme snímky vytvořené programem. Program zaznamenává situace, kdy jsou pixely neprázdné a jsou si rovny, kdy a který z pixelů má opačnou hodnotu, celkový počet neprázdných pixelů a celkový počet pixelů snímku. Z těchto hodnot poté spočte procentuální hodnoty (kód 7.6): Procento správně detekovaných pixelů cév - poměr průniku neprázdných pixelů obou snímků a neprázdných pixelů referenčního snímku. Procento chybějících úseků cév - poměr neprázdných pixelů referenčního snímku, které má proti snímku porovnávanému navíc a neprázdných pixelů referenčního snímku. Procento nesprávně detekovaných pixelů artefaktů - poměr neprázdných pixelů porovnávaného snímku, které má proti snímku referenčnímu navíc a celkového počtu všech pixelů snímku Koeficient shody snímků Při srovnávání dvou snímků je vyhodnocován také tzv. koeficient shody. V případě, že je koeficient záporný, označí program snímky za neshodné, v případě koeficientu kladného 30
34 jsou snímky označeny jako shodné. Při absolutní shodě (stejný referenční a porovnávaný snímek) je hodnota koeficientu rovna 10. Koeficient k je spočten jako: ( ) t k = log (7.1) Cf kde t je procento správně detekovaných pixelů cév, f je procento nesprávně detekovaných pixelů artefaktů a C je konstanta, která upravuje přesnost rozhodování, zda jsou snímky shodné nebo ne. V základu je nastavená na hodnotu 20. Toto nám udává, že snímky, u kterých bude podíl t/f větší než 20 budou označeny za shodné, v opačném případě neshodné. V praxi se ukázalo, že u srovnání referenčních snímků a výsledků stejných snímků z tohoto programu neklesl podíl t/f pod hodnotu 40 a naopak při srovnání několika náhodně vybraných dvojic různých snímků tento podíl nepřekročil hodnotu 5. Z toho důvodu byla hodnota 20 shledána jako vhodná. 7.5 Významné části zdrojového kódu Procentuální shoda, koeficient shodnosti Programová implementace metody popsané v kapitole je uvedena v kódu 7.6, kde proměnná proc1 vyjadřuje procento správně detekovaných pixelů cév, proměnná proc2 vyjadřuje procento chybějících úseků cév a proc3 procento nesprávně detekovaných pixelů artefaktů. for ( int i = 0 ; i < i m a g e r e f e r. width ( ) ; i ++) { // pruchod obrazky for ( int j = 0 ; j < i m a g e r e f e r. h e i g h t ( ) ; j++) { // separace RGB, o d s t r a n i Alpha kanal px comp = image comp. p i x e l ( i, j ) & 0 x ; p x r e f e r = i m a g e r e f e r. p i x e l ( i, j ) & 0 x ; i f ( px comp!= 0 && p x r e f e r!= 0) shoda++; // shodne p i x e l y i f ( p x r e f e r == 0 && px comp!= 0) navic comp++; // porovnavany snimek ma navic i f ( px comp == 0 && p x r e f e r!= 0) n a v i c r e f e r ++; // r e f e r e n c n i snimek ma navic i f ( p x r e f e r!= 0) c e l k e m r e f e r ++; // celkem neprazdnych v referencnim snimku } } celkem++; // v y p o c e t p r o c e n t u e l n i shody i f ( c e l k e m r e f e r!= 0) proc1 = ( double ) shoda / c e l k e m r e f e r ; i f ( celkem!= 0) proc3 = ( double ) navic comp / celkem ; proc2 = ( double ) n a v i c r e f e r / c e l k e m r e f e r ; // v y p o c e t k o e f i c i e n t u shody i f ( proc1!= 100 && proc3!= 0) c o e f i c i e n t = l o g ( proc1 / (DIV COEF proc3 ) ) ; Zdrojový kód 7.6: Výpočet procentuální shody a koeficientu shodnosti, mainwindow.cpp. 31
35 7.5.2 Gaussova křivka Výpočet jednoduché Gaussovy křivky (vztah 6.3 pro tenké a střední cévy) a křivky složené (vztah 6.4) je implementován kódem D pole double **y je nejrpve naplněno hodnotami korespondujícími s průběhem Gaussovy křivky na prvním řádku, až poté jsou tyto hodnoty zkopírovány na řádky další, aby vznikla maska čtvercového tvaru o velikosti hrany čtverce rovné size. for ( int i = 0 ; i < s i z e ; i ++) { // v e l i k o s t masky x = i r o z d i l ; i f ( type == 0) y [ i ] [ 0 ] = 1 ( exp( (x x ) /(2 sigma1 sigma1 ) ) ) ; // v y p o c e t gaussovy k r i v k y t e nke a s t r e d n i cevy else y [ i ] [ 0 ] = 1 ( ( a1 exp( (x x ) /(2 sigma1 sigma1 ) ) ) + ( a2 exp( (x x ) /(2 sigma2 sigma2 ) ) ) ) ; // v y p o c e t s l o z e n e gaussovy k r i v k y s i r o k e cevy sum += y [ i ] [ 0 ] ; } Zdrojový kód 7.7: Výpočet Gaussovy křivky, mask.cpp Výpočet entropie a prahu Co-occurence matice je podle kapitoly rozdělena na 4 kvadranty, z nichž v algoritmu použijeme kvadranty A a C ležící na hlavní diagonále matice. Podle vztahu 6.12 spočteme celkovou entropii H jako součet entropií H A a H C. Na pozici na hlavní diagonále matice, kde je hodnota celkové entropie nejvyšší, je námi hledaný vhodný práh. for ( int i = 1 ; i < OCUR SIZE ; i ++) { // pruchod m a t i c i po d i a g o n a l e // s o u c e t prvniho kvadrantu for ( int x = 0 ; x < i ; x++) for ( int y = 0 ; y < i ; y++) A sum += pocc [ x ] [ y ] ; // s o u c e t druheho kvadrantu for ( int x = i ; x < OCUR SIZE ; x++) for ( int y = i ; y < OCUR SIZE ; y++) B sum += pocc [ x ] [ y ] ; // v y p o c e t l o k a l n i c h e n t r o p i i A a B A = 0.5 ( A sum l o g 2 ( A sum ) ) ; B = 0.5 ( B sum l o g 2 ( B sum ) ) ; } i f (A + B >= H) { // hledame v a r i a n t u s n e j v y s s i c e l k o v o u e n t r o p i i t h r e s h o l d = i ; H = A + B; } Zdrojový kód 7.8: Výpočet entropie a prahu, threshold.cpp. 32
36 7.5.4 Co-occurrence matice Co-occurrence matice slouží jako základ pro hledání vhodného prahu. Výpočet matice je v programu implementován podle [2] a [8] jako: for ( int i = 0 ; i < width 1 ; i ++) { // pruchod obrazkem img mfr for ( int j = 0 ; j < h e i g h t 1 ; j++) { // o k o l i a k t u a l n i h o p i x e l u x = img mfr [ i ] [ j ] ; y = img mfr [ i ] [ j +1]; z = img mfr [ i +1][ j +1]; occurence [ x ] [ y ] = occurence [ x ] [ z ] + 1 ; // u l o z e n i hodnoty do occurence matice } } Zdrojový kód 7.9: Výpočet co-occurrence matice, threshold.cpp Čištění artefaktů Odstranění falešných struktur z obrazu vychází z rekurzivní funkce Pixel(); (kód 7.10). Úkolem této funkce je spočtení velikosti spojité struktury v obraze a vytvoření její masky. V případě, že je struktura menší než požadovaný počet pixelů, je z binárního obrazu podle vytvořené masky odstraněna. / R e k u r z i v n i funkce pro pruchod p i x e l y a urcenim v e l i k o s t a r t e f a k t x X souradnice p i x e l y Y souradnice p i x e l s i z e V e l i k o s t a r t e f a k t img Vstupni img mask Maska p i x e l u k o d s t r a n e n i. / void Segment : : P i x e l ( int x, int y, int &s i z e, short img, short img mask ) { i f ( img [ x ] [ y ] == RGB MAX) { // b i l y p i x e l > prohledavame r e k u r z i v n e j e h o o k o l i img [ x ] [ y ] = 0 ; img mask [ x ] [ y ] = RGB MAX; // p i x e l pridame do masky ++s i z e ; // v e l i k o s t a r t e f a k t u + 1 i f ( s i z e > CLEAN LIMIT) return ; // k o n t r o l a maximalniho zanoreni P i x e l ( x + 1, y, s i z e, img, img mask ) ; P i x e l ( x + 1, y + 1, s i z e, img, img mask ) ; P i x e l ( x 1, y 1, s i z e, img, img mask ) ; P i x e l ( x 1, y, s i z e, img, img mask ) ; P i x e l ( x 1, y 1, s i z e, img, img mask ) ; P i x e l ( x, y 1, s i z e, img, img mask ) ; P i x e l ( x, y + 1, s i z e, img, img mask ) ; } } Zdrojový kód 7.10: Rekurze pro průchod pixely za účelem čištění artefaktů, clean.cpp. 33
37 7.5.6 Automatické nastavení parametrů segmentace Program na základě parametrů vstupního snímku a to jeho rozměrů width a height a poměru prázdných (černých) a neprázdných pixelů rate spočte automaticky vhodné parametry segmentace a uloží je do struktury topt. K určení těchto parametrů využívá koeficientů definovaných v konfiguračním souboru config.h. Tyto koeficienty jsem odvodil a navrhnul na základě testování na reálných snímcích. / Automaticke n a s t a v e n i parametru topt Nastaveni parametru width S i r k a h e i g h t Vyska r a t e Pomer plnych / prazdnych p i x e l u. / void Segment : : A u t o F i l t e r ( toptions topt, int width, int height, double r a t e ) { // n e l i n e a r n i k o e f i c i e n t a v y c h a z e j i c i z rozmeru obrazku double a = s q r t ( s q r t ( ( double ) width h e i g h t ) ) ; topt >tenke px = topt >s t r e d n i p x = a / A COEFICIENT (1 + r a t e ) ; // v e l i k o s t masky tenkych a s t r e d n i c h cev topt >tenke sigma = a / A TENKE; // sigma tenkych cev topt >s t r e d n i s i g m a = a / A STREDNI ; // sigma s t r e d n i c h cev // k o rekce v e l i k o s t i masek i f ( topt >tenke px < A MIN) topt >tenke px = A MIN ; i f ( topt >s t r e d n i p x < A MIN) topt >s t r e d n i p x = A MIN ; } i f ( width h e i g h t < A LIMIT) { // o b razek p r i l i s maly pro s i r o k e cevy topt >s i r o k e = 0 ; } else { // pouzijeme i f i l t r s i r o k y c h cev topt >s i r o k e p x = a / A SIROKE ; // v e l i k o s t masky topt >s i r o k e s i g m a 1 = a / A SIGMA ; // sigma1 topt >s i r o k e s i g m a 2 = topt >tenke sigma ; // sigma2 topt >s i r o k e a 1 = topt >s i r o k e s i g m a 2 2 ; // A1 topt >s i r o k e a 2 = a / A A2 ; // A2 } Zdrojový kód 7.11: Automatické nastavení parametrů segmentace, filter.cpp Rotace filtračních masek Po vytvoření filtračních masek jednotlivých typů cév je nutné těmito maskami rotovat ve 12 krocích, vždy po 15. Jedná se o dvourozměrné datové pole, rotace je tudíž implementována následovně: Pro každý pixel masky spočteme jeho nové souřadnice po natočení o požadovaný úhel. Pixely, které přesáhnou rozsah masky (typicky v rozích) odstraníme a místa, kde není vložen žádný pixel náležící masce, ponecháme nulová. Pro výpočet nových souřadnic pixelu x,y potřebujeme znát úhel beta, který svírá pixel se středem masky a vzdálenost l 34
38 tohoto pixelu od středu masky. Poté jednoduše za pomoci goniometrických funkcí cos a sin spočteme tyto nové souřadnice: [ ] π(angle + beta) x = l cos + pul 180 [ ] π(angle + beta) y = l sin + pul (7.2) 180 kde pul je poloviční velikost masky a úhel angle je požadovaný úhel natočení masky. for ( int i = 0 ; i < s i z e ; i ++) { // pruchod maskou for ( int j = 0 ; j < s i z e ; j++) { i f ( i!= pul ) { // v y p o c e t uhlu beta = atan ( ( double ) ( j pul ) / ( double ) ( i pul ) ) 180 / PI ; i f ( i < pul ) beta += ; // l e v a p o l o v i n a masky } else i f ( j < pul ) beta = 9 0 ; // horni p o l o v i n a masky else i f ( j >= pul ) beta = 90; // spodni p o l o v i n a masky l = s q r t ( ( pul i ) ( pul i ) + ( pul j ) ( pul j ) ) ; // v y p o c e t v z d a l e n o s t i // v y p o c e t souradnic x = l cos ( ( angle + beta ) PI / 180) + pul ; y = l s i n ( ( angle + beta ) PI / 180) + pul ; } } // o v e r e n i presahu masky i f ( x >= 0 && x < s i z e && y >=0 && y < s i z e ) mask2 [ x ] [ y ] = mask [ i ] [ j ] ; Zdrojový kód 7.12: Rotace filtračních masek, mask.cpp Filtrace Metoda filtrace vstupního snímku s vhodně navrženou filtrační maskou je implementována podle postupu v kapitole 6.2 a podle [16]. Ukázka zdrojového kódu 7.13 zobrazuje pro zjednodušení pouze implementaci filtrace tenkých cév. Hodnota každého pixelu a jeho okolí je konvoluována s odpovídajícími pixely filtrační masky. Tyto hodnoty jsou poté sečteny a uloženy do pole sum_tenke o 12 prvcích, kde uchováváme tyto součty pro každé natočení filtrační masky. Dále vyhledáme v poli sum_tenke nejvyšší hodnotu, tj. nejvyšší odezvu filtru a uložíme ji na odpovídající pozici do výsledného parametrického obrazu img_mfr_tenke. Zárověň si pro pozdější korekci hodnot kontrolujeme a zaznamenáváme absolutní maximum max_tenke a minimum min_tenke konvoluce ze všech pixelů obrázku. Tyto hodnoty nejprve upravíme na hodnoty větší než 0 a poté hodnotu každého pixelu zarovnáme do rozsahu 0 až RGB_MAX (maximální hodnota barevného kanálu RGB snímku, tj. 255). 35
39 for ( int i = 0 ; i < width ; i ++) { // pruchod snimkem for ( int j = 0 ; j < h e i g h t ; j++) { // t e nke cevy x = i s i z e t e n k e ; y = j s i z e t e n k e ; for ( int a = 0 ; a < topt >tenke px ; a++) { // pruchod maskou for ( int b = 0 ; b < topt >tenke px ; b++) { // k o n t r o l a presahu pres snimek i f ( x + a < 0 x + a + 1 > width ) continue ; else i f ( y + b < 0 y + b + 1 > h e i g h t ) continue ; // pruchod u h l y masek, p r i c t e n i hodnoty do souctu for ( int l = 0 ; l < ANGLES; l ++) sum tenke [ l ] += tmask >mask [ l ]. tenke [ a ] [ b ] img [ x + a ] [ y + b ] ; } } // h l e d a n i maxima v j e d n o t l i v y c h u h l e c h r e s u l t s u m t e n k e = ( int ) sum tenke [ 0 ] ; for ( int l = 1 ; l < ANGLES; l ++) i f ( sum tenke [ l ] > r e s u l t s u m t e n k e ) = ( int ) sum tenke [ l ] ; r e s u l t s u m t e n k e } } // u l o z e n i maxima i f ( r e s u l t s u m t e n k e > max tenke ) max tenke= r e s u l t s u m t e n k e ; i f ( r e s u l t s u m t e n k e < min tenke ) min tenke= r e s u l t s u m t e n k e ; img mfr tenke [ i ] [ j ] = r e s u l t s u m t e n k e ; // k o rekce hodnot o d s t r a n e n i zapornych hodnot min tenke = abs ( min tenke ) ; max tenke += min tenke ; for ( int i = 0 ; i < width ; i ++) { // pruchod snimkem for ( int j = 0 ; j < h e i g h t ; j++) { // k o rekce hodnot do rozsahu 0 RGB MAX img mfr tenke [ i ] [ j ] += min tenke ; i f ( max tenke == 0) max tenke++; img mfr tenke [ i ] [ j ] = round ( img mfr tenke [ i ] [ j ] RGB MAX / max tenke ) ; } } Zdrojový kód 7.13: Filtrace, filter.cpp. 36
40 Kapitola 8 Popis programu 8.1 Hlavní okno programu Po spuštění programu se zobrazí hlavní okno (obr. 8.1). V horní liště je hlavní menu programu sloužící k otevření souboru, uložení dílčích výsledků segmentace jednotlivých snímků, zobrazení nastavení a nápovědy. Hlavní okno je složeno z pěti záložek: vstupní obraz RGB parametrický obraz MFR výsledek segmentace hromadné zpracování - kapitola 8.2 srovnání snímků - kapitola 8.3. První tři záložky slouží k ovládání a zobrazení konečného a dílčích výsledků segmentace jednotlivých snímků. Pomocí Menu - Otevřít načte vstupní snímek a zobrazí jej v záložce Vstupní obraz RGB. Ihned poté se v horní liště zpřístupní možnost manipulace zobrazení snímku a to jeho přiblížení, oddálení, zobrazení skutečné velikosti a přizpůsobení velikosti okna. Tlačítkem Spustit segmentaci v pravém dolním rohu hlavního okna lze spustit samotný proces segmentace. Po dokončení segmentace se v závislosti na zvolených parametrech segmentace zpřístupní další položky zobrazitelné tlačítky v horní liště: Barevné složky - tlačítko RGB zobrazí vstupní snímek beze změn, tlačítka R, G, B zobrazí pořadě červenou, zelenou a modrou barevnou složku vstupního snímku. Parametrický obraz pro cévy - tlačítka tenké, střední, široké zobrazí parametrické obrazy pro daný typ cév. Výsledek segmentace s čištěním artefaktů - tlačítka ano, ne zobrazí konečný výsledek s nebo bez artefaktů. V dolní části hlavního okna je ukazatel průběhu informující o aktuálním stavu probíhající segmentace. 37
41 Obrázek 8.1: Hlavní okno programu. 8.2 Hromadné zpracování V levé části okna je Seznam snímků, do kterého lze tlačítkem se symbolem + vkládat a tlačítkem se symbolem odebírat vstupní snímky. Po označení snímku v seznamu se v části Náhled snímku zobrazí jeho náhled. V pravé části se nachází textové pole Suffix souborů kde nastavujeme textový řetězec, který se připojí za jméno souboru a to z důvodu, aby byla při ukládání výsledků do složky se zdrojovými snímky zachována přehlednost. Tlačítkem Procházet... vybereme složku k ukládání výsledků segmentace. Tlačítkem Spustit segmentaci opět spustíme proces segmentace. Ukazatel průběhu informuje o jménu aktuálně zpracovávaného snímku a stavu jeho segmentace (obr. 8.2). 8.3 Srovnání snímků Tlačítkem Procházet... v levé horní části načteme z disku soubor s referenčním snímkem, analogicky tlačítkem v levé dolní části načteme snímek porovnávaný. Ihned po načtení snímků se zobrazí jejich náhledy. V případě neshodných rozměrů obou snímků je zobrazena chybová hláška, protože takovéto snímky nelze vzájemně porovnávat. V opačném případě se ihned zobrazí výsledky porovnání, jejichž význam je vysvětlen v kapitole 7.4. V pravé části Překrytí snímků se také zobrazí snímek ilustrující rozdíly mezi snímky, kde shodné pixely zobrazí barvou bílou, chybějící úseky cév barvou modrou a barvou červenou chybně detekované pixely patřící artefaktům. Náhled modulu je na obr
42 Obrázek 8.2: Hromadné zpracování. Obrázek 8.3: Srovnání snímků. 39
43 8.4 Ostatní součásti Součásti programu jsou také různá dialogová okna. Nejvýznamnějším je určite okno Nastavení s jednotlivými parametry patrnými na obr Okno oveřuje jednotlivé volby a podle potřeby je zpřístupňuje nebo zakazuje. Dalším oknem je Nápověda, která slouží k získání základním uživatelským dovedností pro obsluhu programu a poté řada dalších, převážně informativních a varovných oznámení, například oznámení o nastavených parametrech segmentace při automatické volbě těchto parametrů. Obrázek 8.4: Nastavení parametrů segmentace. 40
44 Kapitola 9 Výsledky a zhodnocení metody Jako vstupní data pro otestování implementace metody segmentace popsané v kapitole 6 byly použity snímky z databází ÚBMI a DRIVE blíže popsaných v kapitole 5. Testování probíhalo na osobním počítači s operačním systémem Windows R 7 Professional 64Bit, procesorem Intel Core i7 M620@2.67GHz (Turbo Boost 3.33GHz) a 4GB operační paměti. Snahou bylo vytvořit dostatečně přesný, pokud možno rychlejší program ve srovnání s programem popsaným v [13]. Rychlost segmentace se podařilo navýšit a to poměrně značně (kapitola 9.1). Narozdíl od implementace v [13] nebyla použita metoda doplnění chybějících úseků cév. Toto je částečně kompenzováno úpravou prahových hodnot při segmentaci tak, že prahováním z parametrických obrazů vynikne větší množství informací. Z toho vyplývá poté potřeba upravení hodnoty maximální velikosti artefaktu tak, aby menší nespojité úseky cév nebyly odstraněny. V případě databáze DRIVE je tato hodnota v průměru 32 pixelů, oproti 200 pixelům použitým v implementaci podle [13]. 9.1 Rychlost procesu segmentace Účelem bylo vytvořit program rychlejší, než v případě implementace podle [13], ve které byl vytvořen program spustitelný ve vývojovém prostředí MATLAB. Autor práce se zmiňuje, že doba trvání segmentace jednoho snímku z databáze ÚBMI zmenšeného na velikost pixelů je v průměru rovna 18 minutám. Zde, jak dále objasním, je patrný výrazný vliv hardwarowé konfigurace počítače. V případě [13] byl použit osobní počítač s procesorem Intel Pentium 4@2.6GHz s 1GB operační paměti, operačním systémem Windows R XP a vývojovým prostředím MATLAB V případě této práce bylo pro srovnání použito vývojové prostředí MATLAB ve verzi 7.9.0, zbylá konfigurace je uvedena na začátku této kapitoly 9. Průměrná doba trvání segmentace jednoho snímku z databáze ÚBMI byla při této konfiguraci v případě implementace popsané v [13] s vypnutím doplnění chybějících úseků cév 85 sekund, v případě implementace popsané v této práci byla průměrná doba segmentace 40 sekund. Rozdíl v rychlostech je tedy více než dvojnásobný. Největší vliv na rychlost má menší rozměr filtračních masek popsaný v kapitole
45 9.2 Databáze ÚBMI Snímky z databáze ÚBMI byly segmentovány při automatické volbě parametrů s následujícími průměrnými hodnotami: Filtr Velikost masky σ 1 σ 2 A 1 A 2 Tenké cévy Středně široké cévy Široké cévy Tabulka 9.1: Nastavení parametrů filtračních masek pro snímky z databáze ÚBMI. V tabulce 9.2 je provedeno srovnání výsledků vybraných snímků z databáze ÚBMI vytvořených programem z práce [13] s výsledky programu, který je součástí této práce. Na obr. 9.1 jsou vyobrazeny vybrané snímky a výsledky jejich segmentace v pořadí vstupní snímek, výsledek podle [13], výsledek programu této práce. Další snímky včetně výsledků jsou uloženy na přiloženém médiu. Snímek Procento správně detekovaných pixelů cév Procento chybějících úseků cév Procento nesprávně detekovaných pixelů artefaktů Koeficient shody snímků image % 29% 0% image % 20% 0% image % 20% 0% image % 12% 3% image % 22% 0% image % 13% 2% image % 15% 2% Průměr: 80.3% 18.7% 1% Tabulka 9.2: Procentuální shody výsledků snímků z databáze ÚBMI. (a) snímek image
46 (b) snímek image-0888 (c) snímek image-0964 (d) snímek image-0980 Obrázek 9.1: Výsledky ÚBMI. První snímek zleva je vstupní [4], uprostřed výsledek implementace podle [13], vpravo výsledek programu popsaného v této práci. 9.3 Databáze DRIVE Snímky z databáze DRIVE byly segmentovány při automatické volbě parametrů s následujícími průměrnými hodnotami: Filtr Velikost masky σ Tenké cévy Středně široké cévy Tabulka 9.3: Nastavení parametrů filtračních masek pro snímky z databáze DRIVE. V tabulce 9.4 je provedeno srovnání výsledků vybraných snímků z databáze DRIVE vytvořených manuálně zkušenými oftalmology s výsledky programu, který je součástí této práce. Na obr. 9.2 jsou vyobrazeny vybrané snímky a výsledky jejich segmentace v pořadí vstupní snímek, manuální segmentace, výsledek programu této práce. Další snímky včetně výsledků jsou uloženy na přiloženém médiu. 43
47 Snímek Procento správně detekovaných pixelů cév Procento chybějících úseků cév Procento nesprávně detekovaných pixelů artefaktů Koeficient shody snímků 01 65% 34% 1% % 28% 2% % 43% 1% % 40% 0% % 35% 1% % 30% 2% % 36% 1% % 31% 2% % 37% 1% % 49% 0% Průměr: 65% 34% 1.2% Tabulka 9.4: Procentuální shody výsledků snímků z databáze DRIVE. (a) snímek 01 (b) snímek 02 44
48 (c) snímek 03 (d) snímek 04 (e) snímek 05 (f) snímek 10 Obrázek 9.2: Výsledky DRIVE. První snímek zleva je vstupní [3], uprostřed výsledek manuální segmentace [3], vpravo výsledek programu popsaného v této práci. 45
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV BIOMEDICÍNSKÉHO INŽENÝRSTVÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT
ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM POJETÍ
ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM POJETÍ INVESTICE Institut DO biostatistiky ROZVOJE VZDĚLÁVÁNÍ a analýz 5. LETNÍ ŠKOLA MATEMATICKÉ BIOLOGIE ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM
DIGITÁLNÍ FOTOGRAFIE
DIGITÁLNÍ FOTOGRAFIE Petr Vaněček, katedra informatiky a výpočetní techniky Fakulta aplikovaných věd, Západočeská univerzita v Plzni 19. listopadu 2009 1888, Geroge Eastman You press the button, we do
Základní vyšetření zraku
Základní vyšetření zraku Až 80 % informací z okolí přijímáme pomocí zraku. Lidské oko je přibližně kulového tvaru o velikosti 24 mm. Elektromagnetické vlny o vlnové délce 400 až 800 nm, které se odrazily
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
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é
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
SOUSTAVA SMYSLOVÁ Informace o okolním světě a o vlastním těle dostáváme prostřednictvím smyslových buněk Smyslové buňky tvoří základ čidel Čidla jsou
SOUSTAVA SMYSLOVÁ Informace o okolním světě a o vlastním těle dostáváme prostřednictvím smyslových buněk Smyslové buňky tvoří základ čidel Čidla jsou vybavena vždy pro příjem a zpracování určitého podnětu
Grafika na počítači. Bc. Veronika Tomsová
Grafika na počítači Bc. Veronika Tomsová Proces zpracování obrazu Proces zpracování obrazu 1. Snímání obrazu 2. Digitalizace obrazu převod spojitého signálu na matici čísel reprezentující obraz 3. Předzpracování
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
Moderní multimediální elektronika (U3V)
Moderní multimediální elektronika (U3V) Prezentace č. 7 Digitální fotografie a digitální fotoaparáty Ing. Tomáš Kratochvíl, Ph.D. Ústav radioelektroniky, FEKT VUT v Brně Program prezentace Digitální fotografie
GEOMETRICKÁ OPTIKA. Znáš pojmy A. 1. Znázorni chod význačných paprsků pro spojku. Čočku popiš a uveď pro ni znaménkovou konvenci.
Znáš pojmy A. Znázorni chod význačných paprsků pro spojku. Čočku popiš a uveď pro ni znaménkovou konvenci. Tenká spojka při zobrazování stačí k popisu zavést pouze ohniskovou vzdálenost a její střed. Znaménková
Automatické rozpoznávání dopravních značek
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA DOPRAVNÍ Jiří Hofman Automatické rozpoznávání dopravních značek Semestrální práce z předmětu ITS 2012 Obsah 1. Automatické rozpoznávání dopravních značek (ATSR)...
Michal Vik a Martina Viková: Základy koloristiky ZKO3
Fyziologie vnímání barev Příklady vizuáln lních iluzí: Vliv barvy pozadí I Jsou tyto kruhy barevně shodné? Příklady vizuáln lních iluzí: Vliv barvy pozadí II Jsou tyto kruhy barevně shodné? Příklady vizuáln
Světlo. Podstata světla. Elektromagnetické záření Korpuskulární charakter. Rychlost světla. Vlnová délka. Vlnění, foton. c = 1 079 252 848,8 km/h
Světlo Světlo Podstata světla Elektromagnetické záření Korpuskulární charakter Vlnění, foton Rychlost světla c = 1 079 252 848,8 km/h Vlnová délka Elektromagnetické spektrum Rádiové vlny Mikrovlny Infračervené
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
Základní nastavení. Petr Novák (novace@labe.felk.cvut.cz) 13.12.2010
Základní nastavení Petr Novák (novace@labe.felk.cvut.cz) 13.12.2010 Všechny testy / moduly používají určité základní nastavení. Toto základní nastavení se vyvolá stiskem tlačítka Globální / základní konfigurace
F. Pluháček. František Pluháček Katedra optiky PřF UP v Olomouci
František Pluháček Katedra optiky PřF UP v Olomouci Obsah přednášky Optický systém lidského oka Zraková ostrost Dioptrické vady oka a jejich korekce Další vady optické soustavy oka Akomodace a vetchozrakost
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
Četnost brýlové korekce v populaci
Prezentace k přednášce, přednesené na kongresu Optometrie 2013 V Olomouci 21. 22.9 2013 Četnost brýlové korekce v populaci RNDr. Jaroslav Wagner, Ph.D. Katedra optiky PřF UP Olomouc Kontakt: wagnerj@prfnw.upol.cz
Detekce světla. - křivka zčernání, expozice - světlocitlivá emulze, CCD - komprese signálu zrakovou dráhou. Detektory světla
Aplikovaná optika - přednáška Detekce světla - křivka zčernání, expozice - světlocitlivá emulze, CCD - komprese signálu zrakovou dráhou Detektory světla Oko reakční doba 0,1s elektrochemické změny Fotocitlivá
Výukový materiál. zpracovaný v rámci projektu
Výukový materiál zpracovaný v rámci projektu Základní škola Sokolov,Běžecká 2055 pracoviště Boženy Němcové 1784 Název a číslo projektu: Moderní škola, CZ.1.07/1.4.00/21.3331 Šablona: III/2 Inovace a zkvalitnění
ROZ1 - Cv. 3 - Šum a jeho odstranění ÚTIA - ZOI
Šum Co je to šum v obrázku? Šum Co je to šum v obrázku? V obrázku je přidaná falešná informace nahodilého původu Jak vzniká v digitální fotografii? Šum Co je to šum v obrázku? V obrázku je přidaná falešná
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
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
NPGR032 CVIČENÍ III. Šum a jeho odstranění teorie&praxe. Adam Novozámský (novozamsky@utia.cas.cz)
NPGR032 CVIČENÍ III. Šum a jeho odstranění teorie&praxe Adam Novozámský (novozamsky@utia.cas.cz) TEORIE Šum a jeho odstranění ŠUM Co je to šum v obrázku a jak vzniká? Jaké známe typy šumu? ŠUM V obrázku
Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje
Optické zobrazování Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje Základní pojmy Optické zobrazování - pomocí paprskové (geometrické) optiky - využívá model světelného
3D KAMERY A TECHNOLOGIE
3D KAMERY A TECHNOLOGIE strojové vidění nás baví Zdeněk Šebestík, ATEsystem s.r.o., 2016 KDO JSME Vznik v roce 2013, spol. s r.o. 5 majitelů, pouze vlastní kapitál Dnes 18 zaměstnanců, 3 ext. spolupracovníci
5.2.10 Oko. Př. 1: Urči minimální optickou mohutnost lidského oka. Předpoklady: 5207, 5208
5.2.0 Oko Předpoklady: 5207, 5208 Pedagogická poznámka: Obsah této hodiny se asi nedá stihnout za 45 minut, ale je možné přetahovat v další hodině, která na tuto plynule navazuje. Cílem hodiny není nahrazovat
ROZDĚLENÍ SNÍMAČŮ, POŽADAVKY KLADENÉ NA SNÍMAČE, VLASTNOSTI SNÍMAČŮ
ROZDĚLENÍ SNÍMAČŮ, POŽADAVKY KLADENÉ NA SNÍMAČE, VLASTNOSTI SNÍMAČŮ (1.1, 1.2 a 1.3) Ing. Pavel VYLEGALA 2014 Rozdělení snímačů Snímače se dají rozdělit podle mnoha hledisek. Základním rozdělení: Snímače
Rozšíření bakalářské práce
Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE
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
Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu
Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Interní norma č. 22-102-01/01 Průměr a chlupatost příze
Předmluva Text vnitřní normy byl vypracován v rámci Výzkumného centra Textil LN00B090 a schválen oponentním řízením dne 7.12.2004. Předmět normy Tato norma stanoví postup měření průměru příze a celkové
Digitální fotoaparáty
Digitální fotoaparáty Ing. Tomáš Kratochvíl Současná televizní technika a videotechnika kurz U3V Program semináře a cvičení Digitální fotografie snímání jasu a skládání barev. Digitální fotoaparát princip
Digitální fotoaparáty
Digitální fotoaparáty Ing. Tomáš Kratochvíl Současná televizní technika a videotechnika kurz U3V Program semináře a cvičení Digitální fotografie snímání jasu a skládání barev. Digitální fotoaparát princip
Úvod do počítačové grafiky
Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev
1. Polotóny, tisk šedých úrovní
1. Polotóny, tisk šedých úrovní Studijní cíl Tento blok kurzu je věnován problematice principu tisku polotónů a šedých úrovní v oblasti počítačové grafiky. Doba nutná k nastudování 2 hodiny 1.1 Základní
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í
Spektrální charakteristiky
Spektrální charakteristiky Cíl cvičení: Měření spektrálních charakteristik filtrů a zdrojů osvětlení 1 Teoretický úvod Interakcí elektromagnetického vlnění s libovolnou látkou vzniká optický jev, který
Využití neuronové sítě pro identifikaci realného systému
1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme
Diplomová práce Prostředí pro programování pohybu manipulátorů
Diplomová práce Prostředí pro programování pohybu manipulátorů Štěpán Ulman 1 Úvod Motivace: Potřeba plánovače prostorové trajektorie pro výukové účely - TeachRobot Vstup: Zadávání geometrických a kinematických
FTTX - Měření v optických sítích. František Tejkl 17.9.2014
FTTX - Měření v optických sítích František Tejkl 17.9.2014 Náplň prezentace Co lze měřit v optických sítích Vizuální kontrola povrchu ferule konektoru Vizuální hledání chyb Optický rozpočet Přímá metoda
František Pluháček Katedra optiky PřF UP v Olomouci
František Pluháček Katedra optiky PřF UP v Olomouci Zrakový klam = nesouhlas zrakového vjemu a pozorované skutečnosti Na vzniku zrakových klamů se podílí: anatomická a funkční stavba oka psychologické
Omezení barevného prostoru
Úpravy obrazu Omezení barevného prostoru Omezení počtu barev v obraze při zachování obrazového vjemu z obrazu Vytváření barevné palety v některých souborových formátech Různé filtry v grafických programech
Vyšetření kontrastní citlivosti. LF MU Brno Optika a optometrie I
Vyšetření kontrastní citlivosti LF MU Brno Optika a optometrie I 1 Definice kontrastu Kontrast charakterizuje zrakový vjem, který závisí na rozdílu jasu světlých a tmavých předmětů Při zjišťování kontrastní
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
HODNOCENÍ AUTOMATICKÝCH METOD SEGMENTACE CÉVNÍHO ŘEČIŠTĚ EVALUATION OF AUTOMATIC VESSEL TREE SEGMENTATION ALGORITHMS
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV BIOMEDICÍNSKÉHO INŽENÝRSTVÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT
7. Světelné jevy a jejich využití
7. Světelné jevy a jejich využití - zápis výkladu - 41. až 43. hodina - B) Optické vlastnosti oka Oko = spojná optická soustava s měnitelnou ohniskovou vzdáleností zjednodušené schéma oka z biologického
REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB
62 REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB BEZOUŠKA VLADISLAV Abstrakt: Text se zabývá jednoduchým řešením metody nejmenších čtverců v prostředí Matlab pro obecné víceparametrové aproximační funkce. Celý postup
Směrový průzkum ve městě Boskovice
Směrový průzkum ve městě Boskovice červen 17 IDENTIFIKAČNÍ ÚDAJE Předmět zakázky: Objednatel: Zhotovitel: Zodpovědný řešitel: Řešitelský tým: Směrový průzkum ve městě Boskovice Město Boskovice Masarykovo
Pravděpodobnost v závislosti na proměnné x je zde modelován pomocí logistického modelu. exp x. x x x. log 1
Logistická regrese Menu: QCExpert Regrese Logistická Modul Logistická regrese umožňuje analýzu dat, kdy odezva je binární, nebo frekvenční veličina vyjádřená hodnotami 0 nebo 1, případně poměry v intervalu
iphone 7 a Canon 70D Pavel Kocur úterý 18. října 2016
iphone 7 a Canon 70D Pavel Kocur úterý 18. října 2016 K napsání tohoto příspěvku mě inspiroval článek Vyrovná se mobil kvalitou výstupu zrcadlovce? Víta Kovalčíka ze dne 10. 10. 2016. V části TŘETÍ SCÉNA
FYZIKA. Oční vady. 9. ročník
FYZIKA Oční vady 9. ročník 13. 2. 2013 Autor: Mgr. Dana Kaprálová Zpracováno v rámci projektu Krok za krokem na ZŠ Želatovská ve 21. století registrační číslo projektu: CZ.1.07/1.4.00/21.3443 Projekt je
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
Zadání: Úkolem je sestrojit jednoduchý spektrometr a určit jeho základní parametry pozorováním spektra známého objektu.
Úloha 4.: Spektroskopie s CD Zpracoval: Radek Ševčík Datum: 8.2.2009, 11.2.2009 Zadání: Úkolem je sestrojit jednoduchý spektrometr a určit jeho základní parametry pozorováním spektra známého objektu. 1.
Ing. Jakub Ulmann. Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově
Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově 07_10_Zobrazování optickými soustavami II Ing. Jakub Ulmann Zobrazování optickými soustavami 1. Optické
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
Úvod do biometrie. Vladimír Lieberzeit vladimir.lieberzeit@upek.com UPEK Inc.
Úvod do biometrie Vladimír Lieberzeit vladimir.lieberzeit@upek.com UPEK Inc. Obsah Úvod do biometrie, základy Přehled biometrických metod Otisky prstů trochu podrobněji Úvod do biometrie Úvod do biometrie
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
Projekt do předmětu ZPO
Projekt do předmětu ZPO Sledování ruky pomocí aktivních kontur 13. května 2014 Autoři: Pavlík Vít, xpavli62@stud.fit.vutbr.cz Žerdík Jan, xzerdi00@stud.fit.vutbr.cz Doležal Pavel, xdolez08@stud.fit.vutbr.cz
PROJEKT 3 2D TRAJEKTORIE KAMERY SEMESTRÁLNÍ PRÁCE DO PŘEDMĚTU MAPV
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION
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
Operace s obrazem. Biofyzikální ústav LF MU. Projekt FRVŠ 911/2013
Operace s obrazem Biofyzikální ústav LF MU Obraz definujeme jako zrakový vjem, který vzniká po dopadu světla na sítnici oka. Matematicky lze obraz chápat jako vícerozměrný signál (tzv. obrazová funkce)
Vyhodnocení experimentálního měření kmitání vibrační třídičky pomocí optické metody
Vyhodnocení experimentálního měření kmitání vibrační třídičky pomocí optické metody Bc. Martin Machač, Ing. Jan Hoidekr ČVUT v Praze, Fakulta strojní, Ústav konstruování a částí stojů, Technická 4, 166
Náhodné chyby přímých měření
Náhodné chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně pravděpodobná.
III/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT
Metodický list k didaktickému materiálu Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací
III/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT
Metodický list k didaktickému materiálu Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět
Ú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í
Teorie náhodných matic aneb tak trochu jiná statistika
Teorie náhodných matic aneb tak trochu jiná statistika B. Vlková 1, M.Berg 2, B. Martínek 3, O. Švec 4, M. Neumann 5 Gymnázium Uničov 1, Gymnázium Václava Hraběte Hořovice 2, Mendelovo gymnázium Opava
Bezpečnostní systémy - rychlostní kamery Identifikace SPZ a RZ. www.mestozlin.cz
Bezpečnostní systémy - rychlostní kamery Identifikace SPZ a RZ Město Zlín Jednou z možností monitorování a řízení dopravy v obcích je automatické snímání silničního provozu Monitorování dopravy vozidel
STRUKTURA RASTROVÝCH DAT
STRUKTURA RASTROVÝCH DAT dva typy rastrové vrstvy v GIS 1) Digitální obraz TV, počítač, mobil - obrazovka obraz z bodů mapa - mřížka s barevnými plochami 2) Rastrová data data pro analýzu a) binární -
PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze. 3.00.01.16 Výstupní kontrola 07.1/2009. 1 Obsah
1 Obsah 1 Obsah... 1 2 Úvod... 2 2.1 Výhody... 2 2.2 Základní ovládání... 2 3 Menu... 3 3.1 Menu Soubor... 3 3.1.1 Menu Soubor/Filtr... 3 3.1.2 Menu Soubor/Tisk vybraného záznamu... 3 3.1.3 Menu Soubor/Tisk
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á,
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:
Specializovaná mapa s odborným obsahem
Program bezpečnostního výzkumu České republiky na léta 2016-2021 Specializovaná mapa s odborným obsahem VH 20162017003 Vliv reklamních zařízení na bezpečnost silničního provozu České vysoké učení technické
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
Seminární práce Lidské oko Fyzika
Střední škola informačních technologií, s.r.o. Seminární práce Lidské oko Fyzika Dávid Ivan EPS 2 čtvrtek, 26. února 2009 Obsah 1.0 Anatomie lidského oka 1.1 Složení oka 2.0 Vady oka 2.1 Krátkozrakost
zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se
Kapitola 3 Úpravy obrazu V následující kapitole se seznámíme se základními typy úpravy obrazu. První z nich je transformace barev pro výstupní zařízení, dále práce s barvami a expozicí pomocí histogramu
Lupa a mikroskop příručka pro učitele
Obecné informace Lupa a mikroskop příručka pro učitele Pro vysvětlení chodu světelných paprsků lupou a mikroskopem je nutno navázat na znalosti o zrcadlech a čočkách. Hodinová dotace: 1 vyučovací hodina
Postupy práce se šablonami IS MPP
Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul
Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO
Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO 1 Základní dělení 3D grafika 2D grafika vektorová rastrová grafika 2/29 Vektorová grafika Jednotlivé objekty jsou tvořeny křivkami Využití: tvorba diagramů,
8. PŘÍSTUPOVÉ SYSTÉMY
Přístupový systém: Přístupové systémy 8. PŘÍSTUPOVÉ SYSTÉMY Systém řízení přístupu umožní osobě na základě prokázání oprávněnosti vstup nebo vjezd do objektu, případně do střežené části objektu. V literatuře
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
Obsah. Princip funkce zařízení Hardware. Fotografie. High-boost filtr Ekvalizace histogramu Adaptabilní prahový filtr
Lokalizace žil pomocí bĺızkého infračerveného záření Martin Šach Fakulta jaderná a fyzikálně inženýrská, České vysoké učení technické v Praze Fyzikální seminář, letní semestr 2016 Obsah Úvod Cíle Zařízení
Inovace studia obecné jazykovědy a teorie komunikace ve spolupráci s přírodními vědami
Inovace studia obecné jazykovědy a teorie komunikace ve spolupráci s přírodními vědami reg. č.: CZ.1.07/2.2.00/28.0076 Dějiny vizuality: od ikony k virtuální Vizuální percepce: teoretická, empirická i
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í
ZÁKLADNÍ FOTOMETRICKÉ VELIČINY
ZÁKLADNÍ FOTOMETRICKÉ VELIČINY Ing. Petr Žák VÝVOJ ČLOVĚKA vývoj člověka přizpůsobení okolnímu prostředí (adaptace) příjem informací o okolním prostředí smyslové orgány rozhraní pro příjem informací SMYSLOVÉ
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
MATEMATIKA V MEDICÍNĚ
MATEMATIKA V MEDICÍNĚ Tomáš Oberhuber Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Matematika pro život TOMÁŠ OBERHUBER (FAKULTA JADERNÁ A FYZIKÁLNĚ INŽENÝRSKÁ MATEMATIKA
Program pro zobrazení černobílých snímků v nepravých barvách
Rok / Year: Svazek / Volume: Číslo / Number: 2010 12 6 Program pro zobrazení černobílých snímků v nepravých barvách Pseudo-colour Paging of the Monochromatic Picture Libor Boleček xbolec01@stud.feec.vutbr.cz
Posouzení přesnosti měření
Přesnost měření Posouzení přesnosti měření Hodnotu kvantitativně popsaného parametru jakéhokoliv objektu zjistíme jedině měřením. Reálné měření má vždy omezenou přesnost V minulosti sloužila k posouzení
Konverze grafických rastrových formátů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE Konverze grafických rastrových formátů semestrální práce Jakub Hořejší Ondřej Šalanda V
Kalibrační proces ve 3D
Kalibrační proces ve 3D FCC průmyslové systémy společnost byla založena v roce 1995 jako součást holdingu FCC dodávky komponent pro průmyslovou automatizaci integrace systémů kontroly výroby, strojového
Příloha I. MĚŘENÍ GPR NA VYJMUTÝCH BLOCÍCH PÍSKOVCE UMÍSTĚNÝCH NA ŠUTCE. Datum měření: 18. 3. 2015 Místo zkoušek: Úložiště Šutka
Datum měření: 18. 3. 2015 Místo zkoušek: Úložiště Šutka Příloha I. MĚŘENÍ GPR NA VYJMUTÝCH BLOCÍCH PÍSKOVCE UMÍSTĚNÝCH NA ŠUTCE Měřený objekt: Kamenný blok 82VA byl lepený ze dvou částí (Libná a Hořice)
Termovizní měření. 1 Teoretický úvod. Cíl cvičení: Detekce lidské kůže na snímcích z termovizní i klasické kamery
Termovizní měření Cíl cvičení: Detekce lidské kůže na snímcích z termovizní i klasické kamery 1 Teoretický úvod Termovizní měření Termovizní kamera je přístroj pro bezkontaktní měření teplotních polí na
3. BLOK. Anatomie a fyziologie zrakového orgánu
3. BLOK Anatomie a fyziologie zrakového orgánu ANATOMIE ZRAKOVÉHO ORGÁNU Periferní část zrakového orgánu Zraková dráha Zrakové centrum Periferní část zrakového orgánu Oční bulbus Přídatné orgány Slzné
ZPRACOVÁNÍ OBRAZU přednáška 4
ZPRACOVÁNÍ OBRAZU přednáška 4 Vít Lédl vit.ledl@tul.cz TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247,
Inteligentní řešení kamerového systému
Inteligentní řešení kamerového systému Uživatelský manuál Přehrávání a zálohování záznamů Přehrávání Přehrávání pořízených videozáznamů, zobrazení a vyhledávání neobvyklých událostí a informací o systému