ƒeské VYSOKÉ UƒENÍ TECHNICKÉ V PRAZE Fakulta jaderná a fyzikáln inºenýrská DIPLOMOVÁ PRÁCE 2010 Pavel Ne²kudla

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

Download "ƒeské VYSOKÉ UƒENÍ TECHNICKÉ V PRAZE Fakulta jaderná a fyzikáln inºenýrská DIPLOMOVÁ PRÁCE 2010 Pavel Ne²kudla"

Transkript

1 ƒeské VYSOKÉ UƒENÍ TECHNICKÉ V PRAZE Fakulta jaderná a fyzikáln inºenýrská DIPLOMOVÁ PRÁCE 2010 Pavel Ne²kudla

2 ƒeské VYSOKÉ UƒENÍ TECHNICKÉ V PRAZE Fakulta jaderná a fyzikáln inºenýrská Katedra matematiky DIPLOMOVÁ PRÁCE Zpracování dat z MRI Processing of MRI data Poslucha : Pavel Ne²kudla kolitel: Ing. Tomá² Oberhuber Akademický rok: 2009/2010

3 Na toto místo p ijde svázat zadání diplomové práce! V jednom z výtisk musí být originál zadání, v ostatních kopie.

4 ƒestné prohlá²ení Prohla²uji na tomto míst, ºe jsem p edloºenou práci vypracoval samostatn a ºe jsem uvedl ve²kerou pouºitou literaturu. V Praze dne 2. kv tna Pavel Ne²kudla

5 Název práce: Zpracování dat z MRI Autor: Pavel Ne²kudla Obor: Inºenýrská informatika / Tvorba softwaru Druh práce: Diplomová práce Vedoucí práce: Ing. Tomá² Oberhuber. Katedra matematiky, Fakulta jaderná a fyzikáln inºenýrská, ƒeské vysoké u ení technické v Praze Abstrakt: Cílem této práce je navrhnout a naprogramovat základ aplikace, která bude slouºit pro prohlíºení medicínských dat a pro provád ní operací nad t mito daty jako jsou r zné vizualizace, segmentace, apod. Vyvo ená aplikace umí pracovat se standardním medicínským obrazovým formátem DICOM. Oproti b ºn dostupným program m, které se zam ují zejména na vizualizaci a segmentaci dat, je tento navrºen v první ad za ú elem snadné manipulace s na tenými studiemi, moºnosti sestavovat obrázky studií do r zných uspo ádání (pro porovnávání snímk a pro vytvá ení prezentací) a moºnosti exportovat výsledky uspo ádání do obvyklých grackých formát PNG a AVI. Klí ová slova: MRI, DICOM, Qt, OpenGL. Title: Processing of MRI data Author: Pavel Ne²kudla Abstract: The goal of this work is to develop an application framework which will be used to view medical data and to perform some operations on this data such as visualization, segmentation, etc. The created application can open standard medical image format DI- COM. Compared to a common available software which is aimed especially at visualization and segmentation of data, this program is focused primarily on the easy manipulation with open medical studies, possibility of building the images of the studies into the various layouts suitable for comparing of images and for creating presentations. The created layouts can be exported to common graphical formats PNG and AVI. Key words: MRI, DICOM, Qt, OpenGL.

6 Obsah 1 Úvod 8 2 Magnetická rezonance Pouºití v medicín Stru ná historie MRI Princip MRI Nukleární magnetická rezonance [4] Rekonstrukce obrazu Za ízení MRI Nevýhody MRI DICOM Souborový formát DICOM Kontrast a jas obrazových dat Implementace programu Srovnání s exitujícími programy Knihovny a technologie pouºité p i vývoji aplikace Qt OpenGL DCMTK Cg a Cg Toolkit GLEW PLIB Architektura programu a popis funk nosti programu Gracké rozhraní D leºité komponenty, správci objekt Import dat Reprezentace obrazových dat v GUI Animace Export Dokumentace základních t íd aplikace Hierarchie t íd

7 5 Uºivatelská p íru ka programu DICOM Presenter Instalace v MS Windows První spu²t ní Na tení medicínských dat Pracovní plocha Ovládací panel Image Animace Export Záv r 63 A Sestavení (build) projektu ve Windows 69 A.1 DCMTK A.2 Plib A.3 Qt A.4 Seznam staticky linkovaných knihoven projektu DICOM Presenter A.5 Problémy vyskytujicí se p i spou²t ní programu v MS Windows

8 Kapitola 1 Úvod Úkolem této diplomové práce bylo naprogramovat základ aplikace umoº ující zobrazování a zpracování dat po ízených za ízeními magnetické rezonance. Pro dosaºení tohoto cíle byla stanovena následující osnova díl ních úkon : Seznámení se s magnetickou rezonancí (MRI) v medicín. Prostudování základ formátu DICOM a vytipování vhodných knihoven pracujících s tímto formátem pro pouºití v na²em programu. Seznámení se s programováním v prost edí KDE. Návrh a implementace základu aplikace pro prohlíºení a zpracování dat z MRI. Podn tem pro vznik takové aplikace byla spolupráce katedry matematiky FJFI s pracovi²t m radiodiagnostiky a interven ní radiologie institutu IKEM[1], zejména s tamn j²ím expertem v oblasti magnetické rezonance s panem Ing. Jaroslavem Tint rou, CSc.. Spole n s ním jsme postupn navrhovali poºadavky na program, který by m l usnadnit prohlíºení snímk z magnetické rezonance a jehoº základ m l být výsledkem mého usílí. Poºadavky byly sm rovány zejména na pohodlnost ovládání takového programu pro urychlení asto vykonávaných inností s medicínskými daty. V ideálním p ípad by m l na moji práci navázat vývoj p ídavných modul umoº ující následující funkcionalitu: Import dat Vytvo it modul, který dokáºe zpracovat soubory DICOM z adresá e, nebo je i na te ze sít, dále je pak p euspo ádá do nových adresá, které budou odpovídat jednotlivým pacient m, modalitám (typ m snímání) a zkoumanému objektu a soubory n jak logicky p ejmenuje. Zobrazování a Export Dal²í ástí programu by m l být prohlíºe DICOM soubor, který by umoºnil snadnou manipulaci s medicínskými snímky a jejich export do standardních grackých formát, p ípadn umoºnil tvorbu jednoduchých prezentací. Segmentace a dal²í metody zpracování obrazu Umoºnit tvorbu modul, které dovedou pracovat s obrazovými daty a vykonávat nad nimi r zné funkce. Nap íklad detekci hran, segmentaci a dal²í. 8

9 Mým úkolem bylo implementovat základ funkcionality bod 1 a 2. Import dat probíhá prozatím zjednodu²en a neumoº uje v²echny varianty, které pan Ing. Tint ra v pr b hu spolupráce postupn navrhoval. Já jsem se zam il zejména na druhý bod, který nejvíce vystihoval stanovené zadání práce a zárov jsem se p i návrhu a vývoji aplikace snaºil myslet i na budoucí integraci modul umoº ujících funkcionalitu segmentace a zpracování dat. 9

10 Kapitola 2 Magnetická rezonance Magnetická rezonance je metoda zaloºené na kvantovém fyzikálním principu, kdy jádra atom s jaderným spinem umíst ná v magnetickém poli dokáºí absorbovat elektromagnetické zá ení o ur ité (rezonan ní) frekvenci a po n jakou dobu toto zá ení vyza ovat zp t do prostoru. 2.1 Pouºití v medicín MRI je zkratka pro anglický termín Magnetic Resonance Imaging, coº v p ekladu znamená Medicínské zobrazování magnetickou rezonancí (MR). Jedná se o zobrazovací techniku pouºívanou v medicín zejména v diagnóze. V dne²ní dob je to jedna z nejp esn j²ích metod pro zobrazení struktur v lidském t le. Bohuºel její pouºití je je²t dnes spí²e okrajové a pouºívá se v t²inou aº jako up es ující metoda a to hlavn z d vodu velkých po izovacích náklad. Na rozdíl od CT, které vyuºívá radioaktivní rentgenové zá ení, MR vyuºívá elektromagnetického zá ení, u kterého dosud nebyly prokázány ²kodlivé ú inky. Spole n s detailností získaných snímk pak tato vlastnost pasuje magnetickou rezonanci na ²pici dne²ních medicínských zobrazovacích metod. Jedná se v t²inou o nejcitliv j²í metodu pro diagnostiku patologie m kkých tkání - tedy sval, ²lach, kloub, mozku, míchy, srdce a cév [2]. MR je zaloºena na principu jaderné magnetické rezonance (NMR) a kv li tomu se také ze za átku tato zobrazovací technika nazývala jaderná magnetická rezonance. Slovo jaderná v²ak ve ve ejnosti vyvolává pocit radioaktivního zá ení, a tak bylo z názvu odstran no. MR má mnoho r zných specializací. Jmenujme nap íklad: fmri (Functional MRI) Funk ní magnetická rezonance m í zm nu signálu v mozku zp sobenou zm nami nervové aktivity. Tu je moºné detekovat díky zvý²ené pot eb po kyslíku zapojených mozkových center. Jedná se o takzvaný BOLD (blood-oxygenlevel dependent) efekt. Dokáºe zobrazovat aº 800 snímk za vte inu MRA (Magnetic resonance angiography) MR angiograe je technika zobrazující snímky cév pro diagnostikování abnormálního zúºení p ípadn aneurysma (výdu 10

11 na tepn, která má v tomto míst vysoké riziko prasknutí). MRS(Magnetic resonance spectroscopy) MR spektroskopie m í r zné biochemické vlastnosti tkání v lidském t le bez nutnosti biopsie (fyzického odb ru vzorku). Díky ní je moºné získat informace o metabolismu nádor (jak nebezpe ný nádor je), zatímco pomocí MRI je moºné nádor pouze lokalizovat. 2.2 Stru ná historie MRI Historie MR sahá do roku 1946, kdy Felix Bloch a Edward Purcell objevili fenomén magneti-cké rezonance [3]. Aº do za átku 70.tých let se pak NMR pouºívala pro chemickou a fyzikální analýzu molekul. V roce 1971 pak Raymond Damadian ukázal, ºe relaxa ní doby rezonance v tkáních a nádorech se li²í, ímº odstartoval my²lenku pomocí MR diagnostikovat nemoci. V roce 1973 byl pak p edstaven první CT skener uºívající rentgenových paprsk a tím se ukázalo, ºe nemocnice jsou ochotné utratit velké mnoºství nancí za zobrazovací za ízení. Od té doby tedy do²lo k velkému rozvoji MRI. V roce 1975 Richard Ernt p edvedl zobrazování pomocí kódování fáze a frekvence a p evodu na obraz pomocí Fourierovy transformace. V roce 1977 Peter Manseld navrhl EPI (Echo-planar) techniku, která se b hem dal²ích let vyvinula do podoby, kdy je pomocí ní moºné produkovat snímky s rychlostí aº 30ms na snímek. Lze tedy sledovat struktury v lidkém t le v reálném ase. První snímky z MR se vytvá ely n kolik minut. V roce 1986 se pak as pro vytvo ení kvalitního snímku zkrátil p ibliºn na 5 sekund. 2.3 Princip MRI Zobrazování pomocí magnetické rezonance se d lí na dv ásti. První z nich je ist fyzikální (princip magnetické rezonance jaderných nuklid ) a druhá je matematická (získání prostorového obrazu a jeho zpracování). Za n me p iblíºením fyzikálního principu MR. 2.4 Nukleární magnetická rezonance [4] Kaºdý proton, neutron a elektron má vlastnost, které se íká jaderný spin. Spin m ºe nabývat hodnot, které jsou celo íselnými násobky hodnoty 1/2. M ºe být kladný i záporný. Spin protonu si lze p edstavit jako vektor magnetického momentu, který zp sobuje, ºe se proton chová jako malý magnet s jiºním a severním pólem. Pokud je tento proton umíst n ve vn j²ím magnetickém poli, pak se spinový vektor zarovná do sm ru tohoto vn j²ího pole a to ve dvou moºných stavech. V nízkoenergetickém stavu je orientován ve sm ru a ve vysokoenergetickém stavu proti sm ru tohoto pole. Dv ástice s opa ným spinem mají celkový magnetický moment rovný 0. V MR nás tedy zajímají nepárové jaderné spiny. Ve vn j²ím magnetickém poli m ºe ástice se spinem p ijmout foton o ur ité frekvenci ν (rezonan ní, Larmorova frekvence), která závisí na velikosti vn j²ího magnetického pole B 11

12 a gyromagnetickém pom ru γ, který je konstantní pro kaºdou látku. Pro vodík je γ = 42.58M Hz/T. Vodík je také v t²inou prvkem, který nás p i vy²et ení magnetickou rezonancí zajímá. Je totiº obsaºen ve vod tvo ící v t²inu hmoty lidského t la. P íjmem energie fotonu p echází ástice mezi dv ma spinovými stavy. Pokud je ástice ve stavu s niº²í energií a p ijme foton, pak p ejde do stavu s vy²²í energií. Pokud je ve stavu s vy²²í energií pak p ejde do stavu s niº²í energií. Aby k tomuto efektu do²lo, tak energie fotonu E musí být rovna p esn energetickému rozdílu obou stav. E = hν = hγb, kde h je Planckova konstanta. Z toho plyne, jak lze p i konstantním magnetickém poli B vypo ítat frekvenci fotonu pro daný prvek. Typicky se tato frekvence v MR pohybuje mezi MHz. Ze souboru spin ve vn j²ím magnetickém poli se jedny zarovnají do stavu s niº²í energií (jejich po et ozna íme N + ) a zbylé do stavu s vy²²í energií (N ), p i emº p i pokojové teplot je po et N + lehce v t²í neº N. Podle Boltzmannovy statistiky totiº platí: N + /N = exp( E/kT ), kde E je energie mezi dv ma energetickými stavy, k je Boltzmannova konstanta a T je teplota v Kelvinech. Výsledný vektor magnetizace ve spinovém souboru je pak úm rný rozdílu (N + N ). Tím pádem je tomuto rozdílu úm rná i síla signálu nam ená za ízením MR. Síla signálu je dále ovlivn na p irozenou etností izotopu a biologickou etností m eného prvku. P irozená etnost izotopu je pom r výskytu daného izotopu prvku v p írod v i ostatním izotop m. Biologická etnost je pom r výskytu daného prvku oproti zbývajícím prvk m v lidském t le. Sou et vektor magnetizace v ur itém souboru spin se nazývá sí ová magnetizace. Sm r sí ové magnetizace a sm r externího magnetického pole v rovnováºném stavu je stejný a to podle pouºívané konvence rovnob ºný s osou Z. Vektor magnetizace v rovnováºném stavu je ozna ován M 0, tedy podélná magnetizace M Z = M 0. P í né sloºky M X a M Y jsou v tuto chvíli nulové. Vystavením spinového systému elektromagnetickému vln ní o frekvenci p íslu²né p echodu mezi spinovými stavy je moºné m nit vektor sí ové magnetizace. Pokud je energie dostatek je moºné u init M Z = 0. Toho lze docílit takzvaným 90 RF impulsem. Doba, kterou trvá návrat sloºky M Z do p vodního rovnováºného stavu M Z = M 0, je spjata s takzvanou T 1 relaxa ní dobou. To je doba, kterou trvá zm na podélné magnetizace sm rem k jejímu rovnováºnému stavu o faktor e. Proces návratu je popsán následující rovnicí. M Z = M 0 /(1 exp( t/t 1)) Promítnutím vektoru magnetizace do roviny XY zjistíme, ºe se stá í kolem osy Z rychlostí p íslu²né Larmorov frekvenci. Jedná se o takzvanou precesi. Doba popisující návrat p í né magnetizace M XY do rovnováºného stavu se nazývá T 2 relaxa ní doba. M XY = M XY0 exp( t/t 2)) 12

13 T 2 je vºdy men²í nebo rovna T 1. V principu jde tedy o to vybudit precesi vektor magnetizace, ehoº lze dosáhnout oscilujícím elektromagnetickým impulsem o frekvenci rovné Larmorov frekvenci (rezonance). Precedující magnetické vektory se následn stá í po spirále do p vodní podélné orientace po jistou dobu, po kterou vydávají signál detekovatelný v cívkách kolem zkoumaného objektu. Pro získání informace o struktu e látky se m í asy T1 a T Rekonstrukce obrazu Pro obrazovou rekonstrukci je pot eba prostorov lokalizovat zdroj signálu. K tomu jsou pouºity takzvané gradientní cívky, které vytvá ejí gradientní magnetické pole. Jedná se nap íklad o lineární gradientní magnetické pole. To zp sobí nehomogenitu p vodního pole B, ale známými podn ty, díky emuº lze pak ur it prostorové sou adnice zdroje signálu. Díky tomuto poli mají totiº spiny v r zných pozicích r znou Larmorovu frekvenci danou roz²í ením p vodní Larmorovy rovnice o nový len G p íslu²ející gradientnímu poli. E = hν = hγ(g + B) Nyní tedy sta í zkoumaný soubor spin vybudit elektromagnetickým impulsem o ur itém spektru frekvencí a v anténních cívkách detekovat signál, který odpovídá rezonancím na ur ité frekvenci. Signál detekovaný na anténách (chovající se podle rovnice pro T1) je p eveden do frekven ní domény, z které lze zjistit na jakých frekvencích zkoumaný vzorek rezonoval (kde se objevily ²pi ky v amplitud ). P evod mezi doménami se provádí rychlou Fourierovou transformaci. V p ípad pouºití lineárního gradientního magnetického pole pak osa frekvencí p esn odpovídá prostorové ose a to díky lineárnímu vztahu v Larmorov rovnici. Víme tedy s jakou silou v jaké vzdálenosti od antény zkoumaný vzorek reagoval. Tím dostáváme obrazovou informaci v jedné dimenzi. Pro zjednodu²ení, zejména v p ípadech více rozm r, se zavádí takzvaný k-space formalismus. Jeho podstatu a význam si p edvedeme na jednodimenzionálním p íkladu, kdy je gradientní pole orientované ve sm ru osy Z. Nejprve se magnetickým polem B 0 zarovnají sm ry magnetických moment spin ve sm ru osy Z, poté jsou vybuzeny oscilujícím elektromagnetickým impulsem a za nou vykonávat precesní pohyb v rovin XY o Larmorov frekvenci, která je r zná v závislosti na pozici. Úhel, který svírá vektor v rovin XY s osou X se nazývá fáze a ten lze také popsat takzvaným fázorem, vektorem fáze exp(ıγ(b 0 + Gz)t. Fázory jsou zpo átku pro v²echny magnetické momenty celého spinového souboru stejné, ale s postupem asu se jejich fáze v d sledku r zných frekvencí rozhodí a pozice fázoru v prostoru pak leºí na k ivce zvané ²roubovice, p i emº vzdálenost mezi jejími závity se s asem zmen²uje (zv t²ují se rozdíly ve fázích). Tato vzdálenost se nazývá vlnovou délkou ²roubovice a je ozna ována λ. Zde se práv zavádí veli ina prostorové frekvence k = γgt a platí k = 2π/λ s jednotkou m 1, odkud plyne název prostorové frekvence. Signál, který je nam en na cívkách je pak roven: S(k) = ρ(z) exp(ıkz)dz, 13

14 kde r(z) je rozloºení hustoty spin podél osy Z, které mají své fázové vektory exp(ıkz). Fourierovou transformací signálu získáme ρ(z), které odpovídá obrazové informaci. V p ípad, ºe je pole ovlivn no více gradientními poli, pak je jejich sou et vektorové pole G, prostorová frekvence je vektor k = γgt a signál je roven: S(k) = ρ(r) exp(ıkr)dr, kde r je vektor pozice spinu. Vícerozm rný obraz lze pak získat pomocí vícerozm rné Fourierovy transformace. 2.6 Za ízení MRI Jednotka MRI obsahuje ídící po íta a samotné skenovací za ízení. Po íta zpracovává data od skeneru a pomocí rychlé Fourierovy transformace rekonstruuje snímky v reálném ase. Kaºdé snímací za ízení obsahuje silný magnet, vytvá ející homogenní pole. Ty se d lí na následující typy: Odporové Jsou to b ºné elektromagnety tvo ené mnoha vinutími cívky. Pr chodem elektrického proudu pak vzniká magnetické pole. Tyto magnety mají men²í náklady na konstrukci oproti supravodivým, ale velké nároky na elektrickou energii pro jejich provoz kv li odporu vodi. B ºn se pouºívají jen pro slabá magnetická pole kolem 0.3 Tesla. Permanentní Tyto magnety mají trvalé magnetické pole, takºe mají nízké náklady na provoz. Jejich problémem je hlavn vysoká hmotnost. Pro sílu magnetického pole 0.4 Tesla váºí mnoho tun. Siln j²í pole by vyºadovalo magnety tak t ºké, ºe by byl problém je zkonstruovat. Supravodivé Supravodivé magnety jsou nejpouºívan j²ími magnety v MR. Jsou podobné odporovým magnet m, jen drátové vinutí je uchováváno v tekutém heliu p i asi 270 C. Tento obrovský chlad je v²ak dob e izolován vakuem, takºe pacient ho necítí. Takto nízká teplota drát sníºí jejich odpor aº na nulu, coº dramaticky sníºí pot ebu elektrické energie a tím i náklady na provoz. Konstrukce takových systém, které dokáºou generovat pole v rozmezí Tesla, je stále velmi drahá, ale s takto výkonými magnetyje moºné dosáhnout mnohem v t²í obrazové kvality. Dal²í ástí MRI jednotky jsou radiofrekven ní cívky, které vysílají nebo p ijímají elektromagnetický signál. Slouºí jednak k vybuzení magnetické rezonance, dále jako antény p ijímající signál a také jako modikátory magnetického pole v cílovém prostoru. D lí se na objemové, gradientní, vyrovnávací a povrchové. 2.7 Nevýhody MRI V okolí skeneru p sobí silné magnetické pole (v p ípad supravodivých a permanentních magnet neustále). Je tedy nebezpe né mít v dosahu magnetické p edm ty, protoºe by mohlo dojít k takzvanému projektilovému efektu, tedy vyst elení p edm t sm rem 14

15 do magnetu. Pacient nesmí mít p i vy²et ení v t le ºádné kovové implantáty. Ty by zp - sobily nehomogenitu magnetického pole a tím i artefakty ve výsledném obraze. Dal²í nevýhodou jsou pak nep íjemnosti, kterým musí pacienti b hem vy²et ení elit. Ty josu spojené s vysokým hlukem zp sobeným vysíláním RF impuls. Dále také nutnost být nehybn v malém uzav eném prostoru po dlouhou dobu, coº m ºe být velice nep íjemné a v p ípad n kterých úraz i velmi bolestivé. Dále je pak nemoºné vy²et it pacienty trpící klaustrofobií, pro které je v poslední dob k dispozici takzvané otev ené MRI. Obrázek 2.1: Skenovací za ízení MR. 15

16 Obrázek 2.2: Sagitální snímek mozku získaný magnetickou rezonancí. 16

17 Kapitola 3 DICOM DICOM je zkratka anglického termínu The Digital Imaging and Communications in Medicine. Jedná se o standard vytvo ený asociací NEMA (National Electrical Manufacturers Association) v roce 1993 pro usnadn ní distribuce a zobrazování medicínských dat po ízených snímacími metodami, jako jsou CT, MRI a ultrazvuk [5]. Jednotlivé typy snímacích metod se ozna ují jako modality. Standard je velmi rozsáhlý a d lí se na n kolik ástí. Jsou v n m denovány zp soby skladování medicínských dat a zp sob jejich správy, nap íklad mazání, archivování a sdílení dat v síti. Medicínská za ízení jasn deklarují, které ásti DICOM formátu podporují (takzvaný conformance statement). Sluºby nabízené standardem DICOM [6]: Skladování Skladovací sluºba je pouºívána k uloºení snímk nebo dal²ích uchovatelných objekt jako jsou r zné záznamy a dokumenty do systému PACS nebo na pracovní stanici. PACS je zkratka anglického termínu Picture Archiving And Communication System a jedná se o kombinaci hardwaru a softwaru umoº ující digitální uchování dat. Potvrzení uskladn ní Tato sluºba je ur ena k tomu, aby klientovi (SCU - Service Class User) potvrdila, ºe se na serveru (SCP - Service Class Provider) provedlo uskladn ní dat na n jaké trvalé záznamové médium (nap. CD), aby klient mohl u sebe data bezpe n smazat. Dotaz/Vrácení Pomocí této sluºby se m ºe klient dotázat PACS systému na seznam studií nebo jiných objekt a ten je klientovi vrátí. Modality Worklist Sluºba usnad ující konkrétnímu zobrazovacímu za ízení (modalit ) získat informace o pacientov provedených a plánovaných vy²et ení v elektronické podob. Tisk Tisková sluºba slouºí k posílání obrázk na DICOM tiskárnu, která tiskne rentgenový snímek. Ve standardu DICOM ást 14 je denována standardní kalibrace tisku, která pomáhá zachovat konzistenci obrazu na r zných zaºízeních. 17

18 Oine media - DICOM soubory Sluºba umoº ující skladování medicínských dat na r zná vým nná úloºi²t dat. 3.1 Souborový formát DICOM ƒást 10 standardu DICOM popisuje souborový formát pouºívaný pro distribuci obrazových dat. Tento formát pochází z p vodní specikace formátu NEMA a je b ºn ozna ován jako souborový formát DICOM. V tomto souboru je obsaºena hlavi ka s informacemi a obrazová data zárove. Tím je na rozdíl od jiných formát zaru eno, ºe se chybnou manipulací neodd lí informace od obrázku. V hlavi ce jsou uloºeny informace o po ízené studii jako jsou jméno pacienta, obrazové informace, typ snímacího za ízení. Obrazová data v souboru mohou být uloºena bu v b ºném formátu, nebo komprimovan pro u²et ení místa. Tato komprese m ºe být bu ztrátová pomocí JPEG nebo bezztrátová RLE (Run Length Encoding) jako je ve formátu TIFF. Prvních 128 byt souboru je prázdných a následují za nimi písmena D, I, C, M. Poté následují informace hlavi ky, které jsou rozd leny do takzvaných skupin. V kaºdé skupin se pak vyskytuje n kolik prvk p íslu²ejících dané skupin. Dvojice skupina:prvek se identikuje dvojicí hexadecimálních ísel. Nap íklad 0002:0010 je prvek Transfer syntax unique identification a obsahuje popis uloºení obrazových dat v souboru, jako je pouºitá komprese. Kódy hodnot pro tento prvek jsou denovány v ásti 5 standardu DI- COM. Krom komprese ur uje tato hodnota také po adí byt hodnoty pixelu v surových datech. azení byt m ºe být bu Big Endian nebo Little Endian [7]. To je d leºité v p ípad, ºe pro jeden pixel obrazových dat je pouºito více neº jednoho bytu. M ºe se stát, ºe pro danou architekturu bude pot eba po adí byt p ehodit. Dal²í informace o obrazu jsou ve skupin Prvky této skupiny jsou nap íklad po et vzork na pixel, po et alokovaných bit, fotometrická interpretace a dal²í. Fotometrická interpretace p i azuje hodnotám pixel barevné hodnoty. Ve v t²in p ípad bývá spojitá monochromatická, tzn. s mnoha stupni ²edi. Takový obrázek má jeden vzorek na pixel. V t²inou jsou hodnoty vzorku 12-ti bitové nebo 32-ti bitové. Dále mohou být pouºity i barevné interpretace (RGB, CMYK, paleta). Nap íklad RGB interpretace pouºívá 3 vzorky na pixel. Barva pak m ºe nabývat aº 16 milion r zných hodnot. Dále je také moºné denovat vlastní prvky pro uchování pot ebných informací souvisejících s danou studií. V DICOM sv t m ºe mít kaºdý pacient n kolik DICOM studií, z nichº kaºdá m ºe sestávat z n kolika sérií. Tyto série v t²inou korespondují s jedním typem dat (s jednou modalitou). 3.2 Kontrast a jas obrazových dat V oblasti medicínského zobrazování se v p ípad kontrastu a jasu obrázku hovo í o takzvaném st edu a ²í ce okna, z anglického Window Center:Width. A o zm n kontrastu a jasu jako o okn ní. Hodnoty ²í ky a st edu okna lze v n kterých p ípadech povaºovat za standardní, kalibrované. Nap íklad, kdyº jsou snímky hlavy nasnímány s hodnotami pixel v rozmezí , tak okno nastavené na C:W = 50:530 zobrazuje dob e m kké 18

19 tkán, zatímco C:W=400:2000 zobrazuje lebe ní kosti. Problém u MRI dat je, ºe hodnoty pixel bývají relativní pro dané m ení, a tak hodnoty nastavení C:W nemusí pasovat na stejné tkán mezi r znými studiemi. Obrázek 3.1: R zná nastavení jasu a kontrastu 19

20 Kapitola 4 Implementace programu 4.1 Srovnání s exitujícími programy V dne²ní dob je dostupné mnoho program pro zpracování medicínských snímk. V t²ina z nich je komer ních a velmi drahých. Dále existují i voln dostupné aplikace. Jmenujme ty kvalitn j²í, nap íklad: OsiriX [8] Velmi dob e propracovaný projekt. Bohuºel pouze pro platformu Mac OS, která není p íli² vhodná k poºadovaným ú el m. Medinria [9] Také voln dostupný software, který nabízí mnoho funkcí. Je dostupný pro platformy Linux a Windows, coº jsou i cílové platformy tohoto projektu, av²ak nenabízí poºadovanou funkcionalitu. Poslední stabilní verze pochází ze zá í MRICron [10] Program specializující se zejména na zobrazování snímk mozku. Jeho nativním formátem není DICOM. Dále existuje mnoho program, které jsou na funkce pom rn chudé, jejich uºivatelské prost edí není p íli² p ív tivé a navíc se ve velké v t²in jedná o jednoú elov zam ené projekty, které nem ly dlouhou ºivotnost a pro poºadované ú ely jsou op t nepouºitelné. P i návrhu a vývoji mého programu zpracovávajícího data z medicínských studií jsem postupoval p edev²ím podle poºadavk kladených pracovi²t m magnetické rezonance institutu IKEM. P estoºe na trhu existuje celkem velký výb r program, tak ºádná z komer ních aplikací nasazených v institutu IKEM ani ºádná ze jmenovaných voln dostupných aplikací nevyhovuje t mto poºadavk m. T mi jsou zejména moºnost libovoln rozloºit obrázky medicínských studií na pracovní plo²e, aby bylo moºné snímky mezi sebou snadno porovnávat a p ípadn vyexportovat. Ve v t²in existujících program jsou k dispozici pouze vzorová rozloºení snímk na pracovní plo²e (nap. 2x2 obrázky), p i emº obrázky reprezentují zpravidla 4 r zné pohledy na stejnou medicínskou studii (viz. obr. 4.1). Hlavním cílem tohoto projektu bylo tedy 20

21 Obrázek 4.1: Rozloºení obrázk typické pro v t²inu program. Vlevo naho e axiální ez, vpravo naho e sagitální ez, vlevo dole koronální ez a vpravo dole bývá trojrozm rné zobrazení. V tomto p ípad je zde op t sagitální ez. poloºit základ aplikace, která by umoº ovala uºivateli pln kontrolovat rozmíst ní obrázk libovolných studií na pracovní plo²e. Rozmís ování snímk na plo²e by m lo být jednodu²e ovladatelné a uºivatelsky p ív tivé. Stejn tak by m lo být snadné provád t základní transformace obrazových dat zp sobem, který je standardní ve v t²in existujících produkt a to za pomoci my²i. Pohybem my²i p i stisknutém levém tla ítku se v t²inou posunuje obrázek, p i stisknutém prost edním tla ítku se uskute uje zm na m ítka obrázku a podobn probíhá i takzvané okn ní, tj. zm na kontrastu a jasu, p i stla eném pravém tla ítku. Poºadavky na aplikaci jsou shrnuty do následujících bod : 1. Zvolit postupy a knihovny pro vývoj aplikace, aby b ºela v prost edí KDE v OS Linux. Opera ní systém Linux byl zvolen pro své vysoké moºnosti vyuºití výkonu po íta e a pro svou cenovou dostupnost. 2. Navrhnout framework umoº ující sestavovat obrázky do libovolných uspo ádání na pra- 21

22 covní plo²e. 3. Implementovat základní transforma ní funkce nad obrazovými daty medicínské studie. Jedná se o barevné transformace, posun a ²kálování obrazu. Umoºnit plynulý p echod mezi jednotlivými snímky (nap. po sob jdoucími ezy v prostoru) celé studie. 4. V aplikaci zobrazovat základní údaje o medicínské studii získané z DICOM hlavi ky jako jsou velikost snímku, rozli²ení obrazových dat, sou adnice ezu, a dal²í. 5. Umoºnit vytvá ení animací medicínských studií a jejich vzájemnou synchronizaci. Tato funkcionalita je vhodná nap íklad pro porovnávání probíhajících svalových kontrakcí, nebo pozorování p esunu tekutin v r zných oblastech stejného orgánu. 6. Implementovat export výsledk do standardních grackých formát (PNG, AVI). Z vytvo ených soubor je pak nap íklad moºné snadno vytvá et prezentace. 4.2 Knihovny a technologie pouºité p i vývoji aplikace V této ásti se seznámíme s knihovnami, které jsem se rozhodl p i vývoji své aplikace pouºít, abych mohl docílit spln ní vý²e vytý ených poºadavk. Uvedu také alternativy, které p ipadaly v úvahu a jaké byly jejich nevýhody oproti zvolenému e²ení Qt Qt [11] je multiplatformní framework pouºívaný mnoha programy zejména pro tvorbu uºivatelského rozhraní (GUI). Podporovanými platformami jsou GNU/Linux, MS Windows, Mac OS X, Symbian S60 (t etí edice), Java nebo vestav né (embedded) systémy, coº jsou jednoú elové systémy nap íklad pro obsluhu bankomat. Nejrozsáhleji je Qt pouºito v prost edí KDE, coº je gracké desktopové prost edí pro Linux a dal²í unixové opera ní systémy. Dal²ími známými aplikacemi vyuºívající Qt jsou Google Earth, Opera, Skype, VirtualBox, a dal²í. Knihovna Qt se za ala vyvíjet v roce První dv verze Qt byly dostupné pouze ve dvou variantách: Qt/X11 pro Unix a Qt/Windows pro Windows. Verze pro Windows byla vydána pouze v proprietární licenci, a tak volné/open source aplikace napsané v Qt pro X11 nemohly být p eneseny na Windows bez zakoupení proprietární licence. Proprietární software je software, jehoº autor upravuje licenci k jeho pouºívání. Jeho zdrojové kódy nebývají dostupné a obvykle spadá do komer ního softwaru. Úpravy funkcionality programu tak m ºe provád t pouze autor. GPL licence Qt pro Windows byla vydána aº v ervnu 2005 s vydáním Qt verze 4. Podpora pro Mac OS X v proprietární licenci byla p idána v roce 2001 v Qt verzi 3.0 a v roce 2003 v Qt 3.2 se objevila i GPL licence. Do roku 2008 stála za vývojem Qt norská spole nost Trolltech ASA. V lednu 2008 ji koupila nská rma NOKIA a p ejmenovala Trolltech na Qt software. Po tomto odkoupení se NOKIA zam ila na vývoj pro platformy jejích za ízení. Qt se tak objevilo na platformách Symbian OS (t etí edice) a Maemo. 22

23 Po celou dobu existence bylo Qt dostupné v komer ních licencích, které umoº ovaly vývoj proprietárních aplikací bez omezení na licence. Zárove k tomu se objevovalo stále nové mnoºství volných licencí. V sou asnosti je Qt dostupné pod licencí GNU LGPL, která jej umoº uje pouºít jak v proprietárním, tak volném softwaru. Qt není jedinou multiplatformní knihovnou pro tvorbu uºivatelského rozhraní (GUI). Existují i dal²í knihovny jako jsou Universe i GTK+, které vyuºívá druhé nejroz²í en j²í gracké prost edí Linuxu GNOME. GTK+ bylo p vodn napsáno pro rastrový gracký editor GIMP a je na rozdíl od Qt psáno v jazyku C. Qt je psáno v C++ a pouºívá vlastní renderovací (vizualiza ní) jádro snaºící se na kaºdé platform renderovat (vykreslovat) graku p íslu²nou danému vzhledu platformy. Krom snadného vytvá ení GUI usnad uje toolkit Qt i práci s XML soubory, vlákny, SQL a sí ovým rozhraním. Dále také obsahuje podporu kreslení SVG (kontrétn ve verzi tiny) a podporu OpenGL. GUI Gracké rozhraní aplikací se tvo í za pomocí takzvaných Qt widget (Widget je anglický termín pouºívaný pro prvek okna (zkratka pro anglický termín Windows gadget)). Jedná se o standardní objekty uºivatelského rozhraní, jako jsou okno aplikace, dialogové okno, edita ní (textové) pole, tla ítko a dal²í sloºit j²í objekty. Následuje p íklad velmi jednoduché aplikace napsané pomocí Qt. Jedná se o typickou aplikaci Hello world!. Okno aplikace je v tomto p ípad tvo eno jediným widgetem a to tla ítkem t ídy QPushButton. #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("hello world!"); hello.resize(100, 30); } hello.show(); return app.exec(); Výstup programu je na obrázku 4.2. Podpora OpenGL Nezanedbatelnou dobu jsem strávil nad otázkou, jak umístit do hlavního okna aplikace Qt n jaký widget, jehoº gracký obsah by byl vykreslován pomocí OpenGL. Uvaºoval jsem 23

24 Obrázek 4.2: Výstup ukázkové Qt aplikace. i o moºnosti, ºe okno pro renderování OpenGL graky by bylo na zbývajícím rozhraní aplikace úpln nezávislé. Pro sv j program jsem pot eboval najít zp sob, jak co nejrychleji vykreslovat obrázky medicínských snímk. OpenGL jsem byl nucen pouºít proto, ºe se jedná v podstat o jedinou pouºitelnou multiplatformní knihovnu pracující s grackými akcelerátory. Propojení GUI tvo eného v Qt s OpenGL jsem se nejprve snaºil dosáhnout za pomocí knihovny SDL (Simple DirectMedia Library). Tu jsem zvolil zejména proto, ºe jsem s ní jiº m l n jaké zku²enosti a v podstat se jedná o nadstavbu nad OpenGL, pomocí které se snadno inicializuje subsystém OpenGL a ve které se snadno pouºívají textury. SDL také zahrnuje podporu renderování truetype font (v modulu SDL_ttf). Gracký výstup OpenGL se mi poda ilo umístit na poºadovanou pozici na obrazovce a byl jsem schopen do n j i renderovat textury pouºitím funkcí a procedur OpenGL API. ƒasto se v²ak vyskytoval problém s blikáním obrazu a také s odchytáváním událostí generovaných my²í a klávesnicí, které byly odchytávány subsystémem SDL a ne Qt widgety. Za al jsem tedy zji² ovat, zda neexistuje jiná a také mén komplikovaná moºnost, jak renderovat obsah OpenGL na Qt widgety. Pak jsem objevil v bec tu nejjednodu²²í moºnost (coº se ukázalo pozd ji), jak toho docílit. Toho, ºe Qt obsahuje modul pro práci s OpenGL jsem si v dom byl, ale domníval jsem se, ºe jeho pouºití nebude tak snadné, jaké nakonec bylo. V Qt GUI totiº existuje widget, jehoº graka je p ímo renderována pomocí OpenGL. Jedná se o widget QGLWidget. Ten na rozdíl od ostatních widget nepouºívá pro svoje vykreslení funkcí objektu QPainter, ale nechává svoje vykreslení na uºivateli, který implementuje funkci paingl(), v níº lze pouºívat libovolné funkce OpenGL API a gracký výstup je automaticky umíst n na plochu widgetu. Te jiº jen zbývalo nau it se základy OpenGL a mohl jsem renderovat obsah textur na poºadovaná místa okna aplikace. Ze za átku jsem pouºíval standardní postup p i práci s texturami, který je pom rn komplikovaný, zejména proto, ºe je ist procedurální. Od verze 4.2 obsahuje Qt i objekt QGLFramebufferObject zapouzd ující funkcionalitu textury OpenGL do objektu Qt knihovny. Pouºitím tohoto objektu se p vodn celkem náro ná (zejména na mnoºství kódu) práce s texturami stala pom rn snadnou a intuitivní. Zmizely také n které problémy, které se vyskytovaly p i testování aplikace na r zném hardwaru patrn kv li barevným formát m textur. V programu pouºívám QGLFramebufferObject v objektech t íd CGLImage a CGLWorkspace. Mezi hlavní výhody tohoto objektu pat í také implementovaný export textury do souboru. Shr me si tedy d vody, pro jsem se rozhodl knihovnu Qt pouºít. Prvním d vodem je, ºe tato knihovna je podporována na cílových platformách opera ních systém Linux a 24

25 MS Windows. Na rozdíl od knihovny GTK+ je tato objektová a psána v C++. V sou asné dob navíc za jejím vývojem stojí silná rma NOKIA, která hodlá Qt pouºívat na svých za ízeních, coº zaru uje pokra ování jejího dal²ího rozvoje. Pro Qt hovo í také její stále se zlep²ující podpora pro OpenGL OpenGL OpenGL (Open Graphics Library) je standardní specikace pro multiplatformní API (zkratka pro Application programming interface) ur eného pro psaní aplikací vyuºívajících 2D a zejména 3D po íta ovou graku [12][13]. Knihovna OpenGL byla vyvinuta rmou Silicon Graphics Inc. (SGI) v roce 1992 a pouºívá se na poli po íta ových her, virtuální reality, CAD systém, vizualizace dat, atd. OpenGL slouºí zejména k následujícím dv ma ú el m: Prvním je usnadnit p ístup k funkcím jednotlivých rozdílných 3D akcelerátor pomocí jednotného rozhraní. Druhým je zprost edkovat uºivateli stejné sady funkcí na v²ech platformách dle ur ité specikace. V p ípad, ºe daný 3D akcelerátor funkci nepodporuje p ímo na úrovni hardwaru, pak je tato emulována softwarov. Návrh OpenGL OpenGL pracuje jako stavový automat, který se v oblasti po íta ové graky ozna uje jako graphics pipeline (zobrazovací et zec). Jeho stav je ovliv ován pomocí sady procedur, které ur ují, jakým zp sobem budou vstupní data (gracká primitiva) zpracována, p etransformována a nakonec zobrazena do výstupního za ízení. Základními grackými primitivy jsou body, úse ky, polygony a bitmapy (obdélníky s pixely). Základní popis funkcionality v renderovacím et zci (graphics pipeline): 1. Zpracování vstup na gracká primitiva. Roli zde hrají funkce vy íslující r zné polynomiální funkce, které denují vstupní geometrii (NURBS povrchy, k ivky, atd.). Výstupem jsou vertexy (body v 3D prostoru). 2. Operace na vertexech, tj. transformace a osv tlování v závislosti na materiálech, o ezání oblastí mimo viditelnou ást. Výstupem jsou tedy op t vertexy. 3. Rasterizace. Konverze vertex na pixely (projekce na 2D m íºku) pomocí interpola ních algoritm. Pixely se v OpenGL terminologii ozna ují jako fragmenty. 4. Operace na fragmentech, tj. úpravy barevných hodnot. Nap íklad ztmavení, nebo mlºení na základ hloubkového bueru. Buer je druh pam ti, která je pouºívána v t²inou k do asným ú el m. 25

26 5. Nakonec se fragmenty uloºí do framebueru. Framebuer je obrazové výstupní za- ízení, které p ená²í obrazovou informaci z vyrovnávací pam ti (bueru) a obsahuje práv jeden kompletní rámec dat (frame). Extensions - roz²í ení v OpenGL specikaci Standard OpenGL umoº uje výrobc m grackého hardwaru zprost edkovat dal²í funkcionalitu mimo standard OpenGL pomocí takzvaných roz²í ení (extensions). V t chto roz²í eních mohou být zavedeny nové funkce i konstanty. Kaºdý výrobce pro ozna ení svých nových konstant a funkcí pouºívá zkratku uvedenou v jejich názvu a také v pojmenování vlastního roz²í ení. Nap íklad ATI pouºívá zkratku ATI a nvidia NV. ƒasto se také stane, ºe se výrobci shodnou na stejném roz²í ení. Takové roz²í ení má pak zkratku EXT. Pokud pak toto roz²í ení standardizuje Architecture Review Board (konsorcium spravující standard OpenGL), pak se pouºívá zkratka ARB. Prvním takovým roz²í ením bylo GL_ARB_multitexture, uvedené ve verzi Ve verzi 1.3 pak p estalo být roz²í ením a stalo se sou ástí jádra OpenGL. P ed pouºitím roz²í ení je pot eba zjistit, zda je podporováno na daném grackém akcelerátoru a následn získat ukazatele na p ípadné funkce denované v tomto roz²í ení. Tyto úkony jsou usnadn ny nap íklad pouºitím toolkit jako jsou GLEW a GLEE. Specikace tém v²ech roz²í ení je k dispozici v ociálním registru [14]. Historie Na za átku 90.tých let byla rma Silicon Graphics (SGI) nejvlivn j²í na poli 3D graky pracovních stanic. Jejich IRIS GL API bylo povaºováno za v té dob nejmodern j²í a snadno pouºitelné renderovací API. Konkurence SGI byla v té dob postavena okolo PHIGS standardu, za kterým stály rmy Sun Microsystems, Hewlett-Packard a IBM. Aby si SGI upevnilo pozici na trhu s 3D hardwarem rozhodlo se p em nit IrisGL API na otev ený standard. Samotné IrisGL API nebylo podle SGI úpln vhodné k t mto ú el m (obsahovalo i API netýkající se graky) a tak byl vydán nový standard a to OpenGL. Tímto krokem byl standardizován p ístup k grackému hardwaru a bylo zodpov dností výrobc hardwaru vyvinout ovlada e za ízení podporující tento standard. V roce 1992 inicializovalo SGI zaloºení OpenGL architectural review board (OpenGL ARB), skupiny rem, které se m ly starat o OpenGL specikaci a roz²i ovat ji. Jedinou sou asnou konkurencí OpenGL je DirectX od Microsoftu, které je v²ak podporováno pouze na OS MS Windows. V letech spolupracovali SGI, Microsoft a Hewlett-Packard na projektu, který m l sjednotit OpenGL a Direct3D, který byl ale z r zných d vod ukon en. Materiály vhodné pro za ínající OpenGL vývojá e jsou k dispozici na ociálních webových stránkách OpenGL [15] DCMTK DICOM toolkit [16] je soubor nástroj a knihoven implementujících velkou ást standardu DICOM. Tuto knihovnu pouºívám pro na ítání dat soubor ve formátu DICOM. 26

27 V souboru jsou obsaºeny jak obrazová data tak hlavi ka obsahující r zné informace získané b hem vy²et ení. Pomocí API DCMTK knihovny je moºno p istupovat k ob ma druh m informací. Co se tý e hlavi ky, tak je moºné dotazovat se na hodnoty parametr jako jsou velikost a rozli²ení obrazových dat, informace o pacientovi, informace o snímacím za- ízení a dal²í (viz [5]). Pro obrazová data obsahuje knihovna podporu dekódování r zných kompresních formát, nap íklad JPEG. Výhodou této knihovny je op t multiplatformnost, Open-source licence, obsáhlá dokumentace a asi nejrozsáhlej²í implementace standardu DICOM. Dal²í knihovnou pro práci s formátem DICOM je nap íklad gdcm [17], která je ale více zam ena zejména na souborový formát DICOM ( ást 10 standadu DICOM). Zejména první verze knihovny byla orientovaná pouze na obrazovou informaci DICOM soubor. Od roku 2008 je ve vývoji nová verze gdcm 2.xx slibující ²ir²í podporu standardu a patrn by stála za podrobn j²í prozkoumání. Dále také existují kompletní toolkity s podporou DICOM formátu jako jsou VTK a ITK. V dob, kdy jsem aplikaci za ínal vyvíjet, byla knihovna gdcm ve verzi 2 teprve v po átcích a tak jsem se rozhodl pro DCMTK. Sada DCMTK byla zvolena také pro to, ºe je napsána v C++ a obsahuje pouze API pro práci se standardem DICOM. Naproti tomu jiné knihovny obsahují mnoho modul pro vizualizaci a segmentaci dat. Volba na tuto knihovnu padla jiº n kdy na podzim roku 2008 a je moºné, ºe od té doby doznaly ostatní knihovny zm n a byly by t eba pro na²e pouºití nyní vhodn j²í. Otázkou nap íklad z stává, jak by ²lo urychlit na ítání DICOM soubor Cg a Cg Toolkit Cg je programovací jazyk podobný jazyku C pro programování shader grackých karet. Shader je program ur ený pro b h na procesoru gracké karty. Cg Toolkit je API pro pouºití shader v b ºných programech. Jeho implementace existuje op t pro opera ní systémy Linux a Windows, dále také pro Solaris a Mac OS. Hlavním d vodem pro pouºití shader v na²em projektu byla pot eba m nit kontrast a jas obrázk (okn ní) medicínských snímk. Ty se proti b ºným digitálním obrázk m odli²ují v t²inou mnohem v t²í barevnou hloubkou. I kdyº se jedná jen o odstíny ²edi, tak zatímco b ºná bitmapa má jen 256 odstín ²edi, v oblasti medicíny mají snímky b ºn 4096 odstín ²edi a mohou mít i více. Jak jsem jiº v sekci OpenGL nazna il, tak obrazová data medicínských snímk se nahrají do OpenGL textury. V úvahu pak p ipadaly t i zp soby, jak u t chto obrazových dat m nit jas a kontrast, tedy transformovat barevné hodnoty. Pro reprezentaci barev bylo v texturách pouºito reálných ísel o jednoduché p esnosti (float) v rozsahu < >. První moºností transformace barev by bylo data textury exportovat do pam ti (pomocí funkce glreadpixels), tam provést p epo et hodnot a výsledek zp t nahrát do textury. P i testování a zji² ování r zných moºností, jak barevnou konverzi provést, jsem vyzkou²el i toto e²ení, které v²ak bylo velmi pomalé. Nyní bylo jasné, ºe bude t eba pouºít n jakou konverzi p ímo na datech textury, která bývá v pam ti gracké karty, pokud má dostate nou pam ovou kapacitu. K tomuto ú elu se zdály být vhodné funkce glblendfunc, glblendequation a glblendcolor [18], která v p ípad správn nastavených parametr byla schopna ve dvou krocích poºadovanou 27

28 konverzi provést velmi rychle. Potíº se ov²em objevila v tom, ºe reprezentace barevných hodnot je pouze v rozmezí < >. OpenGL totiº po kaºdé operaci nad texturami tyto hodnoty o ezává práv na daný rozsah, coº vede ke ztrát informace o barvách a tento postup se tedy ukázal jako nefunk ní. V prvním kroku se totiº barevné hodnoty p e²kálovaly (p i zm n kontrastu) a poté posunuly (jas), jenomºe jiº p i p e²kálování v t²inou do²lo k o ezání hodnot a následný posun míval asto jiº velmi omezený obor hodnot. P edstavme si nap íklad vstupní data, která jsou v rozsahu < > a chceme zv t²it 5x kontrast. Pak vyjdou hodnoty < >, které se ov²em o eºou a nezbude nic. Následný posun hodnot o -2 tak nemá ºádný vliv. V diskuzích na internetu jsem je²t objevil moºnosti, které by za pomocí roz²í ení OpenGL glclampcolorarb m ly toto prahování vypnout, av²ak neukázaly se jako spolehlivé. Pro pouºití OpenGL roz²í ení bylo navíc nutné pouºít knihovnu GLEW (viz dále). Poslední moºností, která se nakonec ukázala jako nejlep²í, bylo práv pouºití shader. V p ípad operací nad barevnými hodnotami pixel se hovo í o takzvaných pixel shaderech, ozna ovaných na poli OpenGL také jako fragment shadery. Shadery jsou podporovány na v t²in moderních grackých karet a provádí se velmi rychle, protoºe jsou pro jejich provedení na gracké kart vyhrazeny samostatné jednotky (streamprocesory) schopné zpracovávat více fragment paraleln (v dne²ní dob aº 3200 na ATI HD5970). Výhodou t chto program je také to, ºe jsou kompilovány aº za b hu programu zavoláním funkcí API Cg toolkitu. Lze tedy zm nit funkci pixel shader bez pot eby p ekompilovat celý program. Následuje ukázka kódu pouºitá v programu práv pro nastavení jasu (bias) a kontrastu (scale) barev: struct output{ float3 color : COLOR; }; output main(float4 color: COLOR, float3 texcoord : TEXCOORD0, uniform sampler3d decal : TEX0, uniform float bias, uniform float scale) { output OUT; OUT.color = tex3d(decal, texcoord)*scale + bias; return OUT; } Inicializace shader, tj. nahrání shader program do prost edí Cg, je provedeno ve funkci CGLWidget::InitShaders(). Pouºity jsou ve funkci CGLImage::DrawSliceFrom3DTextureToActualSliceTexture(). 28

29 4.2.5 GLEW The OpenGL Extension Wrangler Library [19] je knihovna umoº ující pouºívat roz²í ení OpenGL (viz ). I tato knihovna je multiplatformní. V na²em programu ji pouºíváme kv li pouºití 3D textur (roz²í ení GLEW_EXT_texture3D) a je²t pomocí ní zji² ujeme podporu fragment shader (roz²í ení GLEW_ARB_fragment_program) PLIB A Portable Game Library [20] je knihovna ur ená k usnadn ní psaní po íta ových her nap í r znými platformami, v etn Windows a Linuxu. Osahuje krom jiného i ást renderovací fonty, kterou vyuºíváme v na²em programu p i renderování text v OpenGL kontejneru. OpenGL v základu renderování textu nepodporuje a renderování pomocí Qt QGLWidgetu sice funguje, ale je velmi pomalé. Proto jsem se k t mto ú el m rozhodl pouºít práv knihovnu PLIB. Renderování textu je pouºito ve funkci CGLWidget::RenderText(). Tímto vý et pouºitých knihoven kon í. P vodn jsem projekt vyvíjel v Linuxové distribuci Ubuntu ve vývojovém prost edí Qt Creator, ale nakonec jsem se rozhodl p ejít k Visual C++ Express Edition v opera ním systému Windows kv li rychlosti kompilace a snadn j²ímu testování OpenGL funkcionality, nebo ovlada e zejména pro integrované gracké karty notebook poºadovanou funkcionalitu nezvládaly. Návod na zprovozn ní projektu je v p íloze (A). 4.3 Architektura programu a popis funk nosti programu V této kapitole si ukáºeme, jakým zp sobem jsem se p i programování vypo ádal s poºadavky, které byly na výsledný program kladeny. Nastíním také základní architekturu a funkcionalitu programu. Základní funkcionalitu programu lze shrnout do následujícího schématu: 1. Na tení studií z datového zdroje. 2. Zpracování studií (gracké úpravy). 3. Export výsledku zpracování. To v²e je vykonáváno na podn ty uºivatele programu, který toho dosahuje interakcí s uºivatelským rozhraním (GUI). Toto schéma je znázorn no na diagramu (4.3), kde je i na jednotlivých úrovních uvedeno, které z modul do daných proces zasahují Gracké rozhraní Pro snadnou obsluhu programu uºivatelem je ur eno uºivatelské rozhraní (GUI), které je vytvo eno ve frameworku Qt. 29

30 Obrázek 4.3: Schéma funkcionality programu Základem uºivatelského rozhraní je Qt widget MainWindow, tedy hlavní okno aplikace. To je pouze jedno a v²echny ostatní komponenty GUI jsou umíst ny v n m. V této verzi programu se jedná o dv základní komponenty, které se d lí o místo v hlavním okn. První z nich je OpenGL kontejner, objekt t ídy CGLWidget, který slouºí k vykreslování ve²keré graky. Druhou je ovládací panel, objekt t ídy CControlPanel. Ten p edstavuje plovoucí okno, které je moºno uchytit po stranách hlavního okno, i ho libovoln umístit na obrazovce. V n m je pak umíst no mnoho widget, které umoº ují uºivateli upravovat vzhled a chování objekt v kontejneru a které zobrazují informace o nich. Kontejner se dále gracky d lí na t i ásti: pracovní plochu(cglworkspace) prohlíºe obrázk (CGLImageExplorer) - tj. prohlíºe otev ených medicínských studií prohlíºe pracovních ploch(cglworkspaceexplorer) Uvnit pracovní plochy mohou být r zn umís ovány obrázky DICOM studií (CGLImage). V budoucnu by bylo dobré mít moºnost uloºit rozmíst ní obrázk na pracovní plo²e 30

31 do souboru, aby uºivatel mohl pokra ovat v práci i po novém spu²t ní programu. Prohlíºe obrázk zobrazuje seznam otev ených DICOM studií ve vertikálním seznamu a prohlíºe pracovních ploch zobrazuje náhledy otev ených pracovních ploch v horizontálním seznamu. Je tedy moºné mít otev eno více pracovních ploch i více DICOM studií najednou. Schéma grackého rozhraní je na následujícím diagramu (4.4). Obrázek 4.4: Schéma grackého rozhraní D leºité komponenty, správci objekt V programu existuje n kolik objekt, které mají sloºit j²í funkcionalitu a slouºí jako správci jednodu²²ích objekt, umoº ují jejich tvorbu, odstra ování a mají nad nimi kontrolu. Jsou vytvo eny jako unikátní instance (singletony) svých t íd a je moºné se na n kdekoliv v kódu 31

32 programu odvolat pomocí statické metody GetInstance(). T mito správci jsou: CDicom3DTextureManager (Správce 3D textur) Správce objekt t ídy CDicom3DTexture, které obalují OpenGL textury vytvo ené na základ dat z medicínských studií. Podrobn ji v kapitole CGLImageExplorer Krom prohlíºe e otev ených DICOM studií se jedná i o správce objekt CGLImage t chto studií. Podrobn ji v kapitole CGLWorkspaceExplorer Krom prohlíºe e otev ených pracovních ploch se jedná i o správce objekt CGLWorkspace t chto pracovních ploch. Podrobn ji v kapitole CAnimationManager Správce animací. Obrázky DICOM studií mohou být animovány a tento správce se stará práv o jednotlivé animace nad t mito studiemi. Podrobn ji v kapitole Import dat Import dat probíhá tvorbou nového objektu obrázku CGLImage s parametrem cesty k souboru DICOM studie, ze kterého se mají data na íst. Konstruktor obrázku volá správce 3D textur, aby nahrál texturu denovanou tímto souborem. Správce pak vytvá í nový objekt 3D textury CDicom3DTexture, která dále vytvo í objekt t ídy CDicomSerieData (4.4.1). Tato t ída pak zjistí, zda jsou v adresá i i jiné soubory ze stejné studie a na te je postupn do pam ti. Pro na ítání je pouºito API knihovny DCMTK. Na tená obrazová data pak zpracuje objekt t ídy CDicom3DTexture, který z obrazových dat objektu CDicomSerieData vytvo í OpenGL texturu Reprezentace obrazových dat v GUI Obrazová data jsou v programu reprezentována pomocí OpenGL textur zabalených v objektech CDicom3DTexture. V OpenGL kontejneru jsou pak tyto textury renderovány v objektech obrázk (CGLImage). Obrázky jsou zobrazovány v prohlíºe i otev ených DICOM studií a také na pracovní plo²e. V té m ºe být zobrazeno více obrázk a uºivatel má moºnost tém libovoln m nit jejich pozici a rozm ry podle zvoleného správce rozmíst ní (layoutu). Kaºdý obrázek v sob uchovává odkaz na 3D texturu a informace s jakými transformacemi se má textura promítnout na plochu obrázku. Lze nastavit sou adnice ezu 3D texturou. Z tohoto ezu se pak vytvá í 2D OpenGL textura. P i projekci z 3D na 2D jsou aplikovány transformace barevných hodnot pomocí shader. Znamená to, ºe projekce z 3D na 2D probíhá pouze p i zm n pozice ezu v 3D textu e a p i zm n nastavení jasu a kontrastu, tj. p i okn ní. Dvourozm rné OpenGL textury jsou obaleny Qt objektem QGLFramebufferObject. Kaºdý objekt obrázku má svou vlastní instanci objektu QGLFramebufferObject, a tak 32

33 obrázky vytvo ené ze stejné DICOM studie a tedy i stejné 3D textury mohou být naprosto nezávislé. Posun textury a ²kálování m ítka je pak provád no za pomoci OpenGL API pouze na této 2D textu e. Obrázky, stejn jako ostatní objekty d d né z CGLObject jsou pak vykreslovány voláním kreslících metod svých nad azených objekt. V p ípad prohlíºe e obrázk se uvnit metody CGLImageExplorer::paintL() volají metody paintl() v²ech v seznamu viditelných obrázk. Ty se tedy renderují p ímo do graky kontejneru (do framebueru). V p ípad pracovní plochy se ale obrázky renderují do 2D textury pracovní plochy. Kaºdá pracovní plocha má totiº svou vlastní OpenGL texturu (QGLFramebufferObject). Teprve po té, co se v²echny obrázky pat ící dané pracovní plo²e vyrenderují do textury pracovní plochy, je tato textura vykreslena do graky kontejneru. Textura má je²t 2 dal²í pouºití. Prvním z nich je vykreslování náhled pracovních ploch v prohlíºe i pracovních ploch. Druhým je moºnost uloºit výslednou texturu jako bitmapu do souboru. To je velmi usnadn no práv tím, ºe textura je obalena objektem QGLFramebufferObject, který obsahuje implementovanou funkci provád jící export do standardních grackých formát Animace Kaºdý obrázek má p i azenu animaci, objekt CAnimation, který se stará o animování (automatickou zm nu parametr v ase) vlastností obrázku. V sou asné chvíli lze animovat pouze hloubkovou sou adnici 2D ezu v 3D textu e. Lze tedy nastavit automatické procházení v²emi snímky jedné studie. V p ípad, kdy DICOM studie obsahuje v kaºdém souboru snímek stejného místa zachyceného pouze v jiném ase, pak animace zobrazuje skute ný pr b h procesu na tomto míst Export Jak jsem jiº v kapitole zmínil, pouºitím objekt QGLFramebufferObject pro drºení 2D OpenGL textury lze jednodu²e docílit exportu obrazu do bitmapového formátu. Pouºitím této výhody lze tedy snadno uloºit obraz aktuální pracovní plochy. Dále lze také exportovat animace probíhající na pracovní plo²e ve form videa. Princip je jednoduchý a je zaloºen na postupném exportu jednotlivých pracovních ploch, zobrazených v r zném anima ním kroku, jako bitmap. Následn je vzniklá série bitmap p evedena pomocí externího programu na video soubor. V p ípad systému Windows byl pouºit program EasyBMPtoAVI [21]. Tento program je k dispozici jako Open-source a je multiplatformní. Sou asná implementace v²ak podporuje pouze MS Windows. 4.4 Dokumentace základních t íd aplikace Hierarchie t íd CAnimation CAnimationManager 33

34 CControlPanel CDicom3DTexture CDicom3DTextureManager CDicomHeader CDicomHeaderGeneralEquipmentModule CDicomHeaderImageModule CDicomHeaderPatientModule CDicomHeaderSeriesModule CDicomSerieData CDicomSerieLoadException CGLObject CGLImage CGLImageExplorer CGLWidget CGLWorkspace CGLWorkspaceExplorer CGLWorkspaceSnapshot CPoint3Df CSettings CTextureNotCreatedException CVideoConverter CWorkspaceLayout CFreeLayout CGrowingGridLayout MainWindow SaveSequenceDialog SaveSnapshotDialog 34

35 CAnimation Pro kaºdý obrázek zobrazující DICOM objekt t ídy CGLImage) je p i jeho konstrukci vytvo en jeho vlastní objekt animace (této t ídy CAnimation). Pomocí objektu animace je moºné dynamicky m nit gracký obsah obrázku (a s ním související parametry). Správu animací a provád ní anima ních krok má na starosti objekt CAnimationManager. Prozatím je podporována pouze animace pozice v rozm ru hloubky 3D textury, která náleºí objektu CGLImage. Pokud nap íklad obrázek obsahuje asovou posloupnost snímk, pak obrázek v základní poloze obsahuje v textu e p i posunu do hloubky snímky zachycené v r zných asech. M ºe se jednat o snímky stahování srde ního svalu zachycené v r zném asu a animace pak umoºní prohlíºet si celý proces jako video. Pomocí tohoto objektu lze nastavit rychlost animace, nastavit po áte ní a kone ný snímek medicínské studie (indexy v hloubce textury), mezi kterými bude probíhat animace. Animaci je moºné restartovat, pozastavit a následn pokra ovat v animování a nastavit, zda se má animace provád t v nekone ném cyklu, nebo provést pouze jednou. Následuje dokumentace vybraných funkcí této t ídy: CAnimation::CAnimation (CGLImage &image) Zkonstruuje anima ní objekt pro konkrétní obrázek. Nastaví výchozí anima ní hodnoty: Rozsah animace p es celou hloubku textury obrázku (tedy v²echny moºné snímky). Rychlost animace na 25 snímk za vte inu. Opakování ve smy ce jako aktivní. Animaci ponechá v pozastaveném stavu. Parametry: image Objekt obrázku, kterému animace náleºí. bool CAnimation::Do (oat ms) Provede jeden anima ní krok. Funkce je zavolána asova em ze správce animací, pokud animace není pozastavená. Animace se posune na snímek, který odpovídá asu daný parametrem ms uplynulého od posledního snímku. Parametry: ms ƒas v milisekundách, o který chceme animaci posunout. Návratová hodnota: true Pokud anima ní krok prob hl. void CAnimation::SetLoop (bool loop) Nastaví, zda se má animace ve smy ce opakovat. Parametry: loop Pro nastavení nekone ného opakování ve smy ce true, pro jediný b h animace false. 35

36 void CAnimation::SetStartFrame (int startframe) Nastaví index prvního snímku animace. Jedná se o index v rozm ru hloubky textury obrázku. Tento index se prahuje na hodnoty 1 aº celkový po et snímk. void CAnimation::SetStopFrame (int stopframe) Nastaví index posledního snímku animace. Jedná se o index v rozm ru hloubky textury obrázku. Tento index se prahuje na hodnoty 1 aº celkový po et snímk. CAnimationManager T ída spravující v²echny existující animace obrázk - anima ní správce. V první ad tato t ída spravuje tabulku obrázk a k nim p íslu²ných animací. Kaºdý obrázek p i své konstrukci volá funkci tohoto správce GetAnimation() pro p i azení anima ního objektu a p i destrukci naopak RemoveAnimation() pro odstran ní anima ního objektu. Dal²ími funkcemi anima ního správce je hromadné ovládání v²ech spravovaných animací. Ty lze najednou pozastavit (PauseAll()), spustit (ResumeAll()), restartovat na první snímek animace (RestartAll()) a lze jim nastavit velikost zrychlení, p ípadn zpomalení b hu (ChangeGlobalSpeedFactor()). Anima ní správce také obsluhuje ukládání animace do souboru ve funkci SaveSequence(). Následuje dokumentace vybraných funkcí této t ídy: CAnimationManager::CAnimationManager () [private] Konstrukce anima ního správce. Nastaví základní anima ní hodnoty spole né v²em animacím a na jejich základ vytvo í anima ní asova, který následn v pravidelných asových intervalech volá funkci TimerTimeout(). void CAnimationManager::ChangeGlobalSpeedFactor (double speedfactor) Zm ní nastavení zrychlení b hu v²ech animací. Parametry: speedfactor Násobící koecient zrychlení b hu v²ech animací. Nap.: 1 - rychlost beze zm ny = anima ní as koresponduje se skute ným asem; polovi ní rychlost = anima ní as plyne 2x pomaleji neº skute ný as. 2 - dvojnásobná rychlost = anima ní as plyne 2x rychleji neº skute ný as. 36

37 void CAnimationManager::SaveSequence (const QString &lename, const QPoint &size,oat fps, bool keepframes) Uloºí animaci probíhající na aktuální pracovní plo²e do video souboru. Parametry: lename Jméno souboru, do kterého se má video uloºit. size Rozli²ení výstupního videa. fps Po et snímk za vte inu, které má obsahovat výsledné video. keepframes P epína, jestli se mají ponechat statické snímky animace vytvo ené v pr b hu ukládacího procesu. Ukládání animace probíhá v následujících krocích: 1. Pozastaví probíhající animace a restartuje je. 2. Spo te délku trvání nejdel²í animace na aktivní pracovní plo²e a tuto délku vezme jako délku výsledného videa. 3. Podle po tu snímk a délky trvání spo te po et snímk, které se vyrenderují. 4. Uloºí první (resetovaný) snímek jako snímek s indexem Uloºí zbývající snímky aº do spo teného po tu. 6. Zkonvertuje statické snímky do video souboru. CDicom3DTexture Obrázek 4.5: Diagram t íd pro CDicom3DTexture. 37

38 T ída, která uchovává obrazová data DICOM medicínských snímk v 3D textu e OpenGL a informace z DICOM hlavi ky. Kaºdému objektu obrázku pak p íslu²í jeden objekt této t ídy. Objekty této t ídy jsou konstruovány správcem 3D textur (CDicom3dTextureManager). Následuje dokumentace vybraných funkcí této t ídy: CCDicom3DTexture::CDicom3DTexture (QString &lename ) Konstruktor, který z daného souboru na te data snímk do objektu t ídy CDicomSerieData a z t chto dat poté vytvo í OpenGL 3D texturu. Zárove se zjistí a nastaví rozm ry textury, které jsou pak p ístupné metodami GetWidth(), GetHeight(), GetDepth(). Nakonec se data z objektu CDicomSerieData odstraní (CDicomSerieData::FreeData()). V p ípad neúsp chu vyhodí výjimku CTextureNotCreatedException. CDicomHeader & CDicom3DTexture::GetDicomHeader(int framenr) Vrátí objekt t ídy CDicomHeader p íslu²nou DICOM studiu, z níº byl objekt vytvo en. Objekt t ídy CDicomHeader obsahuje logicky len né moduly osahující jednotlivé informace z hlavi ky DICOM souboru. Parametry: framenr ƒíslo snímku, jehoº hlavi ku chceme vrátit. CDicom3DTextureManager Správce 3D textur. T ída je ur ena pro správu objekt t ídy CDicom3DTexture, tedy trojrozm rných OpenGL textur vytvo ených z DICOM studií. Stará se o to, aby se v p ípad op tovného otev ení stejné studie nevytvá ela nová OpenGL 3D textura, ale pouºila se jiº stávající. Objekt si uchovává po ítadlo pouºití textury, a kdyº tento po et klesne na nulu, tak se daná OpenGL textura odstraní z pam ti, tj. smaºe se její obalující objekt. Následuje dokumentace vybraných funkcí této t ídy: CDicom3DTexture CDicom3DTextureManager::GetTexture (const QString &identicationstring ) Vrátí ukazatel na texturu, pokud je jiº nahraná v tomto manaºeru, jinak vrátí NULL. Kaºdý CDicom3DTexture objekt má p i azený identika ní et zec získaný z ID parametru hlavi ky DICOM studie. Inkrementuje po ítadlo pouºití dané textury. CDicom3DTextureManager::LoadTexture (QString &di- CDicom3DTexture comfilename) Nahraje texturu z medicínské studie DICOM ur ené jménem prvního souboru. Nejprve na te DICOM hlavi ku daného souboru a zjistí identika ní et zec studie. Podle tohoto 38

39 identikátoru se pak hledá v seznamu textur, zda jiº není na tená. Pokud identika ní et zec je²t v seznamu není, tak se vytvo í nový objekt textury (CDicom3DTexture). Nahrané textury jsou vlastn ny tímto správcem textur a ostatním objekt m jsou pouze zap j ovány. Ty by m ly volat ReleaseTexture() ve svém destruktoru, p ípadn kdykoli d íve, pokud jiº s texturou nebudou pracovat, aby mohla být pam OpenGL textury uvoln na hned, jak je to moºné. Parametry: dicomfilename jméno souboru obsahující DICOM studii. void CDicom3DTextureManager::ReleaseTexture (CDicom3DTexture *texture) Dekrementuje po ítadlo pouºití dané textury. V p ípad, ºe toto po ítadlo dosáhlo nuly, znamená to, ºe textura jiº není pot eba, objekt textury je tedy smazán a uvolní se i pam p íslu²né OpenGL textury. CDicomHeader Obrázek 4.6: Diagram spolupráce t íd pro CDicomHeader. P es objekt této t ídy lze p istupovat k informacím hlavi ky formátu DICOM. Informace v hlavi ce jsou rozd leny do modul : pacient, snímaná série, obraz a snímací za ízení 39

40 (viz 4.6). Detailn j²í popis a informace o parametrech hlavi ky jsou k nalezení v dokumentu DICOM standard ást 3 pod ozna ením header tags [17]. Lze se nap íklad podívat na denice tag v hlavi kovém souboru DCMTK knihovny dcdeftag.h a pak v dokumentaci nalézt p íslu²ný tag (dvojici hexadecimálních ísel). Do budoucna je moºné snadno roz²í it podporovaný seznam parametr. CDicomSerieData Objekty této t ídy jsou ur eny pro udrºení obrazových dat medicínských snímk. T ída je schopna na íst DICOM sérii (medicínské snímky) ze soubor ve formátu DICOM pomocí API DICOM toolkitu. Slouºí zejména jako p ístup k obrazovým dat m DICOM studie pro t ídu CDicom3DTexture. Následuje dokumentace vybraných funkcí této t ídy: CDicomSerieData::CDicomSerieData (char lepath, int max3dsize) Konstruktor objektu volající funkci LoadFrames(), která se pokusí na íst data medicínských snímk ur ených souborem filepath. Parametry: lepath Cesta k souboru, z kterého se vychází p i pokusu o na tení DICOM studie. max3dsize Maximální rozm r na tených dat ve v²ech t ech sm rech. Je pouºit proto, ºe n které gracké karty mají omezenu velikost 3D textury. bool CDicomSerieData::LoadDicomImage (char lepath, bool isfirst = false, int framecount = 0) [private] Na te DICOM hlavi ku daného souboru a dále pak obrazová data tohoto souboru. Obrazová data jsou nejprve analyzována a zjistí se zp sob jejich komprese. Následn se pak data dekomprimují a uloºí se do pam ti objektu. Parametry: lepath Cesta k souboru, který chceme na íst. isfirst Ur uje, zda je tento snímek první v sérii. Pokud ano, pak se alokuje pam pro obrazová data snímk. framecount Celkový po et snímk série DICOM, kterou na ítáme. Pro výpo et velikosti dat k alokaci. Parametr je nutný p i zpracovávání prvního snímku. bool CDicomSerieData::LoadFrames (char lepath) [private] Pokusí se na íst data DICOM série ze zadaného souboru a z dal²ích soubor ve stejném adresá i p íslu²ející stejné studii. Proces probíhá v následujících fázích: 40

41 1. Zkontroluje se, zda cesta k souboru kon í p íponou DCM nebo IMA. Pokud ne, pak funkce vrátí false. 2. Pokusí se najít n jaký odd lova ('_', '-') mezi názvem souboru a indexem ozna ujícím íslo snímku série. Pokud nenalezne ºádný odd lova, pak se pokusí na íst pouze jeden soubor a funkce kon í - prozatím není podporováno na ítání DICOM soboru obsahujícího více snímk. 3. V p ípad, ºe odd lova byl nalezen, tak se cesta k souboru rozd lí na ást p ed a ást po rozd lova i. Pak se prochází adresá vstupního souboru a v²echny názvy soubor, které mají stejný prex jako ná² soubor, se p idají do vektoru. Poté se na kaºdý název z tohoto seznamu volá funkce LoadDicomImage(), která se pokusí o na tení dat souboru. 4. Provede zpracování na tených dat funkcí PerformImageInputDataProcessing(). Parametry: lepath Cesta k souboru, který chceme na íst. CGLObject Obrázek 4.7: Diagram t íd pro CGLObject. P edek pro v²echny objekty umíst né na hlavním OpenGL kontejneru, které jsou práv pomocí OpenGL vykreslovány. Obsahuje základní funkce pro umíst ní a zm nu velikosti t chto objekt, nastavení ²í ky okraje a jeho barvy. Dále pak obsahuje funkci pro p evod z Qt sou adnic na OpenGL sou adnice, jejichº osa y je orientována v opa ném sm ru. 41

42 Kaºdému objektu lze nastavit, zda s ním jde pohybovat, zda lze m nit jeho velikost, zda ho lze zav ít (odstranit) a tímto nastavením se ovlivní zobrazení p íslu²ných manipula ních ikon, pomocí kterých lze (po kliknutí my²í na n ) tyto úkony vykonávat. Tato t ída obsahuje také základní prototypy funkcí, které jsou spole né v²em odvozeným t ídám od tohoto objektu. T mi jsou kreslení ohrani ujícího ráme ku, vykreslení vnit ku objektu ur itou barvou a nastavení parametr jako jsou velikosti okraj a jejich barvy. Také obsahuje prototyp funkce pro vybarvení okraje p i výb ru objektu. Nakonec tato t ída obsahuje ist virtuální funkce pro OpenGL kreslení (paintgl) a zpracování uºivatelské interakce (prozatím pouze události spojené s my²í). Následuje dokumentace vybraných funkcí této t ídy: virtual void CGLObject::paintGL() [pure virtual] Funkce, která slouºí pro vykreslení objektu do CGLWidgetu. Musí být volána uvnit funkce CGLWidget::paintGL(), která je volána p i pot eb p ekreslit CGLWidget pomocí OpenGL. Implementováno v t ídách CGLImageExplorer, CGLWorkspaceExplorer, CGLWorkspace, CGLWidget, CGLImage a CGLWorkspaceSnapshot. void CGLObject::TranslateOpenGLCoords () Provede posun aktuální modelové OpenGL matice na sou adnice daného objektu. P edpokládá, ºe aktuální projek ní plocha OpenGL má velikost hlavního CGLWidgetu - tedy objektu, do kterého se nej ast ji vykresluje. Vzhledem k tomu, ºe ypsilonová sou adnice je v OpenGL orientována od spodu obrazové pam ti (obrazu), zatímco ypsilonová sou adnice v Qt je orientována od shora obrazovky dol, tak tato funkce provádí práv p evod z Qt sou adnic do OpenGL sou adnic. Vyuºití má nap íklad p i kreslení ráme ku kolem daného objektu. CGLImage Obrázek 4.8: Diagram d di nosti t íd pro CGLImage. Objekty této t ídy reprezentují zobrazitelné DICOM studie (série medicínských snímk ). Jsou to obrázky (tj. viditelné gracké prvky referované v OpenGL kontejneru CGLWidget). T ída obsahuje odkaz na trojrozm rnou texturu s obrazovými daty (CDicom3DTexture) 42

43 Obrázek 4.9: Diagram spolupráce t íd pro CGLImage. a umoº uje zobrazovat 2D projekci ez této textury v r zných rovinách (prozatím podporuje pouze ezy v základních t ech rovinách). Tuto 2D projekci lze zv t²ovat, upravovat jas a kontrast (Window center:width) jejích barev, dále pak lze provád t posun ezu sm rem do hloubky 3D textury a tento posun i animovat pomocí vlastn ného anima ního objektu (CAnimation). Následuje dokumentace vybraných funkcí této t ídy: CGLImage::CGLImage (QString &le, QPointF &position, QPointF &size) Konstruktor objektu obrázku. Nejprve se ze správce 3D textur (CDicom3DTextureManager) získá trojrozm rná textura (CDicom3DTexture) z obrazových dat medicínských snímk ur ených daným souborem. Dal²í inicializace objektu prob hne ve funkcích Init() a InitActualSliceOpenGLTexture(). Parametry: 43

44 lepath Cesta k souboru obsahujícímu medicínský snímek. position Sou adnice, na kterých má být objekt obrázku umíst n. size Velikost (²í ka a vý²ka) objektu obrázku. CGLImage::CGLImage (CDicom3DTexture texture, QPointF &position, QPointF &size) Konstrukce objektu obrázku z jiº hotového objektu CDicom3DTexture. V podstat se vytvo í obrázek s obrazovými daty danými parametrem textury. Pouºívá se v p ípad vytvá ení kopií obrázku. Parametry: texture Ukazatel na 3D texturu, na jejímº základ chceme vytvo it nový objekt obrázku. Vlastnictví se nep edává - v²echny 3D textury jsou spravovány správcem (CDicom3DTextureManager). position Sou adnice, na kterých má být objekt obrázku umíst n. size Velikost (²í ka a vý²ka) objektu obrázku. void CGLImage::Init (QPointF &position, QPointF &size) Inicializace prom nných. Nastavení základních pozic obrázku, výchozích hodnot pro orientaci snímk, základního pojmenování obrázku, vzhled objektu, moºnosti manipulace a nastavení zobrazení informativních text na obrázku. Poté se provede inicializace základních parametr obrázku, jako jsou výchozí sou adnice ezu texturou, výchozí nastavení zv t²ení, konstrastu a jasu. Vytvo í se textura obrázku (QGLFramebufferObject), na kterou se bude promítat aktuální ez 3D texturou a provede se první vykreslení ezu na tuto texturu. Parametry: position Sou adnice, na kterých má být objekt obrázku umíst n. size Velikost (²í ka a vý²ka) objektu obrázku. void SetOrientation(TImageAxisOrientation orientation) Nastaví orientaci ezu v 3D textu e. Prozatím jsou podporovány základní t i typy orientace paraleln s osami (axiální, koronální, sagitální). Po zm n orientace ezu se z pam ti nahrají poslední sou adnice, které byly p i této orientaci uloºeny a s t mito sou adnicemi se 3D textura vykreslí na texturu obrázku. 44

45 Obrázek 4.10: Diagram spolupráce t íd pro CGLImageExplorer. CGLImageExplorer T ída slouºící pro správu otev ených obrázk a zobrazení jejich náhled pro moºnou vizuální správu uºivatelem. Uºivatel tak vidí v p ehledném seznamu DICOM studie, s kterými pracuje a m ºe je pouºívat na pracovní plo²e. Zav ením obrázku v tomto správci dojde k zav ení v²ech obrázk odvozených od tohoto na v²ech otev ených pracovních plochách. Následuje dokumentace vybraných funkcí této t ídy: void CGLImageExplorer::OpenImage (QString &lename) Pokusí se otev ít DICOM studii ur enou jménem souboru, ve které by m la být studie uloºena. Funkce vykonává následující kroky: 1. Pokus o otev ení souboru s DICOM studií a vytvo ení z ní objekt CGLImage. 2. Zji²t ní pozice pro umíst ní dal²ího obrázku do prohlíºe e. 3. Pokud byl obrázek úsp ²n na ten, tak se nastaví jeho atributy, aby s ním uºivatel nemohl manipulovat. 4. Nastaví na tený obrázek jako aktivní. 5. V ovládacím panelu nastaví jako aktivní pohled pro prohlíºe obrázk. To spole n s p edchozím krokem zp sobí zobrazení informací o nové DICOM studii v panelu a zárove umoºní s touto studií pracovat. CGLWidget Hlavní gracký kontejner pro gracké prvky kreslené pomocí OpenGL. Je to jediný objekt t ídy QGLWidget. Jedná se o hlavní ást programu DICOM Presenter a jsou v n m umíst ny následující komponenty: 45

46 Obrázek 4.11: Diagram spolupráce t íd pro CGLWidget. Pracovní plocha se zobrazenými obrázky (CGLWorkspace). Prohlíºe otev ených obrázku (CGLImageExplorer). Prohlíºe pracovních ploch (CGLWorkspaceExplore). Tento objekt p ijímá v²echny události my²i a podle polohy kurzoru nastaví aktivní objekt a tomu události p eposílá. P i pot eb p ekreslit jeho obsah se volá funkce paintgl(), která se stará o vykreslení v²ech vlastn ných objekt. Dal²í funkcí tohoto objektu je pak správa textur pro ikony ovládání objekt (CGLObject) a správa OpenGL shader, tj. program provád ných grackou kartou. Následuje dokumentace vybraných funkcí této t ídy: void CGLWidget::initializeGL () [protected] Jde o funkci, která je zavolána po tom, co je inicializován subsystém OpenGL, aby mohly být inicializovány komponenty na tomto subsystému závislé. Od této chvíle je uº moºné volat libovolné funkce OpenGL API. Konkrétn se ve funkci provedou následující úkony: Nahrají se textury pro ikony ovládání OpenGL objekt (InitIconTextures()). Provede se inicializace OpenGL shader pouºívaných v tomto programu. Spustí se subsystém kreslení font. 46

47 Vytvo í se singleton instance t íd prohlíºe e obrázk (CGLImageExplorer) a pracovních ploch (CGLWorkspaceExplorer). void CGLWidget::InitIconTextures () [protected] Nahraje textury ikon (zav ít, posun, zm na velikosti), které slouºí uºivateli k manipulaci s objektem. Tyto ikony jsou pak dostupné ostatním t ídám v programu p es metody sigletonu GetMoveIconTexture(), GetResizeIconTexture() a GetCloseIconTexture(). void CGLWidget::InitShaders () [protected] Nejprve inicializuje Cg subsystém. Poté nahraje shadery pouºívané v programu pro zm nu barevných vlastností textur. T mi jsou v na²em p ípad kontrast a jas (scale, bias). Tyto programy jsou pak provád ny p ímo procesory gracké karty (stream processor). Jedná se o fragment (pixel) shadery, tedy shadery pracující s barevnými sloºkami obrazových bod. void CGLWidget::ResetGLView () Nastaví zobrazovací pole (viewport) a projek ní matici OpenGL na celou plochu tohoto kontejneru. Rozm ry projek ní plochy pak odpovídají p esn rozm r m jeho plochy (v pixelech), díky emuº je moºné jednodu²e renderovat objekty, které jsou v n m umíst né. CGLWorkspace Obrázek 4.12: Diagram spolupráce t íd pro CGLWorkspace. T ída reprezentující pracovní plochu v OpenGL kontejneru. Tento pracovní prostor je ur en k tomu, aby do n j mohly být rozmís ovány jednotlivé obrázky medicínských studií a aby je mohl uºivatel snadno porovnávat a manipulovat s nimi. Lze vytvo it hned n kolik na sob nezávislých pracovních ploch, které jsou vizuáln i logicky (pam ov ) spravovány pomocí správce pracovních ploch CGLWorkspaceExplorer. Pracovní plocha má p i azen objekt CWorkspaceLayout, takzvaný layout (správce rozmíst ní), pomocí kterého 47

48 jsou obrázky na plochu rozmís ovány. Tento objekt také vlastní v sob umíst né objekty CGLImage. Následuje dokumentace vybraných funkcí této t ídy: void CGLWorkspace::AddImage (CGLImage image) P idá objekt obrázku do seznamu obrázk spravovaných danou pracovní plochou. Správce rozmíst ní vybere vhodné místo a velikost pro umíst ní nového obrázku na pracovní oblasti a její graka se p ekreslí. void CGLWorkspace::RemoveImage (CGLImage image) Odebere objekt obrázku do seznamu obrázk spravovaných danou pracovní plochou. Správce rozmíst ní zjistí, zda není moºné ud lat n jaké automatické zm ny pozic a velikostí zbývajících obrázk a p ípadn je provede. Graka pracovní oblasti se p ekreslí, aby reektovala provedené zm ny. void CGLWorkspace::SaveTexture (const QString &lename, const QPoint &size) Nejprve vykreslí texturu pracovní plochy, aby obsahovala nejaktuáln j²í stav obrázk uvnit. Pak tuto aktuální texturu zapí²e do souboru. CGLWorkspaceExplorer T ída slouºící pro správu pracovních ploch a pro zobrazování jejich náhled zastoupených objektem (CGLWorkspaceSnapshot) v p ehledném seznamu v dolní ásti OpenGL kontejneru. Pro vykreslení náhled v seznamu se pouºívají textury pracovních ploch, kterým tyto náhledy náleºí. Následuje dokumentace vybraných funkcí této t ídy: void CGLWorkspaceExplorer::AddWorkspace (CGLWorkspace *workspace) P idá danou pracovní plochu do prohlíºe e. Ten bude tuto plochu spravovat a zobrazovat její snímek. Vypo te se také pozice za p edchozími náhledy pracovních ploch a na této pozici se náhled vykreslí. void CGLWorkspaceExplorer::paintGL () [virtual] Funkce, která slouºí pro vykreslení objektu prohlíºe e do OpenGL kontejneru. Nejprve se nakreslí vlastní prohlíºe - tedy jeho výpl a okraje. Dále se pak procházejí v²echny obsaºené pracovní plochy a vykreslují se jejich p íslu²né náhledy v p ípad, ºe jsou umíst ny ve viditelné oblasti seznamu. V této funkci se také p epo ítají hodnoty pro správnou 48

49 funkcionalitu posuvníku (Scrollbaru), pomocí kterého se lze pohybovat mezi náhledy pracovních ploch v p ípad, ºe jejich celková velikost p esahuje velikost prohlíºe e. Snímek vybrané pracovní plochy se je²t zvýrazní funkcí DrawSelectedSnapshot(). void CGLWorkspaceExplorer::RemoveWorkspace (CGLWorkspace workspace) Odebere danou pracovní plochu z prohlíºe e. Tím pádem se zni í i v²echny objekty obrázk, které této pracovní plo²e náleºely. Odstraní také náhled dané plochy z prohlíºe e a p esune náhledy zbývajících ploch, pokud po té odstran né zbylo v seznamu místo. void CGLWorkspaceExplorer::SetActiveWorkspace (CGLWorkspace workspace) Nastaví danou pracovní plochu jako aktivní a její obsah se zobrazí v OpenGL kontejneru. Znovu se spustí animace, které náleºí obrázk m této pracovní plochy a které nejsou zrovna pozastaveny. CSettings Tato t ída slouºí k ukládání a na ítání nastavení parametr programu z a do souboru. Vyuºívá Qt t ídy QSettings, která je ur ená k uchovávání parametr aplikace mezi jejími r znými spu²t ními. V²echny metody této t ídy jsou statické a ve ejné. Parametry lze nastavit také p ímo v souboru DicomPresenter.ini, který slouºí práv jako trvalá pam parametr programu. Následuje seznam parametr, jejichº ukládání je podporováno: Lze nastavit velikost OpenGL textury pro pracovní plochu. ƒím v t²í jsou rozm ry této textury, tím náro n j²í jsou poºadavky na gracký hardware. Lze omezit po et snímk, které se nahrávají v rámci jedné DICOM série. Velikosti okraj a mezer mezi jednotlivými prvky v ovládacím panelu. Velikosti okraj, barvy výplní a barvy okraj v²ech objekt t ídy CGLObject. Pro prohlíºe otev ených studií i pro prohlíºe pracovních ploch lze je²t nastavit barvu textu, kterou se bude vykreslovat nápis v jejich titulku. CWorkspaceLayout Základní t ída pro v²echny typy správc rozmíst ní komponent na pracovní plo²e. Takový správce rozmíst ní slouºí k tomu, aby uºivateli pomohl snadno rozmístit obrázky na pracovní plo²e, v p ípad p idání nového i odebrání stávajícího. M ºe také pomoci s automatickým ukotvením obrázku ke stranám pracovní plochy, dále se zarovnáním jeho polohy vedle jiných obrázk v pracovní plo²e, atd. Provedení rozmíst ní lze také libovoln zavolat na poºádání (Do()). Následuje dokumentace vybraných funkcí této t ídy: 49

50 virtual bool CWorkspaceLayout::AddImage (CGLImage image)[pure virtual] Poºadavek na umíst ní nového obrázku do stávajícího rozmíst ní. Funkce je volána p i p idání obrázku do pracovní plochy. virtual void CWorkspaceLayout::Do () [pure virtual] Rozmístí objekty obrázku do základního postavení p íslu²ného danému rozmíst ní. Funkce je volána v okamºiku nastavení daného rozmíst ní pracovní plo²e. void CWorkspaceLayout::ImageMovedAlignToOtherImages(CGLImage image) [protected, virtual] Zarovná umíst ní obrázku vedle ostatních obrázk v pracovní plo²e. Funkce zabezpe uje, aby obrázek nep esahoval hranice ostatních obrázk. void CWorkspaceLayout::ImageMovedAlignToWorkspace (CGLImage image) [protected, virtual] Zarovná umíst ní obrázku do pracovní plochy. Funkce zabezpe uje, aby obrázek nep esahoval hranice pracovní plochy, po tom, co se obrázek p esunul. void CWorkspaceLayout::ImageResizedAlignToOtherImages (CGLImage image) [protected, virtual] Zarovná velikost obrázku uvnit pracovní plochy. Funkce zabezpe uje, aby obrázek nep esahoval hranice ostatních obrázk. void CWorkspaceLayout::ImageResizedAlignToWorkspace (CGLImage image) [protected, virtual] Zarovná velikost obrázku do rozm r pracovní plochy. Funkce zabezpe uje, aby obrázek nep esahoval hranice pracovní plochy, po tom, co obrázek zm nil velikost. virtual void CWorkspaceLayout::RemoveImage (CGLImage image) [pure virtual] Poºadavek na odebrání obrázku ze stávajícího rozmíst ní. Funkce je volána p i odebrání obrázku z pracovní plochy. CFreeLayout Správce rozmíst ní umoº ující libovolné rozloºení obrázk na pracovní plo²e. Obrázk m je moºno nastavit libovolnou pozici i velikost. Mohou být umíst ny i p es sebe. Tento správce rozmíst ní pomáhá se zarovnáváním obrázk vedle sebe a do pracovní plochy, pokud se o to uºivatel snaºí. 50

51 CGrowingGridLayout Správce rozmíst ní, který uspo ádává objekty obrázk do tabulky (m íºky). Pokud je m íºka p íli² malá (nový objekt se do ní nevejde), pak se do m íºky p idá nový ádek (p ípadn sloupec) a objekty se znovu rozmístí. Objekty v m íºce se nep ekrývají a navazují na sebe. Zm na velikosti jednoho objektu ovlivní ostatní ve stejném sloupci a ádku. Objekty je moºno p esunovat do volných pozic v m íºce nebo si dva obrázky v m íºce mohou prohodit své pozice navzájem. Následuje dokumentace vybraných funkcí této t ídy: bool CGrowingGridLayout::AddImage (CGLImage image) [virtual] Poºadavek na umíst ní nového obrázku do stávajícího rozmíst ní. Funkce je volána p i p idání obrázku do pracovní plochy. V tomto rozmíst ní jsou obrázky zarovnány do tabulky, která umí dynamicky m nit sv j rozm r a podle následujícího algoritmem: 1. Za íná se s tabulkou o 1 sloupci a bez ádk. 2. P i vloºení obrázku do rozmíst ní se tabulka postupn plní, dokud jsou v ní volná místa. 3. V p ípad, ºe jiº v tabulce není místo, tak se do tabulky doplní: (a) Dal²í ádek, pokud se naposledy p idal sloupec. (b) Dal²í sloupec, pokud se naposledy p idal ádek. void CGrowingGridLayout::Do () [virtual] Rozmístí objekty obrázku do základního postavení p íslu²ného danému rozmíst ní. Smaºe tabulku pro obrázky a za ne ji tvo it znovu, jakoby postupn p idává obrázky pomocí funkce AddImage. void CGrowingGridLayout::ImageIsMoving (CGLImage image)[virtual] Funkce volaná po kaºdém posunu objektu obrázku po pracovní plo²e. Zarovná pozici objektu obrázku do tabulky (V p ípad, ºe pozice m íºky tabulky jsou poblíº pozice manipulovaného obrázku). Zjistí, zda daná manipulace s obrázkem je v rámci rozmíst ní povolena a podle toho upraví stav obrázku. Je dovoleno p esouvat obrázek jen v rámci tabulky na p esné pozice sloupc a ádk. V p ípad, ºe obrázek je p esouván na pozici, na které je jiº umíst n jiný obrázek, pak se tyto dva prohodí. void CGrowingGridLayout::ImageIsResizing(CGLImage image) [virtual] Funkce volaná po kaºdé zm n velikosti objektu obrázku. Zajistí zarovnání velikosti na hranice pracovní plochy. Dále pak upraví velikosti v²ech obrázk ve stejném sloupci, aby m ly stejnou ²í ku, jako je nová ²í ka manipulovaného obrázku. Stejn tak upraví vý²ku v²ech obrázk ze stejného ádku. 51

52 void CGrowingGridLayout::ImageMoveFinished (CGLImage *image) [virtual] Funkce volaná v okamºiku, kdy uºivatel p estal hýbat s objektem obrázku. Dokon í se p esun objektu podle toho, zda je i, není moºný. Pokud do²lo k prohození obrázk, tak se toto prohození provede a pozice obrázk se zarovnají do tabulky. void CGrowingGridLayout::RemoveImage(CGLImage *image) [virtual] Poºadavek na odebrání obrázku ze stávajícího rozmíst ní. Funkce je volána p i odebrání obrázku z pracovní plochy. Pokud jsou odstran ny v²echny obrázky z jednoho sloupce, resp. ádku, pak se tento sloupec, resp. ádek odstraní a rozmíst ní se provede znovu. MainWindow Obrázek 4.13: Diagram spolupráce t íd pro MainWindow. Objekt této t ídy je hlavním oknem aplikace. T ída je odvozena od Qt objektu QMainWindow. Pouºitím Qt frameworku je pak inicializace aplikace velice jednoduchá a probíhá následovn : int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); int res= a.exec(); return res; } 52

53 Kapitola 5 Uºivatelská p íru ka programu DICOM Presenter 5.1 Instalace v MS Windows Microsoft Visual C++ ve verzi Express Edition, která je dostupná zdarma, neumoº uje vytvá ení instala ních balí k pro naprogramované aplikace. Nejkorektn j²í cestou k p enosu programu na jiný po íta je nainstalovat na tomto po íta i Visual C++ Express Edition a celý projekt na n m znovu zkompilovat. Seznam soubor nutných pro správný b h aplikace: cg.dll, cggl.dll closeicon.bmp, resizeicon.bmp, moveicon.bmp soubory textur pro manipula ní ikony DicomPresenter.exe DicomPresenter.ini soubor s nastaveními programu EasyBMPtoAVI.exe program konvertující sérii bitmap na video fragment_shader_bias_scale2d.cg, fragment_shader_bias_scale3d.cg Shadery pro úpravu barev OpenGL textur glew32.dll QtCore4.dll/QtCored4.dll QtGui4.dll/QtGuid4.dll QtOpenGL4.dll/QtOpenGLd4.dll Times-Roman.txf font pro knihovnu PLib 53

54 5.2 První spu²t ní Po spu²t ní programu se nám zobrazí obrazovka s rozloºením grackých prvk jako na obrázku 5.1. Jednotlivé komponenty v²ak budou prázdné. Zde jsou v programu otev eny dv studie a rozpracovány 3 pracovní plochy pro lep²í p edstavu vzhledu programu. Na obrázku Obrázek 5.1: Snímek programu Dicom Presenter je vid t hlavní okno aplikace s titulkem. Toto okno se d lí na 2 ásti. V pravé asti je sloupcový ovládací panel (viz. 5.5). Levou a hlavní ást okna pak vypl uje kontejner zobrazující medicínské snímky. Tento kontejner se d lí na 3 ásti. Nejv t²í ást vlevo naho e zaujímá pracovní plocha (viz 5.4). Dole je umíst n prohlíºe pracovních ploch (viz 5.4) a vpravo je prohlíºe otev ených DICOM studií (5.3). 54

55 5.3 Na tení medicínských dat Program podporuje na ítání soubor ve formátu DICOM (p ípony IMA a DCM). Pro otev ení studie lze pouºít jednu ze t í následujících moºností: 1. Z Menu vybrat File -> Open V ovládacím panelu stisknout tla ítko Open Dicom File. 3. Dvojklikem levým tla ítkem my²i na plochu prohlíºe e otev ených studií. Poté se zobrazí dialogové okno umoº ující výb r souboru pro otev ení. Dicom Presenter se pak pokusí na íst v²echny soubory z adresá e p íslu²ející stejné studii. Probíhá to tak, ºe program prohledá adresá tohoto souboru a zjistí, zda v n m jsou soubory se stejným jménem aº na íselný index za n jakým odd lova em, poml kou, nebo podtrºítkem. Pokud ano, tak dále p edpokládá, ºe tyto indexy budou postupn r st vºdy o 1. Následují p íklady dvou struktur soubor, s kterými si program poradí: IM dcm IM dcm IM dcm IM dcm IM dcm brain_001.dcm brain_002.dcm brain_003.dcm brain_004.dcm brain_005.dcm Pak se tyto soubory otev ou a z jejich hlavi ky se zji² uje id studie, která musí být u v²ech studií stejná jako u první, zadané uºivatelem. Program v pr b hu na ítání zobrazuje malé okno s ukazatelem pr b hu na ítání a s tla ítkem umoº ujícím na ítání p eru²it (viz obr. 5.2). Po p eru²ení se p estanou na ítat dal²í snímky série, ale i p esto se studie otev e. Tady je pot eba dát si pozor v p ípad, ºe byste cht li otev ít studii znovu, ale tentokrát na íst více snímk série. To se nepoda í, dokud p vodní studii nezav ete z prohlíºe e otev ených studií. Pr b h na ítání je také zobrazován ve standardním výstupu, kde jsou uvedeny i podrobn j²í informace o pr b hu na ítání. Pokud se na ítání studie nebo vytvo ení 3D textury z této studie nezda í, uºivateli se zobrazí modální okno s upozorn ním. Na ítání se nemusí zda it nap íklad kv li ²patnému formátu obrazových dat, nebo kv li nedostatku gracké pam ti pro uchování celé studie v 3D textu e. První snímky v²ech úsp ²n na tených studií se pak zobrazují v seznamu v prohlíºe i otev ených studií. Tady lze jednotlivé studie vybírat a pak s nimi dále pracovat. Pro zav ení studie sta í kliknout my²í na ikonku k íºku v pravé horní ásti obrázku. 55

56 5.4 Pracovní plocha Obrázek 5.2: Ukazatel pr b hu na ítaní studie Pracovní plocha slouºí uºivateli pro zobrazování r zných pohled na otev ené medicínské studie a umoº uje je sestavovat do libovolných uspo ádání. Pracovních ploch lze mít otev eno více najednou. O jejich správu se stará prohlíºe pracovních ploch. V tom je zobrazen seznam otev ených pracovních ploch. Po spu²t ní programu je p ístupná pouze jedna plocha a dal²í lze p idat dvojklikem na oblast prohlíºe e pracovních ploch. Odebrání pracovní plochy se provadí kliknutím levým tla ítkem my²i na ikonku k íºku v pravé horní ásti náhledu pracovní plochy. Kliknutím na náhled pracovní plochy ji vybereme. Obrázek lze na pracovní plochu p idat následujícím postupem. Nejprve se v prohlíºe i otev ených studií vybere studie, s níº chceme pracovat. V ovládacím panelu je pak k dispozici tla ítko Create Copy, jehoº stisk zp sobí vytvo ení kopie obrázku studie na práv vybranou pracovní plochu. Obrázky se na pracovní plochu umís ují podle toho, jaký správce rozmíst ní má pracovní plocha nastavený. Ten je moºné vybrat v ovládacím panelu (viz. 5.5). Uºivatel m ºe obrázky v pracovní plo²e p esunovat a m nit jejich velikost uchycením za p íslu²né ikony. V levém horním rohu se nachází ikonka pro posun objektu, vpravo dole poté pro zm nu velikosti. Posun a zm na velikostí objektu je ovlivn na zvoleným správcem rozmíst ní, který uºivateli pomáhá s p izp sobením se ostatních objekt na plo²e. Na p íkladech na obrázcích (5.3, 5.4 a 5.3) si ukáºeme, jak probíhá p esunování a zm na velikosti objekt v p ípad pouºití m íºkového správce rozloºení. Ve v²ech p ípadech je manipulováno s obrázkem v levém horním rohu a na obrázku je ervenou elipsou vyzna ena poloha ukazatele my²i. Na prvním obrázku (5.3) je ukázán nepodporovaný posun obrázku mimo m íºku rozloºení. Proto je obrázek zbarven ervenou barvou. V tuto chvíli by se obrázek po uvoln ní tla ítka my²i vrátil zp t do své výchozí polohy v levém horním rohu. Na obrázku (5.4) je proveden posun obrázku aº na místo jiného obrázku v m íºce, toho vpravo dole. V tuto chvíli se jedná o p esun, který je správcem rozloºení podporován a proto se dané dva obrázky po uvoln ní tla ítka prohodí. Znázorn nou zeleným zabarvením. Obrázek (5.5) ukazuje zm nu velikosti objekt pomocí uchycení za ikonku dvojité ²ipky. P ed zm nou velikosti m ly v²echny stejnou velikost a na obrázku je vid t, jak zm na velikosti jednoho objektu ovlivní i ostatní, kv li zachování m íºkového rozloºení. 56

57 Obrázek 5.3: Nedovolený p esun obrázku. Nakonec je je²t na obrázku (5.6) ukázáno jakého rozloºení lze dosáhnout v p ípad pouºití volného rozmíst ní. 5.5 Ovládací panel Ovládací panel v Dicom Presenteru má t í r zná rozloºení ovládacích prvk a s ní spojenou i rozdílnou funkcionalitu. Ta se li²í podle toho, jaká ást hlavního kontejneru je aktivní. Tedy zda pracovní plocha, prohlíºe otev ených snímk, nebo prohlíºe pracovních ploch. Vzhled panelu se vºdy poskládá z n kolika z následujících kontejner : Workspace properties Vlastnosti týkající se pracovní plochy. Obsahuje textové pole, kam lze zadat pojmenování pro pracovní plochu. Defaultn jsou jména tvaru WS: íslo pracovní plochy. Obsahuje také rozbalovací seznam s výb rem správc rozmíst ní. Dicom Header Jedná se o tabulku zobrazující dvojici parametr a jeho hodnota ur itých tag z hlavi ky souboru DICOM. Global Animation Panel Panel slouºící k ovládání v²ech aktivních animací na aktuální pracovní plo²e. Obsahuje moºnost v²echny animace pozastavit (Pause All a restartovat (Restart All). Lze také nastavit rychlost probíhání animací (Speed factor). Image Info Vlastnosti týkající se ozna eného obrázku. Obsahuje textové pole, kam lze zadat jeho pojmenování. Defaultn jsou jména tvaru Im: íslo pracovní plochy. Dále obsahuje rozbalovací seznam s výb rem orientace ezu 3D texturou (Axial,Sagittal, Coronal) a za²krtávací pole pro nastavení, zda zobrazovat textové informace p ímo v obrázku. Jedná se o zobrazení orientace (Left, Right, Anterior, Posterior, Head, Feet), dále zobrazení m ítka (zoom), kontrastu a jasu (window center/ width (C/W)), ísla snímku série (Frame nr.). M ítko, kontrast a jas a také íslo snímku lze i v tomto kontejneru p ímo nastavit. 57

58 Obrázek 5.4: Povolený p esun obrázku. Animation Properties Kontejner obsahující nastavení animace vybraného obrázku. Animace je defaultn vypnuta a povolit ji lze za²krtnutím Animation properties. Tím se animace spustí a aktivují se dal²í nastavení pro animaci jako jsou ísla snímk, mezi kterými animace pob ºí a asový interval p echodu mezi snímky. Opened Image properties V tomto panelu jsou zobrazeny informace o obrázcích odvozených z vybrané DICOM studie. V seznamu je zde uvedena vºdy dvojice jméno pracovní plochy a jméno obrázku. Dvojklikem na poºadovaný ádek dojde k výb ru daného obrázku s p ípadným p esunem na jinou pracovní plochu. V následujícím seznamu uvedu, které z p edcházejících kontejner jsou zobrazeny v kterém ze t í moºných vzhled ovládacího panelu. Pro p edstavu jsou tyto panely zobrazeny na obrázku (5.7) a jsou to zleva: Workspace Tla ítko pro vytvo eni nové pracovní plochy (Create new workspace), atributy vybrané pracovní plochy (Workspace Properties), globální anima ní panel (Global animation panel) a tabulku s informacemi z DICOM hlavi ky (Dicom Header). Workspace Explorer Atributy vybrané pracovní plochy, (Workspace Properties), informace o obrázku (Image Info), anima ní panel obrázku (Animation properties), globální anima ní panel (Global animation panel) a tabulku s informacemi z DICOM hlavi ky (Dicom Header). Image Explorer Tla ítko pro otev ení nové studie (Open Dicom Image), seznam odvozených obrázk (Opened Image Properties), informace o obrázku (Image Info), anima ní panel obrázku (Animation properties), globální anima ní panel (Global animation panel) a tabulku s informacemi z DICOM hlavi ky (Dicom Header). 58

59 5.6 Image Obrázek 5.5: Zm na velikosti obrázku. V této ásti jsou sepsány operace, které je moºné s obrázkem studie provád t a je také popsán zp sob, jak toho docílit. V t²ina operací nad ur itými hodnotami je dostupná jak pomocí my²i, tak z ovládacího panelu. Výhoda ovládacího panelu je v moºnosti nastavit hodnoty p esn, takºe je moºné snadno nastavit více obrázk m stejné hodnoty. Posun obrázku Obrázek lze ve svém okn posunovat tahem my²í za stisku levého tla ítka. Zm na m ítka Obrázek lze p ibliºovat nebo oddalovat pomocí tahu my²í sm rem dop edu a dozadu za stisku prost edního tla ítka. St ed ²kálování je pak na pozici kurzoru my²i. Zm nu m ítka je také moºné nastavit v ovládacím panelu (zoom). Okn ní obrázku Obrázku lze m nit jas a kontrast, emuº se íká okn ní (viz Hodnota center pak ovliv uje jas a width kontrast. Tyto hodnoty lze m nit bu z ovládacího panelu, nebo tahem my²í za stisku pravého tla ítka. Posun zleva doprava sniºuje kontrast a posun shora dol sniºuje jas. Zm na orientace Obrázek je po na tení zobrazen jako axiální ez 3D texturou. Orientaci ezu lze zm nit výb rem z ovládacího panelu. 59

60 Obrázek 5.6: Volné rozmíst ní obrázk na plo²e. Posun ezu do hloubky Posun ezu do hloubky 3D textury (podle orientace ezu) lze provád t t emi zp soby. Prvním z nich je rolováním kole ka my²i. Druhým je v ovládacím panelu nastavit poºadované íslo snímku (Frame nr.). Nebo lze v objektu obrázku zobrazit posuvník (za²krtnout k íºek p ed poloºkou (Frame nr.) a pak kliknutím na posuvník se nastaví snímek ( ez) odpovídající pozici na posuvníku (viz obrázek 5.8). 5.7 Animace Obrázky medicínských studií lze animovat ve smyslu zm ny polohy ezu v hloubkové sou adnici 3D textury. Ovládání animace je uskute ováno za pomocí ovládacího panelu, konkrétn kontejneru Animation properties. Animace je defaultn vypnuta a povolit ji lze za²krtnutím polí ka Animation properties. Tím se animace spustí a aktivují se dal²í nastavení pro animaci jako jsou ísla snímk, mezi kterými animace pob ºí a asový interval p echodu mezi snímky. Lze spustit animace pro více obrázk najednou a ty lze pak mezi sebou synchronizovat pomocí panelu Global animation panel tla ítkem pro restart v²ech animací. V tomto panelu je také moºnost pozastavit v²echny probíhající animace. 5.8 Export Program umoº uje 2 druhy exportu práce do souboru. Prvním z nich je export statického snímku pracovní plochy do souboru. V Menu vybereme File a Save workspace as bitmap a zobrazí se dialog umoº ující nastavení exportu (viz obr. 5.9). V tomto dialogu je moºné nastavit cílové rozli²ení exportovaného obrázku. P i emº lze za²krtnutím nastavit, zda se má zachovat p vodní pom r stran. 60

61 Obrázek 5.7: T i typy rozmíst ní komponent na ovládacím panelu. Druhou moºností je export animací probíhajících na pracovní plo²e. V Menu vybereme File a Save workspace animation a zobrazí se dialog umoº ující nastavení exportu (viz obr. 5.10). V tomto dialogu je moºné nastavit cílové rozli²ení exportovaného videa a i zde je volba zachování pom ru stran. Navíc lze nastavit i po et snímk za vte inu výsledného videa a zda se mají ponechat statické bitmapy vytvo ené v pr b hu operace. 61

62 Obrázek 5.8: Zm na snímku ( ezu) tahem my²í po posuvníku. Obrázek 5.9: Dialog pro nastavení parametr exportu snímku. Obrázek 5.10: Dialog pro nastavení parametr exportu animace. 62

63 Kapitola 6 Záv r V této diplomové práci byl naprogramován framework umoº ující zobrazovat medicínská data. V n m jsou obrázky studií reprezentovány objekty na pracovní plo²e, s kterými m ºe uºivatel snadno manipulovat (m nit jejich polohu a velikost). Framework dokáºe provád t základní funkce nad obrazovými daty, jako je zm na konstrastu a jasu, zm na m ítka obrazu a animování p echodu mezi jednotlivými snímky série medicínských dat. Výsledky práce lze v gracké podob exportovat do soubor. Pomocí tohoto frameworku byl vytvo en program, který dokáºe na íst série medicínských studií ze soubor DICOM formátu. Práce spo ívala nejen v programovací ásti, ale p ed tím také v prozkoumávání moºností, jaké technologie pro vývoj pouºít. Tento pr zkum byl provedem za ú elem vytvo it framework tak, aby zobrazování a operace se snímky byly sviºné a vyuºívali dnes dostupné moºnosti grackého hardwaru. Toho jsem docílil vyuºítí knihovny OpenGL, která podporuje hardwarovou akceleraci pro práci z obrazovými daty a knihovny Cg, pomocí které lze psát programy p ímo pro gracké karty. Do budoucna se nabízí nap íklad moºnost vyuºít zakomponování shader pro r zné ltry nad obrazovými daty. Pomocí shader je moºné paraleln vykonávat operace nad pixely a tím tyto operace urychlit. Bylo by dobré pro²et it metody umoº ující segmentaci obrazových dat pomocí GPU (procesoru gracké karty) a vyuºít tak paralelizace pro tyto a p ípadn dal²í ú ely. Inspiraci lze nalézt na internetu a zdá se, ºe moºnosti takového zpracování obrazu jiº existují. Jist by pomocí shader ²ly naprogramovat barevné ltry pro odli²ení jednotlivých struktur lidských orgán, takzvané barevné mapy. Sou asný program postrádá moºnost uloºit rozpracovanou fázi práce s obrázky a pracovní plochou. Naskýtá se tak moºnost navrhnout a vytvo it n jaký zp sob ukládání práce na disk. Pro pot eby institutu IKEM by bylo dobré v budoucnu vytvo it klienta pro získávání dat z DICOM server a moºnost získané studie t ídit do logicky strukturovaných a pojmenovaných adresá s moºností p idávat do soubor vlastní tagy a podobn. Dále se nabízí prozkoumat jak zrychlit na ítání studií z DICOM sobor. Pro dosaºení tohoto cíle by se musely otestovat dal²í knihovny pracující s DICOM soubory, nebo by se musel naprogramovat úpln vlastní modul, který by obrazová data ze soubor rychle na etl a následn dekomprimoval pomocí existujících knihoven. 63

64 Bohuºel v rámci diplomové práce nebylo v mé moci stihnout v²echny p edloºené návrhy, a tak nezbývá neº p enechat dal²í vývoj aplikace n komu jinému. Práce na tomto programu je nejen velmi zajímavá a asto i pom rn zábavná, jako nap íklad p i práci s grakou a zpracováním obrazu. Zárove je pot eba mít na pam ti, ºe program by m l být nasazen v pom rn d leºité oblasti medicíny a je tedy nutné k vývoji takového softwaru p istupovat s velkou obez etností a asto detailn studovat p edepsané standardy. Implementace programu je na p iloºeném CD. 64

65 Seznam obrázk 2.1 Skenovací za ízení MR Sagitální snímek mozku získaný magnetickou rezonancí R zná nastavení jasu a kontrastu Rozloºení obrázk typické pro v t²inu program. Vlevo naho e axiální ez, vpravo naho e sagitální ez, vlevo dole koronální ez a vpravo dole bývá trojrozm rné zobrazení. V tomto p ípad je zde op t sagitální ez Výstup ukázkové Qt aplikace Schéma funkcionality programu Schéma grackého rozhraní Diagram t íd pro CDicom3DTexture Diagram spolupráce t íd pro CDicomHeader Diagram t íd pro CGLObject Diagram d di nosti t íd pro CGLImage Diagram spolupráce t íd pro CGLImage Diagram spolupráce t íd pro CGLImageExplorer Diagram spolupráce t íd pro CGLWidget Diagram spolupráce t íd pro CGLWorkspace Diagram spolupráce t íd pro MainWindow Snímek programu Dicom Presenter Ukazatel pr b hu na ítaní studie Nedovolený p esun obrázku Povolený p esun obrázku Zm na velikosti obrázku Volné rozmíst ní obrázk na plo²e T i typy rozmíst ní komponent na ovládacím panelu Zm na snímku ( ezu) tahem my²í po posuvníku Dialog pro nastavení parametr exportu snímku Dialog pro nastavení parametr exportu animace A.1 Cesty k hlavi kovým soubor m A.2 Cesty ke knihovnám A.3 Nastavení prom nných prost edí

66 A.4 Nastavení kompila ního pravidla

67 Literatura [1] Herout, P.: P íprava text po íta em II. Vydavatelství Západo eské univerzity, Plze 1998 [2] IKEM, Institut Klinické a Experimentální Medicíny [online], dostupný z WWW: < [3] J. Bogaert, S. Dymarkowski, A.M. Taylor, Clinical Cardiac MRI, 1st ed nd printing, 2005, XII, 556 p illus., 92 in color. With CD-ROM., Softcover, ISBN: [4] Magnetic resonance imaging. In Wikipedia : the free encyclopedia [online]., St. Petersburg (Florida) : Wikimedia Foundation, , last modif. on 12 April Anglická verze. Dostupný z WWW: < [5] Joseph P. Hornak, The Basics of NMR [online], dostupný z WWW: < [6] National Electrical Manufacturers' Association, Digital Imaging and Communications in Medicine (DICOM) Rosslyn, Va: NEMA, 2004; PS , dostupný online z WWW: < [7] Digital Imaging and Communication in Medicine. In Wikipedia : the free encyclopedia [online]., St. Petersburg (Florida) : Wikimedia Foundation, , last modif. on 6 April Anglická verze. Dostupný z WWW: < [8] Endianness. In Wikipedia : the free encyclopedia [online]., St. Petersburg (Florida) : Wikimedia Foundation, , last modif. on 7 April Anglická verze. Dostupný z WWW: < [9] OsiriX Imaging Software. OsiriX Imaging Software. [online]. Dostupný z WWW: < [10] Asclepios MedINRIA. MedINRIA. [online]. Dostupný z WWW: < 67

68 [11] MRIcro. MRIcro. [online]. Dostupný z WWW: < [12] Nokia Corporation and/or its subsidiaries. Qt Online Reference Documentation [online]. Dostupný z WWW: < [13] Mark Segal, Kurt Akeley. The OpenGL Graphics System: A Specication (Version 4.0 (Core Prole) - March 11, 2010), The Khronos Group Inc., [online]. Dostupný z WWW: < [14] OpenGL. In Wikipedia : the free encyclopedia [online]., St. Petersburg (Florida) : Wikimedia Foundation, , last modif. on 12 April Anglická verze. Dostupný z WWW: < [15] OpenGL Registry. Extension Specications [online]. Dostupný z WWW: < [16] OpenGL wiki. Getting started [online]. Dostupný z WWW: < [17] The OFFIS computer science institute. DCMTK - DICOM Toolkit wiki [online]. Dostupný z WWW: < [18] SourceForge. GDCM : Grassroots DICOM library [online]. Dostupný z WWW: < [19] OpenGL specs. glblendfunc [online]. Dostupný z WWW: < cs3421/gl/glblendfunc.html> [20] SourceForge. The OpenGL Extension Wrangler Library [online]. Dostupný z WWW: < [21] SourceForge. STEVE'S PORTABLE GAME LIBRARY [online]. Dostupný z WWW: < [22] SourceForge. EasyBMPtoAVI Movie Creator [online]. Dostupný z WWW: < [23] Support DCMTK. INSTALL le [online]. Dostupný z WWW: < [24] Forum DCMTK. FAQ #27: Compilation of DCMTK-based program fails with LNK2001 [MSVC] [online]. Dostupný z WWW: < 68

69 P íloha A Sestavení (build) projektu ve Windows Pro opera ní systém Windows jsem vytvo il projekt ve vývojovém prost edí Microsoft Visual Studio 2008 Express Edition, které je voln p ístupné ke staºení ze stránek Microsoftu. Po otev ení projektu jsou v zobrazení Solution Explorer zobrazeny adresá e inc a src, které projekt d lí na soubory deklarací a denicí. Jsou v nich obsaºeny 4 typy soubor : hlavi kové (header les -.h) zdrojové (source les -.cpp) deni ní pro gracké rozhraní (form les -.ui) soubory vygenerované kompilátory knihovny Qt (GeneratedFiles moc.cpp, ui.h) DicomPresenter je sestaven pomocí následujících knihoven (podrobn ji v kapitole 4): Qt Multiplatformní framework slouºící p edev²ím pro tvorbu grackého rozhraní. DCMTK Soubor nástroj implementující velkou ást standardu DICOM. OpenGL Knihovna pro renderování 3D objekt. GLEW Dynamická knihovna umoº ující práci s pokro ilými funkcemi OpenGL. Cg - Soubor nástroj umoº ujících programování GPU pomocí shader. PLIB Knihovna usnad ující programování multimediálních aplikací. 69

70 Knihovny DCMTK a PLIB je nutno zkompilovat pro vytvo ení staticky linkovatelných knihoven. Pomocí nástroje CMake jsem vytvo il projekt pro Visual studio a ten jsem v n m poté zkompiloval. Návod v sekci BUILDING (Win32) v instala ním dokumentu DCMTK [22]. Výsledkem kompilace jsou pak staticky linkovatelné knihovny umíst né v r zných adresá ích p íslu²ejících jednotlivým modul m toolkitu DCMTK. Pro zjednodu²ení práce jsem si zkopíroval v²echny hlavi kové soubory do jednoho adresá e include a v²echny zkompilované statické knihovny do adresá e lib. Pak sta í v nastavení Visual studia odkazovat pouze do t chto adresá. V p iloºeném souboru dev.zip jsou v²echny pot ebné knihovny jiº zkompilované a tak sta í tento soubor rozbalit do poºadovaného adresá e a poté tuto cestu p idat do nastavení Visual Studia v menu Tools->Options->Projects And Solutions->VC++ Directories P edpokládejme, ºe jsme soubor dev.zip rozbalili do adresá e C:/Progs/Dev/, pak nastavení cest k hlavi kovým soubor m bude jako na obrázku A.1. Obrázek A.1: Cesty k hlavi kovým soubor m. A nastavení cest ke statickým knihovnám jako na obrázku A.2. A.1 DCMTK statické knihovny DICOM toolkitu musí být linkovány v ur itém po adí, jinak dochází k problém m s referencemi [23]. Vnit ní závislosti knihoven jsou následující: dcmdata: ofstd. dcmimage: dcmimgle, dcmdata, ofstd. 70

71 dcmimgle: dcmdata, ofstd. Obrázek A.2: Cesty ke knihovnám. dcmjpeg: ijg8, ijg12, ijg16, dcmimage, dcmimgle, dcmdata, ofstd. dcmnet: dcmdata, ofstd. dcmpstat: dcmimage, dcmimgle, dcmsign, dcmsr, imagectn, dcmtls, dcmnet, dcmdata, ofstd. dcmsign: dcmdata, ofstd. dcmsr: dcmdata, ofstd. dcmtls: dcmnet, dcmdata, ofstd. dcmwlm: dcmnet, dcmdata, ofstd. imagectn/dcmqrdb: dcmnet, dcmdata, ofstd. Dále pak v t²ina aplikací vyuºívajících DCMTK musí být linkována s netapi32 a wsock32 knihovnami, p estoºe není vyuºívána ºádná sí ová funkcionalita. A.2 Plib P i pokusu o zkompilování Dicom Presenteru docházelo k chyb, kv li nekompatibilit znakových sad. Knihovna Plib si nerozumn la s pouºitím znakové sady UNICODE. e²ením bylo p epnout nastavení znakové sady projektu Properties->Conguration Properties- >Character Set (Not Set). 71

72 A.3 Qt Pro kompilátory knihovny Qt je pot eba nastavit cestu ke knihovn QT QTDIR do prom nných prost edí Ovládací panely->systém->up esnit->prom nné prost edí (viz obrázek A.3). Obrázek A.3: Nastavení prom nných prost edí. Pro úsp ²né zkompilování a pouºití t íd odvozených od objekt QObject je nutné deklara ní soubory t chto t íd nejprve zkompilovat QT MOC kompilátorem (moc.exce). Zkompilováním t chto soubor MOC kompilátorem se vytvo í meta-object kód pro tyto t ídy. Poté je je²t nutné zkompilovat výsledný meta kód standardním kompilátorem C++. Dále jsou v projektu soubory s p íponou ui. Jsou to XML soubory denující vzhled Qt formulá a dialog. Lze je editovat bu ru n, nebo pohodln z grackého nástroje Qt Designer, který je sou ástí balíku Qt. Otev ení v Qt Designeru docílíme kliknutím pravým tla ítkem my²i na daný ui soubor. Dále vybereme Open with..->add.. a p idáme do seznamu program designer.exe z adresá e qt/bin. Tyto soubory se poté musí zkompilovat kompilátorem uic.exe, ímº se vygenerují hlavi kové soubory s tradi ní C++ strukturou denující vzhled formulá. Aby se p edchozí soubory kompilovali skute n poºadovanými kompilátory, je pot eba nastavit jim takzvané Custom build rule. Tato pravidla lze vytvo it i v externím souboru a 72

73 následn je pouze importovat do projektu. Kompila ní pravidla (ze souboru qt_vc2008.rules) importujeme pomoci menu Project->Custom Build Rules->Find Existing. Nyní tedy sta í na dané soubory, které chceme kompilovat t mito pravidly, kliknout pravým tla ítkem my²i, vybrat Properties->Conguration Properties->General->Tool a zde zvolit pat i ný nástroj. Pro ui soubory Qt User Interface File a pro soubory obsahující deklarace t íd odvozených od QObject (obsahujících makro Q_OBJECT) vybrat QT MOC rule. Ilustrace na obrázku A.4. / 1 Obrázek A.4: Nastavení kompila ního pravidla. Kompilací dojde k vytvo ení soubor v adresá i GeneratedFiles (nastaveno v qt_vc2008.rules). Tyto soubory je pot eba importovat do projektu, pomocí menu Project->Add Existing Items a zkompilovat pomocí standardního kompilátoru. Tady je pot eba si dávat pozor, protoºe po zav ení a znovu otev ení projektu se nastavení t chto kompila ních pravidel vºdy ztratí (alespo ve Visual C Express Edition) a provedeme-li n jaké zm ny v rámci ui nebo v deklaraci QT objekt (nap íklad p idání nových signál a slot ), tak se tyto zm ny nezkompilují, dokud neprovedeme op tovné nastavení pravidel podle postupu popsaného v p edcházejícím odstavci. A.4 Seznam staticky linkovaných knihoven projektu DICOM Presenter P i linkování je dobré se drºet vypsaného po adí knihoven: cg.lib 73

1 Magnetická rezonance

1 Magnetická rezonance Obsah 1 Magnetická rezonance 2 1.1 Pouºití v medicín................................ 2 1.2 Stru ná historie MRI............................... 3 1.3 Princip MRI.................................... 3 1.4

Více

Integrování jako opak derivování

Integrování jako opak derivování Integrování jako opak derivování V tomto dokumentu budete seznámeni s derivováním b ºných funkcí a budete mít moºnost vyzkou²et mnoho zp sob derivace. Jedním z nich je proces derivování v opa ném po adí.

Více

Skalární sou in. Úvod. Denice skalárního sou inu

Skalární sou in. Úvod. Denice skalárního sou inu Skalární sou in Jedním ze zp sob, jak m ºeme dva vektory kombinovat, je skalární sou in. Výsledkem skalárního sou inu dvou vektor, jak jiº název napovídá, je skalár. V tomto letáku se nau íte, jak vypo

Více

Vektory. Vektorové veli iny

Vektory. Vektorové veli iny Vektor je veli ina, která má jak velikost tak i sm r. Ob tyto vlastnosti musí být uvedeny, aby byl vektor stanoven úpln. V této ásti je návod, jak vektory zapsat, jak je s ítat a od ítat a jak je pouºívat

Více

DeepBurner (testování UI)

DeepBurner (testování UI) ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Semestrální práce DeepBurner (testování UI) Blaºej, Friebel, Olexová, Volf P edm t: Testování uºivatelských rozhraní Obor: Softwarové inºenýrství

Více

Knihovna QT4 a moºnosti jejího vyuºití

Knihovna QT4 a moºnosti jejího vyuºití Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 2.6.2010 Osnova 1 Úvod 2 Seznámení s Qt4 3 Prost edí QtCreator 4 Vyuºití v praxi Problém Aplikace pro ovládání realtime PCR za

Více

DUM 05 téma: Základy obsluha Gimp

DUM 05 téma: Základy obsluha Gimp DUM 05 téma: Základy obsluha Gimp ze sady: 02 tematický okruh sady: Bitmapová grafika ze šablony: 09 Počítačová grafika určeno pro: 2. ročník vzdělávací obor: 18-20-M/01 Informační technologie - Aplikace

Více

Vyuºití GPGPU pro zpracování dat z magnetické rezonance

Vyuºití GPGPU pro zpracování dat z magnetické rezonance Vyuºití pro zpracování dat z magnetické rezonance Katedra matematiky, Fakulta jaderná a fyzikáln inºenýrská, ƒeské vysoké u ení technické v Praze Bakalá ská práce 2007/2008 Cíle práce Zpracování dat z

Více

Stru ný obsah. Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15

Stru ný obsah. Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15 Stru ný obsah Úvod...11 Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15 Základy grafiky, první hra Kapitola 2: Návrh první hry...31 Kapitola 3: Pochopení kostry aplikace DirectX...39 Kapitola

Více

Základní praktikum laserové techniky

Základní praktikum laserové techniky Základní praktikum laserové techniky Fakulta jaderná a fyzikáln inºenýrská Úloha 4: Zna kování TEA CO 2 laserem a m ení jeho charakteristik Datum m ení: 1.4.2015 Skupina: G Zpracoval: David Roesel Kruh:

Více

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné Analyzujte, navrhněte a implementujte aplikaci pro sledování spánku dětí Chůvička pro telefony na platformě Android. Od existujících aplikací se bude aplikace odlišovat tímto: funkční na dual-sim telefonech

Více

BOZP - akcepta ní testy

BOZP - akcepta ní testy BOZP - akcepta ní testy Kristýna Streitová Zadavatel: Ing. Ji í Chludil 13. prosince 2011 Obsah 1 Úvod 2 1.1 Popis test....................................... 2 2 Testy 3 2.1 ID - 1 P ihlá²ení do systému.............................

Více

Limity funkcí v nevlastních bodech. Obsah

Limity funkcí v nevlastních bodech. Obsah Limity funkcí v nevlastních bodech V tomto letáku si vysv tlíme, co znamená, kdyº funkce mí í do nekone na, mínus nekone na nebo se blíºí ke konkrétnímu reálnému íslu, zatímco x jde do nekone na nebo mínus

Více

TECHNICKÁ UNIVERZITA V LIBERCI

TECHNICKÁ UNIVERZITA V LIBERCI TECHNICKÁ UNIERZITA LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Základy digitálního obrazu. ektorová a rastrová grafika. Učební text Ivan Jaksch Liberec 2012 Materiál vznikl v rámci

Více

AutoCAD Architecture 2008

AutoCAD Architecture 2008 AutoCAD Architecture 2008 AutoCAD Architecture 2008 (dále jen ACA2008) je nová verze (a nový název) známého a oblíbeného stavařského programového balíku Architectural Desktop (ADT). Je speciálně navržený

Více

Magnetohydrodynamický pohon

Magnetohydrodynamický pohon aneb pohon bez p evod Jakub Klemsa David Kle ka Jakub Kubi² Fyzikální seminá Fakulta jaderná a fyzikáln inºenýrská 25. listopadu 2010 Obsah 1 P í ina hnací síly Proud v elektrolytu P idruºené jevy 2 Závislost

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů. Naučí nás rozdělit

Více

Android Elizabeth. Verze: 1.3

Android Elizabeth. Verze: 1.3 Android Elizabeth Program pro měření mezičasů na zařízeních s OS Android Verze: 1.3 Naposledy upraveno: 12. března 2014 alesrazym.cz Aleš Razým fb.com/androidelizabeth Historie verzí Verze Datum Popis

Více

2C06028-00-Tisk-ePROJEKTY

2C06028-00-Tisk-ePROJEKTY Stránka. 27 z 50 3.2. ASOVÝ POSTUP PRACÍ - rok 2009 3.2.0. P EHLED DÍL ÍCH CÍL PLÁNOVANÉ 2009 íslo podrobn Datum pln ní matematicky formulovat postup výpo t V001 výpo etní postup ve form matematických

Více

Vektor náhodných veli in - práce s více prom nnými

Vektor náhodných veli in - práce s více prom nnými Vektor náhodných veli in - práce s více prom nnými 12. kv tna 2015 N kdy k popisu n jaké situace pot ebujeme více neº jednu náhodnou veli inu. Nap. v k, hmotnost, vý²ku. Mezi t mito veli inami mohou být

Více

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio Aplikační list Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio Ref: 15032007 KM Obsah Vyvažování v jedné rovině bez měření fáze signálu...3 Nevýhody vyvažování jednoduchými přístroji...3

Více

Obsah. I Zakázka na dodávku audiovizuální techniky v etn montáºe, zapojení a pro²kolení 1. II Technická specikace zakázky 2. III Kontaktní osoba 7

Obsah. I Zakázka na dodávku audiovizuální techniky v etn montáºe, zapojení a pro²kolení 1. II Technická specikace zakázky 2. III Kontaktní osoba 7 ZÁKLADNÍ KOLA LITOM ICE, BOšENY N MCOVÉ 2 Boºeny N mcové 2, 412 01 Litom ice e-mail: skolabn@skolabn.cz, telefon: 416 735 797 IƒO 46773312 web: www.skolabn.cz Obsah I Zakázka na dodávku audiovizuální techniky

Více

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS Název projektu: Redesign Statistického informačního systému v návaznosti na zavádění egovernmentu v ČR Příjemce: Česká republika Český statistický úřad Registrační číslo projektu: CZ.1.06/1.1.00/07.06396

Více

Konceptuální modelování

Konceptuální modelování Konceptuální modelování Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS

Více

Semestrální práce z p edm tu URM (zadání), 2014/2015:

Semestrální práce z p edm tu URM (zadání), 2014/2015: Semestrální práce z p edm tu URM (zadání), 2014/2015: 1. Vyzna te na globusu cestu z jihu Grónska na jih Afriky, viz Obrázek 1. V po áte ní a cílové destinaci bude zapíchnutý ²pendlík sm ující do st edu

Více

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace Franti²ek N mec (xnemec61) xnemec61@stud.t.vutbr.cz 1 Úvod Úkolem tohoto projektu bylo vytvo it aplikaci, která bude demonstrovat

Více

Kelvin v kapkový generátor

Kelvin v kapkový generátor Kelvin v kapkový generátor Kry²tof Kadlec 1, Luká² Kune² 2, Luká² N me ek 3 1 Gymnázium Franti²ka Palackého, Vala²ské Mezi í í, krystoof.2@seznam.cz 2 Gymnázium, Zlatá stezka 137, Prachatice, kunamars@seznam.cz

Více

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika: Programovatelný výpočtový měřič fyzikálních veličin Stručná charakteristika: je určen pro měření libovolné fyzikální veličiny, která je reprezentována napětím nebo ji lze na napětí převést. Zpětný převod

Více

IP kamerový systém Catr - uºivatelský návod k obsluze

IP kamerový systém Catr - uºivatelský návod k obsluze IP kamerový systém Catr - uºivatelský návod k obsluze Obsah P ipoj se k nám! Úvod 3 P ístup do systému 3 Po íta s Windows 3 Prvotní instalace 3 Ovládání kamerového systému na po íta i 5 šivý náhled...................................................

Více

Sazba zdrojových kód. Jakub Kadl ík 20. 03. 2014

Sazba zdrojových kód. Jakub Kadl ík 20. 03. 2014 Sazba zdrojových kód Jakub Kadl ík 20. 03. 2014 1 Obsah 1 Základní prost edí verbatim 3 2 Balí ek listings 3 3 Sazba kódu z externího souboru 5 4 Téma Solarized 5 4.1 Solarized light.............................

Více

Pr b h funkce I. Obsah. Maxima a minima funkce

Pr b h funkce I. Obsah. Maxima a minima funkce Pr b h funkce I Maxima a minima funkce V této jednotce ukáºeme jak derivování m ºe být uºite né pro hledání minimálních a maximálních hodnot funkce. Po p e tení tohoto letáku nebo shlédnutí instruktáºního

Více

Centrum digitální optiky

Centrum digitální optiky Centrum digitální optiky Software pro ízení PMS a digitální rekonstrukci obrazu Interní i.. RC201301 Rok vydání: 2013 Interní identika ní íslo: RC201301 Autor: Mgr. Radek ƒelechovský, Ph.D. Vlastník: Univerzita

Více

Uºivatelská p íru ka k programu SlaFoR verze 1.0

Uºivatelská p íru ka k programu SlaFoR verze 1.0 1 Uºivatelská p íru ka k programu SlaFoR verze 1.0 Toto je manuál k programu SlaFoR 1.0 (Slab Forces & Reinforcement), který byl vytvo en v rámci bakalá ské práce na kated e betonových a zd ných konstrukcí

Více

Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s.

Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s. Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s. Tomáš D dina, Lubomír Herman Severomoravská plynárenská, a.s. Hlavní d vody realizace Podmínkou bezpe nosti a spolehlivosti

Více

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody V praxi se asto setkávame s p ípady, kdy je pot eba e²it více rovnic, takzvaný systém rovnic, obvykle s více jak jednou neznámou.

Více

Odpájecí stanice pro SMD. Kontrola teploty, digitální displej, antistatické provedení SP-HA800D

Odpájecí stanice pro SMD. Kontrola teploty, digitální displej, antistatické provedení SP-HA800D Odpájecí stanice pro SMD Kontrola teploty, digitální displej, antistatické provedení SP-HA800D Upozornění Teplota trysek je 400 C a v případě nesprávného zacházení s přístrojem může dojít ke zranění, požáru

Více

účetních informací státu při přenosu účetního záznamu,

účetních informací státu při přenosu účetního záznamu, Strana 6230 Sbírka zákonů č. 383 / 2009 Částka 124 383 VYHLÁŠKA ze dne 27. října 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních

Více

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE. 2005-2008 Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6 www.hydrosoft.eu

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE. 2005-2008 Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6 www.hydrosoft.eu WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE 2005-2008 Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6 www.hydrosoft.eu Obsah Obsah 1 1.1 3 Internetový... prohlížeč map 4 Rozložení ovládacích... prvků

Více

T i hlavní v ty pravd podobnosti

T i hlavní v ty pravd podobnosti T i hlavní v ty pravd podobnosti 15. kv tna 2015 První p íklad P edstavme si, ºe máme atomy typu A, které se samovolným radioaktivním rozpadem rozpadají na atomy typu B. Pr m rná doba rozpadu je 3 hodiny.

Více

Memoria Mundi Series Bohemica z trezoru na Internet

Memoria Mundi Series Bohemica z trezoru na Internet Memoria Mundi Series Bohemica z trezoru na Internet Ing. Stanislav Psohlavec AiP Beroun s.r.o. Pilíře projektu MMSB... 1 Digitalizace, digitální dokumenty, digitální knihovna... 1 MASTER... 1 Využívání

Více

EDSTAVENÍ ZÁZNAMNÍKU MEg21

EDSTAVENÍ ZÁZNAMNÍKU MEg21 EDSTAVENÍ ZÁZNAMNÍKU MEg21 Ing. Markéta Bolková, Ing. Karel Hoder, Ing. Karel Spá il MEgA M ící Energetické Aparáty, a.s. V uplynulém období bylo vyvinuto komplexní ešení pro sb r a analýzu dat protikorozní

Více

Prohlá²ení. V Praze dne 18. dubna 2010...

Prohlá²ení. V Praze dne 18. dubna 2010... ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta Bakalá ská práce Studentova Berli ka III - Jádro aplikace Jaromír Van k Vedoucí práce: Ing. Ji í Chludil Studijní program: Softwarové

Více

Analýza oběžného kola

Analýza oběžného kola Vysoká škola báňská Technická univerzita 2011/2012 Analýza oběžného kola Radomír Bělík, Pavel Maršálek, Gȕnther Theisz Obsah 1. Zadání... 3 2. Experimentální měření... 4 2.1. Popis měřené struktury...

Více

Centrum digitální optiky

Centrum digitální optiky Centrum digitální optiky Pracovní balí ek. 2 - Digitální Ramanova spektroskopie a Ramanova optická aktivita Software pro synchronní ízení systém pro p esné polohování optických komponent Interní i.. RC201302

Více

Zadání. Založení projektu

Zadání. Založení projektu Zadání Cílem tohoto příkladu je navrhnout symetrický dřevěný střešní vazník délky 13 m, sklon střechy 25. Materiálem je dřevo třídy C24, fošny tloušťky 40 mm. Zatížení krytinou a podhledem 0,2 kn/m, druhá

Více

Prezentace. Ing. Petr V elák 6. b ezna 2009

Prezentace. Ing. Petr V elák 6. b ezna 2009 Prezentace Ing. Petr V elák 6. b ezna 2009 1 OBSAH OBSAH Obsah 1 Úvodní slovo 3 2 P íprava prezentace 4 2.1 Jak prezentace ned lat........................ 4 2.1.1 Kontrast písma a pozadí...................

Více

Autodesk Inventor 8 vysunutí

Autodesk Inventor 8 vysunutí Nyní je náčrt posazen rohem do počátku souřadného systému. Autodesk Inventor 8 vysunutí Následující text popisuje vznik 3D modelu pomocí příkazu Vysunout. Vyjdeme z náčrtu na obrázku 1. Obrázek 1: Náčrt

Více

Binární operace. Úvod. Pomocný text

Binární operace. Úvod. Pomocný text Pomocný text Binární operace Úvod Milí e²itelé, binární operace je pom rn abstraktní téma, a tak bude ob as pot eba odprostit se od konkrétních p íklad a podívat se na v c s ur itým nadhledem. Nicmén e²ení

Více

Vláda nařizuje podle 133b odst. 2 zákona č. 65/1965 Sb., zákoník práce, ve znění zákona č. 155/2000 Sb.:

Vláda nařizuje podle 133b odst. 2 zákona č. 65/1965 Sb., zákoník práce, ve znění zákona č. 155/2000 Sb.: 11/2002 Sb. NAŘÍZENÍ VLÁDY ze dne 14. listopadu 2001, kterým se stanoví vzhled a umístění bezpečnostních značek a zavedení signálů Změna: 405/2004 Sb. Vláda nařizuje podle 133b odst. 2 zákona č. 65/1965

Více

Základy graky. Jan Hamá ek. 13. zá í 2016

Základy graky. Jan Hamá ek. 13. zá í 2016 13. zá í 2016 Barevné systémy Jak uloºit efektivn barvu do po íta e? Barevné systémy Jak uloºit efektivn barvu do po íta e?nej ast ji pouºíváme systém RGB - Red, Green, Blue. Barva - trojice ísel (R, G,

Více

8. Struktura údaj na LCD displeji

8. Struktura údaj na LCD displeji Metody nabíjení NiCd a NiMH akumulátor 56 8. Struktura údaj na LCD displeji 8.1 Hlavní menu Hlavní menu je zobrazeno vždy po spušt ní nabíje e. Jsou zde prozatím dv volby a to Výb r profilu nabíjení a

Více

simphoto verze Manuál k aplikaci Autor: Datum:

simphoto verze Manuál k aplikaci Autor: Datum: Manuál k aplikaci simphoto verze 12.2010 Autor: David Datum: íºek 17.12. 2010 Obsah Úvod 2 1 Základní ovládání 3 2 Na tení snímku 3 3 Eliminace distorze objektivu 4 4 Tvorba fotoplánu p i m ených vlícovacích

Více

Antény. Zpracoval: Ing. Jiří. Sehnal. 1.Napájecí vedení 2.Charakteristické vlastnosti antén a základní druhy antén

Antény. Zpracoval: Ing. Jiří. Sehnal. 1.Napájecí vedení 2.Charakteristické vlastnosti antén a základní druhy antén ANTÉNY Sehnal Zpracoval: Ing. Jiří Antény 1.Napájecí vedení 2.Charakteristické vlastnosti antén a základní druhy antén Pod pojmem anténa rozumíme obecně prvek, který zprostředkuje přechod elektromagnetické

Více

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy -1- I I. N á v r h VYHLÁŠKY ze dne 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních informací státu a o požadavcích na technické

Více

1.7. Mechanické kmitání

1.7. Mechanické kmitání 1.7. Mechanické kmitání. 1. Umět vysvětlit princip netlumeného kmitavého pohybu.. Umět srovnat periodický kmitavý pohyb s periodickým pohybem po kružnici. 3. Znát charakteristické veličiny periodického

Více

P íklad 1 (Náhodná veli ina)

P íklad 1 (Náhodná veli ina) P íklad 1 (Náhodná veli ina) Uvaºujeme experiment: házení mincí. Výsledkem pokusu je rub nebo líc, ºe padne hrana neuvaºujeme. Pokud hovo íme o náhodné veli in, musíme p epsat výsledky pokusu do mnoºiny

Více

Kótování na strojnických výkresech 1.část

Kótování na strojnických výkresech 1.část Kótování na strojnických výkresech 1.část Pro čtení výkresů, tj. určení rozměrů nebo polohy předmětu, jsou rozhodující kóty. Z tohoto důvodu je kótování jedna z nejzodpovědnějších prací na technických

Více

TRANSFORMACE. Verze 4.0

TRANSFORMACE. Verze 4.0 TRANSFORMACE Verze 4.0 Obsah: 1. Instalace 1.1. Požadavky programu 1.2. Ochrana programu 1.3. Instalace 2. Rastr 2.1 Rastrové referenční výkresy 2.1.1 Menu Nástroje 3. Transformace rastru 3.1 Otevřít 3.2

Více

P epravní za ízení pro palivový lánek IRT-4M

P epravní za ízení pro palivový lánek IRT-4M P íloha II P epravní za ízení pro palivový lánek IRT-4M P íloha II List: 1 z 8 Obsah Úvod 2 1 Popis transportního kontejneru 2 2 Stojan kontejneru do nádoby H02 5 3 Odkládací stojan na podlahu 6 Záv r

Více

1 Data. 2 Výsledky m ení velikostí. Statistika velikostí výtrus. Roman Ma ák

1 Data. 2 Výsledky m ení velikostí. Statistika velikostí výtrus. Roman Ma ák Statistika velikostí výtrus Roman Ma ák 6.2.216 1 Data Velikost výtrus (udávaná obvykle v µm) pat í u hub k významným ur ovacím znak m, mnohdy se dva druhy makromycet li²í dokonce pouze touto veli inou.

Více

TECHNICKÁ UNIVERZITA V LIBERCI

TECHNICKÁ UNIVERZITA V LIBERCI TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Anemometrické metody Učební text Ing. Bc. Michal Malík Ing. Bc. Jiří Primas Liberec 2011 Materiál vznikl v rámci

Více

3D sou adnicový m icí stroj. Od vodn ní vymezení technických podmínek podle 156 odst. 1 písm. c) zákona. 137/2006 Sb.

3D sou adnicový m icí stroj. Od vodn ní vymezení technických podmínek podle 156 odst. 1 písm. c) zákona. 137/2006 Sb. Název ve ejné zakázky: 3D sou adnicový m icí stroj Od vodn ní vymezení technických podmínek podle 156 odst. 1 písm. c) zákona. 137/2006 Sb. Technická podmínka: Od vodn ní Je požadován 3D sou adnicový m

Více

ASYNCHRONNÍ STROJ. Trojfázové asynchronní stroje. n s = 60.f. Ing. M. Bešta

ASYNCHRONNÍ STROJ. Trojfázové asynchronní stroje. n s = 60.f. Ing. M. Bešta Trojfázové asynchronní stroje Trojfázové asynchronní stroje někdy nazývané indukční se většinou provozují v motorickém režimu tzn. jako asynchronní motory (zkratka ASM). Jsou to konstrukčně nejjednodušší

Více

IPCorder KNR-100 Instala ní p íru ka

IPCorder KNR-100 Instala ní p íru ka IPCorder KNR-100 Instala ní p íru ka 12. srpna 2007 2 Obsah 1 Instalace 5 1.1 Obsah balení....................................... 5 1.2 Instalace pevného disku................................. 5 1.3 Zapojení

Více

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13 Seminá e Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11, sem.

Více

7. Stropní chlazení, Sálavé panely a pasy - 1. část

7. Stropní chlazení, Sálavé panely a pasy - 1. část Základy sálavého vytápění (2162063) 7. Stropní chlazení, Sálavé panely a pasy - 1. část 30. 3. 2016 Ing. Jindřich Boháč Obsah přednášek ZSV 1. Obecný úvod o sdílení tepla 2. Tepelná pohoda 3. Velkoplošné

Více

STANOVISKO č. STAN/1/2006 ze dne 8. 2. 2006

STANOVISKO č. STAN/1/2006 ze dne 8. 2. 2006 STANOVISKO č. STAN/1/2006 ze dne 8. 2. 2006 Churning Churning je neetická praktika spočívající v nadměrném obchodování na účtu zákazníka obchodníka s cennými papíry. Negativní následek pro zákazníka spočívá

Více

Rastrová a vektorová data

Rastrová a vektorová data Počítačová grafika Rastrová a vektorová data Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU 1. V barevném modelu RGB pro 24bitové barvy bude zelená popsána trojicí: a) (0,

Více

Po etní geometrie. Výpo et délky p epony: c 2 = a 2 + b 2 Výpo et délky odv sny: a 2 = c 2 b 2, b 2 = c 2 a 2

Po etní geometrie. Výpo et délky p epony: c 2 = a 2 + b 2 Výpo et délky odv sny: a 2 = c 2 b 2, b 2 = c 2 a 2 Po etní geometrie Pythagorova v ta Obsah tverce nad p eponou je roven sou tu obsah tverc nad ob ma odv snami. Výpo et délky p epony: c = a + b Výpo et délky odv sny: a = c b, b = c a P íklad 1: Vypo t

Více

Seriál: Management projektů 7. rámcového programu

Seriál: Management projektů 7. rámcového programu Seriál: Management projektů 7. rámcového programu Část 4 Podpis Konsorciální smlouvy V předchozím čísle seriálu o Managementu projektů 7. rámcového programu pro výzkum, vývoj a demonstrace (7.RP) byl popsán

Více

Pracovní listy s komponentou ICT

Pracovní listy s komponentou ICT Téma: Dálkový průzkum Země Časová dotace: 3 hodiny Pracovní listy s komponentou ICT Cíl: Pochopení principu dálkového průzkumu Země, práce se snímkem v prostředí programu MultiSpec, zobrazování snímku

Více

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb 1 VŠEOBECNĚ ČSN EN 1991-1-1 poskytuje pokyny pro stanovení objemové tíhy stavebních a skladovaných materiálů nebo výrobků, pro vlastní

Více

Novinky verzí SKLADNÍK 4.24 a 4.25

Novinky verzí SKLADNÍK 4.24 a 4.25 Novinky verzí SKLADNÍK 4.24 a 4.25 Zakázky standardní přehled 1. Možnosti výběru 2. Zobrazení, funkce Zakázky přehled prací 1. Možnosti výběru 2. Mistři podle skupin 3. Tisk sumářů a skupin Zakázky ostatní

Více

Laserové skenování principy

Laserové skenování principy fialar@kma.zcu.cz Podpořeno z projektu FRVŠ 584/2011 Co je a co umí laserové skenování? Laserové skenovací systémy umožňují bezkontaktní určování prostorových souřadnic, 3D modelování vizualizaci složitých

Více

Uºivatelská p íru ka Octopus

Uºivatelská p íru ka Octopus Uºivatelská p íru ka Octopus Jan Bojko 11. prosince 2014 Abstrakt Uºivatelská p íru ka k aplikaci Octopus. Obsah 1 Úvod 2 2 P ihlá²ení 2 3 Naviga ní menu 2 4 Práce s tabulkou 3 5 Editace 6 5.1 Nový záznam.............................

Více

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ Pozemkem se podle 2 písm. a) katastrálního zákona rozumí část zemského povrchu, a to část taková, která je od sousedních částí zemského povrchu (sousedních pozemků)

Více

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné Analyzujte, navrhněte a implementujte aplikaci pro sledování spánku dětí Chůvička pro telefony na platformě Android. Od existujících aplikací se bude aplikace odlišovat tímto: funkční na dual-sim telefonech

Více

Co je L Y X? Vlastnosti a nástroje Instalace Zdroje. Adam Farnik. V B - TU Ostrava. Elektronické publikování, 2008

Co je L Y X? Vlastnosti a nástroje Instalace Zdroje. Adam Farnik. V B - TU Ostrava. Elektronické publikování, 2008 LYX Adam Farnik V B - TU Ostrava Elektronické publikování, 2008 Osnova 1 Co je LYX? 2 Vlastnosti a nástroje Formatování textu Matematický reºim Dal²í moºnosti 3 Instalace 4 Zdroje WYSIWYM WYSIWYG prost

Více

Programs and Updates Desktop. Verze 2016.04 (16.04.19.1) Insider Preview Uživatelská příručka

Programs and Updates Desktop. Verze 2016.04 (16.04.19.1) Insider Preview Uživatelská příručka Programs and Updates Desktop Verze 2016.04 (16.04.19.1) Insider Preview KONTAKT ZOBEC Consulting, Renneská třída 393/12, 63900 Brno, Česká Republika www.zobecconsulting.cz obchod@zobec.net Facebook Twitter

Více

Formáty pro rastrovou grafiku

Formáty pro rastrovou grafiku Semestrální práce z předmětu Kartografická polygrafie a reprografie Formáty pro rastrovou grafiku Autor: Linda Křikavová, Ondřej Vala Editor: Miroslav Ott Praha, březen 2011 Katedra mapování a kartografie

Více

Studie proveditelnosti. Marketingová analýza trhu

Studie proveditelnosti. Marketingová analýza trhu Studie proveditelnosti Marketingová analýza trhu Cíl semináře Seznámení se strukturou marketingové analýzy trhu jakou součástí studie proveditelnosti Obsah 1. Analýza makroprostředí 2. Definování cílové

Více

Inteligentní zastávky Ústí nad Labem

Inteligentní zastávky Ústí nad Labem Příloha č. 7 Technická specifikace pro veřejnou zakázku Inteligentní zastávky Ústí nad Labem nadlimitní veřejná zakázka na realizaci inteligentních zastávek zadávaná v otevřeném řízení, dle zákona o veřejných

Více

Obsah. Obsah. Úvod... 7

Obsah. Obsah. Úvod... 7 Obsah Obsah Úvod... 7 1. Digitální fotografie... 10 1.1 Prohlížení obrázků pomocí Nero PhotoSnap Viewer... 10 1.1.1 Zobrazení na celou obrazovku...12 1.1.2 Jak zjednodušit přechod do jiné složky...13 1.1.3

Více

DYNAMICKÉ VÝPOČTY PROGRAMEM ESA PT

DYNAMICKÉ VÝPOČTY PROGRAMEM ESA PT DYNAMICKÉ VÝPOČTY PROGRAMEM ESA PT Doc. Ing. Daniel Makovička, DrSc.*, Ing. Daniel Makovička** *ČVUT v Praze, Kloknerův ústav, Praha 6, **Statika a dynamika konstrukcí, Kutná Hora 1 ÚVOD Obecně se dynamickým

Více

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1 Úvod, terminologie Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11,

Více

Objektově orientované databáze

Objektově orientované databáze Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Co potřebujeme modelovat? Identifikace entit v~relačních SŘBD Co je to objektová

Více

HLAVA III PODROBNOSTI O VEDENÍ ÚST EDNÍHO SEZNAMU OCHRANY P ÍRODY

HLAVA III PODROBNOSTI O VEDENÍ ÚST EDNÍHO SEZNAMU OCHRANY P ÍRODY HLAVA III PODROBNOSTI O VEDENÍ ÚST EDNÍHO SEZNAMU OCHRANY P ÍRODY (K 42 odst. 2 zákona) 5 (1) Úst ední seznam ochrany p írody (dále jen "úst ední seznam") zahrnuje soupis, popis, geometrické a polohové

Více

NÁVOD K OBSLUZE. Obj. č.: 64 61 50

NÁVOD K OBSLUZE. Obj. č.: 64 61 50 NÁVOD K OBSLUZE Obj. č. 64 61 50 Úvod Vážení zákazníci, děkujeme za Vaši důvěru a za nákup našeho malého bezdrátového pokojového a venkovního teploměru. Tento přístroj dokáže přijímat signály naměřené

Více

- regulátor teploty vratné vody se záznamem teploty

- regulátor teploty vratné vody se záznamem teploty - regulátor teploty vratné vody se záznamem teploty Popis spolu s ventilem AB-QM a termelektrickým pohonem TWA-Z představují kompletní jednotrubkové elektronické řešení: AB-QTE je elektronický regulátor

Více

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE 1. Přehled možností programu 1.1. Hlavní okno Hlavní okno programu se skládá ze čtyř karet : Projekt, Zadání, Výsledky a Návrhový

Více

Obrazová data. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.2487/2011

Obrazová data. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.2487/2011 Obrazová data Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 Osnova Zdroje obrazové informace Digitální obraz Obrazové formáty DICOM Zdroje

Více

EMC2399. Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399

EMC2399. Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399 EMC2399 Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399 Uživatelská příručka EMPOS spol. s r.o. 1. Obsah 1. Obsah... 2 2. Určení programového

Více

GIGAmatic. Tenzometrický přetěžovací převodník. 1. Popis 2. 2. Použití 2. 3. Technické informace 2. 4. Nastavení 3. 5. Popis funkce 6. 6.

GIGAmatic. Tenzometrický přetěžovací převodník. 1. Popis 2. 2. Použití 2. 3. Technické informace 2. 4. Nastavení 3. 5. Popis funkce 6. 6. GIGAmatic Tenzometrický přetěžovací převodník OBSAH 1. Popis 2 2. Použití 2 3. Technické informace 2 4. Nastavení 3 5. Popis funkce 6 6. Zapojení 8 7. Údržba 9 Strana # 1 z 8 Revize: 1.8 Květen 2007 1.

Více

5. Legislativní opatření a jejich vliv na vývoj pracovní neschopnosti pro nemoc a úraz

5. Legislativní opatření a jejich vliv na vývoj pracovní neschopnosti pro nemoc a úraz 5. Legislativní opatření a jejich vliv na vývoj pracovní neschopnosti pro nemoc a úraz Úroveň pracovní neschopnosti pro nemoc a úraz je v zásadě dána dvěma rozdílnými faktory. Prvým z nich je objektivní

Více

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web:

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web: Pravd podobnost a statistika - cvi ení Simona Domesová simona.domesova@vsb.cz místnost: RA310 (budova CPIT) web: http://homel.vsb.cz/~dom0015 Cíle p edm tu vyhodnocování dat pomocí statistických metod

Více

Školní kolo soutěže Mladý programátor 2016, kategorie A, B

Školní kolo soutěže Mladý programátor 2016, kategorie A, B Doporučené hodnocení školního kola: Hodnotit mohou buď učitelé školy, tým rodičů nebo si žáci, kteří se zúčastní soutěže, mohou ohodnotit úlohy navzájem sami (v tomto případě doporučujeme, aby si žáci

Více

Nastavení vestav ného p evodníku Ethernet -> sériová linka ES01

Nastavení vestav ného p evodníku Ethernet -> sériová linka ES01 KMB systems, s. r. o. Dr. M. Horákové 559, 460 06 Liberec 7, Czech Republic tel. +420 485 130 314, fax +420 482 736 896 E-mail: kmb@kmb.cz, Web: www.kmb.cz Nastavení vestav ného p evodníku Ethernet ->

Více

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU Ing. Jiří Čarský, Ph.D. (Duben 2007) Komplexní přehled o podílu jednotlivých druhů

Více

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Kapitola 1: Co je Delphi 19. Překlad projektu 23 Obsah Úvod 15 Pro koho je tato kniha 15 Obsah jednotlivých kapitol knihy 16 Typografické konvence 17 Použité ikony 17 Kontakt na autora 17 Poděkování 18 Kapitola 1: Co je Delphi 19 Verze Delphi 19 Co je

Více

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

29 Evidence smluv. Popis modulu. Záložka Evidence smluv 29 Evidence smluv Uživatelský modul Evidence smluv slouží ke správě a evidenci smluv organizace s možností připojení vlastní smlouvy v elektronické podobě včetně přidělování závazků ze smluv jednotlivým

Více