• No results found

REALIZACE PROGRAMU PRO OPTIMALIZACE TVARU A VELIKOSTI VNITˇRN´ICH P´ANEVN´ICH DLAH Z ˇREZ˚U CT

N/A
N/A
Protected

Academic year: 2022

Share "REALIZACE PROGRAMU PRO OPTIMALIZACE TVARU A VELIKOSTI VNITˇRN´ICH P´ANEVN´ICH DLAH Z ˇREZ˚U CT"

Copied!
99
0
0

Loading.... (view fulltext now)

Full text

(1)

REALIZACE PROGRAMU PRO

OPTIMALIZACE TVARU A VELIKOSTI VNITˇ RN´ICH P´ ANEVN´ICH DLAH Z ˇ REZ˚ U

CT

Bakal´ aˇrsk´ a pr´ ace

Studijn´ı program: B3944 – Biomedic´ınsk´a technika Studijn´ı obor: 3901R032 – Biomedic´ınsk´a technika Autor pr´ace: Bc. Martin Hunˇek

Vedouc´ı pr´ace: MUDr. Jaroslav ˇSr´am

(2)

IMPLEMENTATION OF PROGRAM FOR SHAPE AND DIMENSIONS

OPTIMIZATION OF PELVIS INTERNAL FIXATOR BASED UPON

COMPUTER-ASSISTED TOMOGRAPHY IMAGES

Bachelor thesis

Study programme: B3944 – Biomedical technology Study branch: 3901R032 – Biomedical technology

Author: Bc. Martin Hunˇek

Supervisor: MUDr. Jaroslav ˇSr´am

(3)
(4)
(5)
(6)
(7)

Abstrakt

Tato pr´ace se zab´yv´a n´avrhem postup˚u a tvorbou konkr´etn´ı imple- mentace vyhodnocov´an´ı prostorov´ych dispozic p´anve. Jako zdroj p˚uvodn´ıch dat je v t´eto pr´aci uvaˇzov´an pˇredem definovan´y CT ˇrez pˇredem vyexportovan´y z form´atu DICOM do form´atu JPEG.

Prvn´ım v´ystupem t´eto pr´ace m´a b´yt kˇrivka rozhran´ı kost-ostatn´ı tk´aˇn z dodan´eho ˇrezu (v p´anevn´ı rovinˇe) v m´ıstech pro pˇrikl´ad´an´ı vnitˇrn´ı dlahy. Druh´ym pak n´astroj na porovn´an´ı prav´e a lev´e strany p´anve pro ´uˇcely pozdˇejˇs´ıho statistick´eho zpracov´an´ı. Posledn´ım v´ystupem t´eto pr´ace bude dokumentace k vytvoˇren´ym program˚um vˇcetnˇe vˇsech zdrojov´ych k´od˚u. Dosaˇzen´e v´ysledky budou pr˚ubˇeˇznˇe kontrolov´any a konzultov´any s prax´ı na pracoviˇsti vedouc´ıho pr´ace.

Kl´ıˇcov´a slova: poˇc´ıtaˇcov´e vidˇen´ı, ´uprava obrazu, grafick´e transfor- mace, metoda nejmenˇs´ıch ˇctverc˚u, LabView

Abstract

This thesis describes the design of procedures and the creation of a specific implementation for evaluation of the spatial disposition of the pelvis. As the source of the original data in this thesis are considered a pre-defined CT slice exported from DICOM format to JPEG. The first output of this thesis to the curve of the border bone-other tissue from the supplied slice (pelvic plane) in place for attaching the inner plate. The second output is a tool to compare the right and left sides of the pelvis for later statistical processing.

The final output of this thesis is documentation for the programs, including all the source code. The obtained results has been conti- nuously reviewed and discussed with the practice at the workplace of the supervisor.

Keywords: computer vision, image editing, graphical transformati- ons, least squares method, LabView

(8)

Podˇ ekov´ an´ı

T´ımto bych chtˇel podˇekovat vedouc´ımu m´e pr´ace za vstˇr´ıcn´y a trpˇeliv´y pˇr´ıstup a za rady ohlednˇe realizace. Rovnˇeˇz bych touto cestou chtˇel podˇekovat i dalˇs´ım lidem, kteˇr´ı mi poskytli cenn´e rady, ˇci jakkoliv pˇrispˇeli k realizaci t´eto pr´ace.

Jmenovitˇe bych chtˇel podˇekovat vedouc´ımu pr´ace MUDr. ˇSˇr´amovi (za obˇetav´y a trpˇeliv´y pˇr´ıstup), konzultantovi Ing. Hanˇcilovi (za pomoc pˇri tvorbˇe programu), Mgr. Stebelovi, Ph.D. (za pomoc s volbou algoritmu prokl´ad´an´ı kruˇznice kˇrivkou) a vneposledn´ı ˇradˇe doc. RNDr. Satrapovy, Ph.D. za tvorbu ˇsablony pro tvorbu z´avˇereˇcn´ych prac´ı v LATEXu pomoc´ı kter´e je tato pr´ace vys´azena.

(9)

Obsah

Seznam zkratek . . . 12

1 Uvod´ 13 2 K ˇcemu to vˇsechno je? 14 3 Vyhodnocov´an´ı obrazov´ych dat 16 3.1 Prahov´an´ı . . . 17

3.2 Hranov´a detekce . . . 18

3.3 V´ybˇer kˇrivky . . . 22

3.4 Sezn´amen´ı s prostˇred´ım LabView . . . 23

3.5 Implementace programu . . . 25

3.5.1 Prvn´ı krok – naˇcten´ı obrazu . . . 25

3.5.2 Druh´y krok – filtrov´an´ı obrazu . . . 27

3.5.3 Tˇret´ı krok – odblokov´an´ı extrakce . . . 29

3.5.4 Ctvrt´ˇ y krok – extrakce kˇrivky . . . 29

3.5.5 P´at´y a ˇsest´y krok – pˇredzpracov´an´ı a uloˇzen´ı . . . 31

3.6 Uˇzivatelsk´e rozhran´ı . . . 34

4 Anal´yza z´ıskan´ych kˇrivek 38 4.1 Form´at vstupn´ıch dat . . . 38

4.2 Grafick´e transformace . . . 39

4.2.1 Translace . . . 39

4.2.2 Rotace . . . 40

4.3 Anal´yza d´elky kˇrivky . . . 41

4.4 Anal´yza kˇrivosti . . . 43

4.4.1 P˚uvodn´ı z´amˇer . . . 43

4.4.2 Minimalizace funkce metodou nejmenˇs´ıch ˇctverc˚u . . . 45

4.5 Anal´yza vzd´alenosti kˇrivek . . . 48

4.6 Implementace programu . . . 49

4.6.1 Funkce Circulal fit . . . 50

4.6.2 Hlavn´ı program – pˇr´ıprava a zobrazen´ı dat . . . 50

4.6.3 Mˇeˇren´ı vzd´alenosti kˇrivek . . . 52

4.6.4 Mˇeˇren´ı d´elek . . . 55

4.6.5 Proloˇzen´ı kruˇznice a uloˇzen´ı v´ysledk˚u . . . 55

4.7 Uˇzivatelsk´e rozhran´ı . . . 59

(10)

4.8 V´ystupn´ı data ke statistick´emu zhodnocen´ı . . . 59

5 Z´avˇer 61

Pˇr´ılohy 65

A Obsah CD 65

B Dokumentace k programu pro extrakci kˇrivky 66

C Dokumentace k programu pro srovn´an´ı z´ıskan´ych kˇrivek 83

(11)

Seznam obr´ azk˚ u

2.1 Omega dlaha (obr´azek poskytnut vedouc´ım pr´ace) . . . 15

3.1 Rozd´ıly v SI sklouben´ı mezi pacienty . . . 16

3.2 P˚uvodn´ı ˇrez bez ´uprav . . . 17

3.3 Histogram s nastaven´ım prahov´eho filtru . . . 18

3.4 Rez po aplikov´an´ı prahov´eho filtru . . . 19ˇ 3.5 Rez po aplikov´an´ı Laplaceova filtru . . . 20ˇ 3.6 Uk´azka k´odu v LabView (zmˇena cesty k souboru) . . . 24

3.7 Naˇcten´ı obrazu a zobrazen´ı n´ahledu . . . 26

3.8 Prahov´an´ı obrazu a filtrov´an´ı ˇc´astic . . . 28

3.9 Extrakce kˇrivky . . . 30

3.10 Otoˇcen´ı a uloˇzen´ı kˇrivky . . . 32

3.11 N´ahled a nastaven´ı prahov´an´ı . . . 35

3.12 Pˇr´ıklad nastaven´ı filtru ˇc´astic . . . 36

3.13 V´ybˇer oblasti z´ajmu . . . 37

4.1 Spoleˇcn´a ˇc´ast k´odov´an´ı ASCII, CP1250 a UTF–8 (zdroj:[1]) . . . 38

4.2 Uk´azka form´atov´an´ı dat v souboru kˇrivky (zv´yraznˇen jeden ˇr´adek) . . 39

4.3 Algoritmus pro v´ypoˇcet d´elky kˇrivky . . . 42

4.4 Nalezen´ı stˇredu ´useˇcky pomoc´ı kruˇz´ıtka . . . 44

4.5 Vliv aproximace na v´yslednou vzd´alenost . . . 48

4.6 Druh´a revize funkce Circular fit . . . 51

4.7 Naˇcten´ı soubor˚u a geometrick´e transformace . . . 53

4.8 Mˇeˇren´ı pr˚umˇern´e vzd´alenosti mezi kˇrivkami . . . 54

4.9 Hled´an´ı bodu s minim´aln´ı vzd´alenost´ı od stˇredu a mˇeˇren´ı d´elek . . . 56

4.10 Proloˇzen´ı kruˇznice a uloˇzen´ı v´ysledk˚u . . . 58

4.11 Uˇzivatelsk´e rozhran´ı . . . 60

(12)

Seznam zkratek

ASCII American Standard Code for Information Interchange, 7 bitov´e k´odov´an´ı anglick´ych znak˚u

CD Compact disc, kompaktn´ı disk, optick´e z´aznamov´e m´edium z osm- des´at´ych let 20. stolet´ı

CP1250 K´odovac´ı sada ˇceˇstiny pouˇz´ıvan´a v Microsoft Windows

\CR Carriage Return, znak n´avratu na zaˇc´atek ˇr´adku

CSV Comma separated value, textov´y form´at dat, sloupce oddˇeleny ˇc´arkou CT Computer-assisted tomography, poˇc´ıtaˇcov´y tomograf

DICOM Standard pro v´ymˇenu medic´ınsk´ych dat

GMRES Generalized minimal residual method, metoda zobecnˇen´ych rezidu´ı, iteraˇcn´ı metoda pro numerick´e ˇreˇsen´ı soustav line´arn´ıch rovnic JPEG Joint Photographic Experts Group, metoda ztr´atov´e komprimace ob-

razov´ych dat, rovnˇeˇz i tv˚urci t´eto metody

\LF Line Feed, znak nov´eho ˇr´adku

PDF Portable document format, pˇrenositeln´y form´at dokument˚u, form´at kter´y by mˇel zajistit stejn´y vzhled dokument˚u nez´avisle na pouˇzit´em softwaru

Real-Time Oznaˇcen´ı ˇcasovˇe krytick´ych syst´em˚u vyˇzaduj´ıc´ıch odezvy v re´aln´em ˇcase

RGB Red Green Blue, k´odov´an´ı barev pomoc´ı ˇcerven´e, zelen´e a modr´e ba- revn´e sloˇzky

ROI Region of Interest, oblast z´ajmu

SI Sakroiliak´aln´ı sklouben´ı, spojen´ı os sacrum a os ilium

UTF-8 Univerz´aln´ı k´odov´an´ı vˇsech pouˇz´ıvan´ych znak˚u, minim´aln´ı d´elka znaku 8 bit˚u

x86 Zkratka pro architekturu procesor˚u kompatibiln´ıch s procesorem Intel 8086/80286/386/486

(13)

1. Uvod ´

Pr´ace je souˇc´ast´ı v´yzkumn´eho projektu veden´eho na spin´aln´ı jednotce Krajsk´e ne- mocnice v Liberci. Smyslem t´eto pr´ace tedy je vytvoˇren´ı n´astroj˚u k z´ısk´av´an´ı dat o prostorov´ych dispozic´ıch dlah. Tyto data byla doposavad z´ısk´av´ana obkreslov´an´ım na pap´ır z monitoru. To mohlo v´est k nepˇresnostem a neumoˇzˇnovalo to objektivn´ı zhodnocen´ı.

Pˇri tvorbˇe tˇechto n´astroj˚u tedy bylo zapotˇreb´ı se na tyto nedostatky zamˇeˇrit a z´aro- veˇn pˇr´ıliˇs nezat´ıˇzit zdravotnick´y person´al sloˇzitost´ı obsluhy. Souˇc´ast´ı pr´ace rovnˇeˇz musel b´yt vhodn´y algoritmus pro vz´ajemn´e porovn´an´ı lev´e a prav´e strany p´anve, coˇz byl jeden z poˇzadavk˚u od vedouc´ıho pr´ace, kter´y toto potˇreboval pro vyhodnocen´ı hypot´ezy, ˇze podle jedn´e ze stran lze zrekonstruovat druhou.

Vytvoˇren´e n´astroje nejsou m´ınˇeny jako zdravotnick´y prostˇredek1 a proto nesm´ı b´yt pouˇzity k l´eˇcen´ı konkr´etn´ıho pacienta2, ale pouze k ovˇeˇren´ı hypot´ez ohlednˇe vnitˇrn´ıch dlah p´anve. Jako takov´e nepodl´ehaj´ı schvaluj´ıc´ımu procesu zdravotnick´ych prostˇredk˚u. Pokud by bylo rozhodnuto o jejich nasazen´ı v procesu l´eˇcby pacient˚u, bylo by nutn´e je podstoupit patˇriˇcn´emu schvalovac´ımu procesu. Za t´ımto ´uˇcelem byla tato pr´ace doplnˇena o kompletn´ı dokumentaci.

1Ve smyslu z´akona 123/2000Sb. – O zdravotnick´ych prostˇredc´ıch (ve znˇen´ı pozdˇejˇs´ıch redpis˚u)[22, z´akon 123/2000Sb.]

2Dle definice v§ 2, odstavc´ıch 1 a 2, z´akona 123/2000Sb.

(14)

2. K ˇ cemu to vˇsechno je?

Jak jiˇz bylo zm´ınˇeno v ´uvodu, pr´ace je ˇreˇsen´ım ´ukolu, jak vyhodnocovat r˚uzn´e pa- rametry kˇrivek z obrazov´ych dat. Pˇriˇcemˇz takto z´ıskan´a data budou pozdˇeji pouˇzita jak pro v´ypoˇcet tvaru pr˚umˇern´e p´anevn´ı dlahy, tak pro ovˇeˇren´ı pˇredpokladu ˇze po- moc´ı kˇrivky z´ıskan´e z jedn´e ze stran lze urˇcit tvar druh´e strany. Coˇz by bylo moˇzn´e uplatnit v pˇr´ıpadech zlomenin p´anevn´ıho kruhu kdy je jedna ze stran neporuˇsen´a.

Data jsou sb´ır´ana za ´uˇcelem modelace nebo modifikace Omega dlahy, jak byla nazv´ana p´anevn´ı dlaha vyvinut´a na pracoviˇsti vedouc´ıho pr´ace ve spolupr´aci s fir- mou MEDIN, a. s. Dlaha dostala jm´eno podle sv´eho tvaru kter´ym pˇripom´ın´a velk´e ˇreck´e p´ısmeno Ω. Na rozd´ıl od nˇej je ovˇsem vˇetˇsinou um´ıst’ov´ana obr´acenˇe (obr´azek 2.1). Podrobnˇejˇs´ı informace o t´eto dlaze lze z´ıskat ze zdroje [20].

Pokud se na z´akladˇe takto z´ıskan´ych dat podaˇr´ı nal´ezt dostateˇcnˇe mal´y poˇcet r˚uzn´ych tvar˚u dlahy, tak by mohla b´yt dlaha dod´av´ana z v´yroby jiˇz pˇred mode- lovan´a a t´ım by se sn´ıˇzila potˇreba ruˇcn´ıho oh´yb´an´ı dlahy pˇri z´akroku a mohlo by doj´ıt i ke zkr´acen´ı doby z´akroku. Z´aroveˇn by vˇsak byly zachov´any v´yhody s´eriov´e v´yroby jako jsou niˇzˇs´ı v´yrobn´ı n´aklady a n´aklady na logistiku.

V pˇr´ıpadˇe, ˇze by se podaˇrilo statisticky prok´azat symetrii p´anve, bylo by moˇzn´e prov´adˇet u pacient˚u se zlomeninami p´anve individu´aln´ı modelaci dlahy na z´akladˇe vyˇsetˇren´ı poˇc´ıtaˇcov´ym tomografem a n´asledn´em vyhodnocen´ı nepoˇskozen´e ˇc´asti.

Coˇz m˚uˇze v´est k dalˇs´ımu urychlen´ı v´ykonu a t´ım niˇzˇs´ı z´atˇeˇzi pro pacienta, avˇsak se zde ztr´ac´ı v´yhody s´eriov´e v´yroby zm´ınˇen´e v pˇredchoz´ım odstavci.

(15)

Obr´azek 2.1: Omega dlaha (obr´azek poskytnut vedouc´ım pr´ace)

(16)

3. Vyhodnocov´ an´ı obrazov´ ych dat

V t´eto kapitole bude podrobnˇeji vysvˇetlena problematika z´ısk´an´ı kˇrivky z ˇrezu ve form´atu JPEG pˇr´ıpadnˇe z bitmapy. Je zde pˇredevˇs´ım vyuˇzito z´akladn´ıch me- tod poˇc´ıtaˇcov´eho vidˇen´ı, avˇsak zde nejsou pouˇzit´e ˇz´adn´e optimalizace. Pro nˇe zde nen´ı uplatnˇen´ı, protoˇze se nejedn´a o takzvan´y Real-Time syst´em, u kter´eho by bylo nutn´e docilovat velmi kr´atk´ych ˇcas˚u zpracov´an´ı.

Obr´azek 3.1: Rozd´ıly v SI sklouben´ı mezi pacienty

Dalˇs´ım rozd´ılem od technick´ych aplikac´ı, na kter´y bylo nutn´e br´at zˇretel, je fakt, ˇze lidsk´e tˇelo se liˇsˇs´ı ˇclovˇek od ˇclovˇeka. Tyto rozd´ıly spolu s promˇenlivou kvalitou sn´ımk˚u (pohyb pacienta, odliˇsn´a nastaven´ı CT), pak zp˚usobuj´ı komplikace pˇri au- tomatick´e identifikaci objekt˚u v ˇrezu. Tyto rozd´ıly jsou patrn´e ve stydk´e sponˇe, v acetabulu i v SI sklouben´ı. Vybran´a SI sklouben´ı jsou vyobrazena na obr´azku 3.1, kde je vidˇet rozd´ıl jak ve tvaru, tak i v pouˇzit´em mˇeˇr´ıtku.

D´ıky tˇemto komplikac´ım nebylo moˇzn´e doc´ılit zcela automatick´eho reˇzimu vyhod- nocov´an´ı, ale pouze reˇzimu poloautomatick´eho. Kde je po obsluze vyˇzadov´ano spe- cifikov´an´ı oblasti z´ajmu a v´ybˇer nejbliˇzˇs´ıho bodu ke stˇredu acetabula.

Kaˇzd´y krok zpracov´an´ı obrazu je vˇzdy doplnˇen o v´ysledn´y obraz po aplikov´an´ı dan´eho filtru. Jako vzorov´y ˇrez je pouˇzit jeden z inici´aln´ıch sn´ımk˚u (obr´azek 3.2), kter´e byly za ´uˇcelem t´eto pr´ace (a na n´ı navazuj´ıc´ımu v´yzkumu) poskytnuty ve- douc´ım pr´ace. V r´amci ochrany osobn´ıch ´udaj˚u z nich byly vymaz´any ´udaje, kter´e by umoˇzˇnovaly identifikovat konkr´etn´ıho pacienta.

(17)

Obr´azek 3.2: P˚uvodn´ı ˇrez bez ´uprav

3.1 Prahov´ an´ı

Prvn´ım krokem k z´ısk´an´ı kˇrivky je prahov´an´ı. Jedn´a o v z´asadˇe jednoduchou operaci, pˇri kter´e je p˚uvodnˇe obraz v syst´emu RGB nebo ˇsedot´onov´y pˇreveden na bin´arn´ı.

Postup prob´ıh´a tak, ˇze jsou nejprve stanoveny takzvan´e prahovac´ı hodnoty. Ty lze z´ıskat napˇr´ıklad z jasov´eho histogramu, nebo empiricky metodou pokus-omyl. Z his- togramu lze za pomoc´ı nˇekter´e z iteraˇcn´ıch metod z´ıskat lok´aln´ı minima v´yskyt˚u jasov´ych hodnot. M´e zkuˇsenosti ze zpracovan´ych sn´ımk˚u ukazuj´ı, ˇze ide´aln´ı spodn´ı hodnota prahov´eho filtru se nach´az´ı v intervalu od prvn´ıho lok´aln´ıho minima vpravo od glob´aln´ıho maxima histogramu. Rovnˇeˇz se ukazuje, ˇze maxim´aln´ı spodn´ı hodnota prahov´eho filtru nepˇresahuje druhou pˇetinu jasov´eho rozsahu. Za typickou hodnotu nastaven´ı lze oznaˇcit hladinu 75 pˇri osmibitov´e barevn´e hloubce. Histogram s t´ımto nastaven´ım filtru ukazuje obr´azek 3.3 (zelen´a oblast je vyhodnocena jako kost, tedy s hodnotou jedna).

(18)

Obr´azek 3.3: Histogram s nastaven´ım prahov´eho filtru

Dalˇs´ı metodou, jak nastavit prahov´y filtr je za pomoc´ı hypot´ezy, ˇze relativn´ı plocha kterou kost v ˇrezu zab´ır´a se v´ıce m´enˇe nemˇen´ı. Tedy po prvotn´ı identifikaci ide´aln´ıho nastaven´ı se seˇcte poˇcet pixel˚u s hodnotou jedna po prahov´an´ı a ten se vydˇel´ı cel- kov´ym poˇctem pixel˚u v obraze. T´ım je z´ısk´ana relativn´ı plocha kosti v ˇrezu. ´Ulohou pˇri zpracov´an´ı dalˇs´ıch sn´ımk˚u je tento pomˇer udrˇzet s co nejmenˇs´ı odchylkou.

V programu je pouˇzit uˇzivatelsky nastaviteln´y interval prahov´eho filtru, ale nastaven´ı se automaticky nemˇen´ı. T´ım, ˇze rozd´ıly mezi sn´ımky nemaj´ı na nastaven´ı filtru takˇrka vliv, tak jsem se rozhodl automatick´y v´ypoˇcet parametru neimplementovat.

Toto opatˇren´ı mˇelo za n´asledek sn´ıˇzen´ı jak v´ypoˇcetn´ıho ˇcasu, tak ˇcasu potˇrebn´eho na v´yvoj.

Dalˇs´ım krokem je samotn´a aplikace nastaven´eho filtru. Tedy cel´y obraz je prohled´an a pokud se hodnota jasu v pixelu nach´az´ı ve specifikovan´em rozsahu, tak se tomuto pixelu pˇriˇrad´ı hodnota jedna, v opaˇcn´em pˇr´ıpadˇe hodnota nula. T´ımto je pak cel´y obraz pˇreveden do bin´arn´ı podoby 3.4.

3.2 Hranov´ a detekce

Hranov´a detekce je hlavn´ı sloˇzkou tohoto programu. Uˇz pˇri inici´aln´ım n´avrhu pro- gramu jiˇz bylo patrn´e, ˇze rozhran´ı kost / ostatn´ı tk´aˇn bude moˇzn´e nejl´epe z´ıskat za pomoci derivace v obraze. Nebo pˇresnˇeji diferenci jasov´ych hodnot ve vˇsech smˇerech, tedy pro osy i x i y pro pixely (pro voxely i osa z). Diference mus´ı b´yt pouˇzita m´ısto derivace, jelikoˇz obraz m´a koneˇcn´y poˇcet hodnot. To znamen´a, ˇze

(19)

Obr´azek 3.4: ˇRez po aplikov´an´ı prahov´eho filtru

obrazov´a funkce nen´ı diferencovateln´a na cel´em intervalu obrazu (pokud nen´ı kon- stantn´ı jasov´a hodnota konstantn´ı). D´ale bylo vzato do ´uvahy Marrova teorie [6], kter´a ˇr´ık´a, ˇze druh´a derivace (/diference) poskytuje lepˇs´ı v´ysledky pˇri detekci hran neˇz derivace (/diference) prvn´ıho ˇr´adu.

Z koneˇcn´eho poˇctu bod˚u vych´az´ı i metoda za jej´ıchˇz pomoc´ı je v obraze hrana de- tekov´ana. Je zde totiˇz vyuˇz´ıv´ano hlavnˇe konvoluce. Funguje to tak, ˇze je pˇredem stanovena matice ve speci´aln´ım tvaru (tzv. konvoluˇcn´ı maska), takov´a pro kterou plat´ı, ˇze souˇcet vˇsech prvk˚u matice je roven nule. To zajist´ı, ˇze pokud je obra- zov´a funkce konstantn´ı, tak v´ysledn´y obraz po konvoluci m´a konstantn´ı obrazovou funkci s hodnotou 0. Dalˇs´ım krokem je posouv´an´ı t´eto konvoluˇcn´ı masky po ob- raze a jej´ımu n´asoben´ı s odpov´ıdaj´ıc´ımi body. Souˇcet tˇechto souˇcin˚u v kaˇzd´em bodˇe posunut´ı konvoluˇcn´ı masky je novou hodnotou tohoto bodu (rozhoduj´ıc´ı je typicky stˇred konvoluˇcn´ı masky). Obvykle jsou konvoluˇcn´ı masky voleny tak, ˇze nav´ıc v sobˇe obsahuj´ı i filtr pro potlaˇcen´ı ˇsumu (dle [18], s. 83).

(20)

Obr´azek 3.5: ˇRez po aplikov´an´ı Laplaceova filtru

h1 =

"

1 0

0 −1

# , h2 =

"

0 1

−1 0

#

grad(i)(x, y) =|i(x, y) − i(x + 1, y + 1)| + |i(x, y + 1) − i(x + 1, y)|

(3.1)

Jednou z nejjednoduˇsˇs´ıch konvoluˇcn´ıch masek je Roberts˚uv oper´ator (3.1). Jeho jis- tou v´yhodou a z´aroveˇn i nev´yhodou je mal´a velikost konvoluˇcn´ı masky. To znamen´a i malou v´ypoˇcetn´ı n´aroˇcnost kv˚uli menˇs´ımu poˇctu matematick´ych operac´ı. Z´aroveˇn mal´a konvoluˇcn´ı maska pˇrin´aˇs´ı d´ıky menˇs´ımu okol´ı i vˇetˇs´ı citlivost na ˇsum, kter´y zde nen´ı nikterak filtrov´an. To je hlavn´ım d˚uvodem proˇc nen´ı v praxi pˇr´ıliˇs nasazov´ana, avˇsak m˚uˇze dobˇre poslouˇzit pro vysvˇetlen´ı principu pouˇzit´ı konvoluˇcn´ıch masek obecnˇe. Pod konvoluˇc´ımi maskami 3.1 je rozeps´an postup konvoluce pro z´ısk´an´ı obrazov´e funkce po hranov´e detekci grad(i) (dle [7], s. 2). Pˇriˇcemˇz grad(i)(x, y) je vypoˇc´ıtan´ym elementem t´eto funkce, i je p˚uvodn´ı obrazov´a funkce. Rozepsan´y

(21)

vzorec lze z´ıskat napˇr´ıklad jako rozn´asoben´ı konvoluˇcn´ı masky po prvc´ıch s matic´ı obrazov´ych bod˚u stejn´e velikosti (rovnice 3.2).

i2x2=

"

i(x, y) i(x, y + 1) i(x + 1, y) i(x + 1, y + 1)

#

i3x3 =

i(x− 1, y − 1) i(x − 1, y) i(x − 1, y + 1) i(x, y− 1) i(x, y) i(x, y + 1) i(x + 1, y− 1) i(x + 1, y) i(x + 1, y + 1)

(3.2)

Sloˇzitˇejˇs´ı, ale zato pouˇz´ıvanˇejˇs´ı maskou je Lapace˚uv oper´ator. Ten aproximuje dru- hou derivaci, je invariantn´ı v˚uˇci otoˇcen´ı, vytv´aˇr´ı dvojitou odezvu na tenk´e linie a je line´arn´ı (dle [7] a [12], s. 87). Pˇr´ıklady moˇzn´ych konvoluˇcn´ıch masek jsou uvedeny v rovnici 3.3 a obr´azek po aplikaci konvoluce m´a ˇc´ıslo 3.5. Jak je na tomto obr´azku patrn´e, tak jedin´e co zb´yv´a pro z´ısk´an´ı fin´aln´ı kˇrivky je specifikov´an´ı oblasti z´ajmu a v´ybˇer stˇredu soustavy.

h4 =

0 1 0

1 −4 1

0 1 0

, h8 =

1 1 1

1 −8 1

1 1 1

 (3.3)

Mimo tˇechto konvoluˇcn´ıch masek existuj´ı pochopitelnˇe i dalˇs´ı. Napˇr´ıklad existuj´ı i varianty Lapaceova oper´atoru s vyˇsˇs´ı v´ahou smˇerem k rozhodn´emu bodu masky, kter´e jiˇz nejsou invariantn´ı k otoˇcen´ı. D´ale bych mohl jmenovat oper´ator podle Prewittov´e, Sobel˚uv oper´ator, Robinson˚uv oper´ator a Kirsch˚uv oper´ator. Vˇsechny tyto oper´atory aproximuj´ı prvn´ı derivaci, nejsou invariantn´ı na otoˇcen´ı, jsou ne- line´arn´ı a konvoluce se u nich prov´ad´ı pro osm smˇer˚u pˇriˇcemˇz v´ysledkem je nejvˇetˇs´ı absolutn´ı hodnota.

Krom konvoluce existuje i ponˇekud jin´y pˇr´ıstup, kter´y bych zde mˇel zm´ınit. U nˇeho je pouˇzito bin´arn´ıch morfologick´ych operac´ı, konkr´etnˇe eroze a n´asledn´e odeˇcten´ı od p˚uvodn´ıho obrazu. Eroze se prov´ad´ı tak, ˇze se nejdˇr´ıv urˇc´ı tvar okol´ı, kter´e pokud bod m´a, tak se nahrad´ı jedniˇckou, pokud takov´e okol´ı nem´a, tak se nahrad´ı v nov´em obrazu nulou. Po odeˇcten´ı od origin´alu jsou z´ısk´any hrany obrazu s velikost´ı a orientac´ı danou zvolen´ym okol´ım.

Vˇsechny operace zm´ınˇen´e v t´eto kapitole jsou bˇeˇznˇe pouˇz´ıvan´e v pr˚umyslu v ob- lasti poˇc´ıtaˇcov´eho vidˇen´ı. Jsou v´ypoˇcetnˇe nen´aroˇcn´e a snadno paralelizovateln´e. To

(22)

umoˇzˇnuje jejich pouˇz´ıv´an´ı i v Real-time syst´emech, kde je v´ypoˇcetn´ıˇcas kritick´y. Zde vˇsak nebylo nutn´e porovn´avat, ˇci dokonce pozmˇeˇnovat v´ypoˇcetn´ı algoritmy, jelikoˇz zde ˇcas natolik kritick´y nen´ı. V programu byl proto ponech´an v´ychoz´ı algoritmus hranov´e detekce, kter´y jakoˇzto souˇc´ast firemn´ıho tajemstv´ı nen´ı pˇresnˇe zn´am. Avˇsak podle [12] se lze domn´ıvat, ˇze se jedn´a o Laplaci´an h8 z rovnice 3.3.

3.3 V´ ybˇ er kˇrivky

Jak jiˇz bylo zm´ınˇeno na zaˇc´atku kapitoly, kv˚uli pˇr´ıliˇsn´ym rozd´ıl˚um mezi pacienty nebylo moˇzn´e dos´ahnou automatick´eho vyhodnocen´ı. Hlavn´ı k´amen ´urazu nastal pr´avˇe u v´ybˇeru oblasti z´ajmu, potaˇzmo kˇrivky. Standardn´ı hled´an´ı tvar˚u, jako se pouˇz´ıv´a v pr˚umyslov´ych aplikac´ı by zde nejsp´ıˇse selhalo, nebo by pˇri nejmenˇs´ım mˇelo velmi n´ızkou ´uspˇeˇsnost. Proto byla zvolena varianta, kdy oblast vyb´ır´a uˇzivatel a m´a tak z´aroveˇn i moˇznost kontroly spr´avnosti v´ybˇeru. Uvaˇzovan´a kˇrivka se mu totiˇz oznaˇc´ı v obraze modrou barvou (podrobnˇeji se t´ım budu zab´yvat v kapitole Uˇzivatelsk´e rozhran´ı).

Z programov´eho hlediska je pro z´ısk´an´ı kˇrivky potˇreba specifikovat oblast z´ajmu (v k´odu oznaˇceno jako ROI), prahovou hodnotu hrany, minim´aln´ı d´elku kˇrivky, smˇer vyhled´av´an´ı, typ v´ybˇeru a v neposledn´ı ˇradˇe samotn´y pˇredzpracovan´y obraz. Oblast z´ajmu mus´ı specifikovat uˇzivatel tak, aby obd´eln´ık v´ybˇeru obs´ahl celou uvaˇzovanou kˇrivku, aby se nedot´ykala okraje v´ybˇeru jinde neˇz na konc´ıch a tak aby konce kˇrivky byly jeden pˇred SI sklouben´ım a jeden pˇred stydkou sponou. Prahov´a hodnota hrany reprezentuje minim´aln´ı hodnotu, kdy program vyhodnot´ı zmˇenu jasu jako hranu.

V naˇsem pˇr´ıpadˇe, kdy jiˇz pouˇz´ıv´ame pˇredzpracovan´y bin´arn´ı obraz je to hodnota jedna.

Minim´aln´ı d´elka kˇrivky se uk´azala jako dosti d˚uleˇzit´y parametr. Slouˇz´ı totiˇz k od- filtrov´an´ı menˇs´ıch oblast´ı, kter´e se obˇcas v ˇrezu objev´ı a to pak vede k vyhodnocen´ı

´

uplnˇe jin´e kˇrivky. Pˇri ladˇen´ı bylo zjiˇstˇeno, ˇze spolehlivˇe funguje parametr s hod- notou sto. V pˇr´ıpadˇe pokud by byla vyhodnocov´ana ˇspatn´a kˇrivka, je v programu ponech´ana moˇznost uˇzivatelsk´e zmˇeny za bˇehu.

Smˇer vyhled´av´an´ı se naopak uk´azal jako m´enˇe v´yznamn´y parametr. Ve zkratce jde o to jak´ym smˇerem bude v ROI kˇrivka vyhled´av´ana. Spr´avn´e je jak´ekoliv nastaven´ı, pˇri kter´em vyhled´av´an´ı postupuje smˇerem od stˇredu obrazu k okraji. Nevhodn´a volba zp˚usob´ı pouze vyˇsˇs´ı n´aroˇcnost na pˇresnost specifikov´an´ı ROI. Typ v´ybˇeru

(23)

umoˇzˇnuje zvolit jestli bude vybr´ana nejbliˇzˇs´ı kˇrivka od startu hled´an´ı, nejdelˇs´ı kˇrivka nebo kˇrivka s nejvˇetˇs´ım jasov´ym gradientem. Pˇriˇcemˇz posledn´ı jmenovan´a nepˇripad´a v ´uvahu kv˚uli bin´arn´ımu obrazu (tedy gradient je vˇsude stejn´y). Mezi prvn´ımi dvˇema lze libovolnˇe volit a z´aleˇz´ı na preferenc´ıch kaˇzd´eho uˇzivatele.

Posledn´ım ´udajem kter´y je v tomto kroku nutn´e dodat je stˇred acetabula. Tedy pˇresnˇeji bod na kˇrivce s minim´aln´ı vzd´alenost´ı od stˇredu acetabula. Na z´akladˇe konzultac´ı s vedouc´ım pr´ace bylo rozhodnuto, ˇze vhodnou aproximac´ı tohoto bodu bude pr˚useˇc´ık spojnice pˇrilehl´eho stˇredu hlavice femuru a protˇejˇs´ıho SI sklouben´ı s kˇrivkou. Tento ´uzus umoˇzˇnuje minimalizovat chyby zp˚usoben´e subjektivn´ım hod- nocen´ım obsluhy. Osobn´ı zkuˇsenost mi uk´azala, ˇze pˇresn´a identifikace tohoto bodu m˚uˇze b´yt pro m´enˇe tr´enovan´e oko pˇrinejmenˇs´ım nejednoznaˇcn´a.

3.4 Sezn´ amen´ı s prostˇred´ım LabView

V pˇredchoz´ıch kapitol´ach jsem struˇcnˇe probral kroky spojen´e se z´ısk´an´ım kˇrivky roz- hran´ı kost/ostatn´ı tk´an. Ted’ je na ˇcase popsat v´yvojov´e prostˇredky pouˇzit´e k tvorbˇe samotn´eho programu. Tedy pˇri tvorbˇe program˚u jsem pouˇz´ıval hlavnˇe prostˇred´ı LabView s modulem Vision Assistant od firmy National Instruments ve verzi 2012.

D˚uvodu k pouˇzit´ı tohoto v´yvojov´eho prostˇred´ı bylo hned nˇekolik. V prvn´ıˇradˇe v nˇem pracuje konzultant pr´ace Ing. Hanˇcil. Coˇz se uk´azalo jako nesporn´a v´yhoda, protoˇze to umoˇzˇnovalo mnohem efektivnˇejˇs´ı a rychlejˇs´ı spolupr´aci pˇri ˇreˇsen´ı probl´em˚u s im- plementac´ı.

Druhou v´yhodou byla urˇcit´a abstrakce od bˇeˇzn´ych prvk˚u objektovˇe orientovan´eho programov´an´ı, jako tvorba vlastn´ıch tˇr´ıd, dˇediˇcnosti, distribuce ud´alost´ı nebo vytv´a- ˇren´ı datov´ych struktur. Jelikoˇz se jedn´a o grafick´y programovac´ı jazyk, tak je zde moˇzn´e soustˇredit se v´ıce na ˇreˇsen´y ´ukol neˇz na jeho form´aln´ı z´apis. Tedy progra- mov´an´ı v tomto jazyce spoˇc´ıv´a v propojov´an´ı jiˇz naprogramovan´ych funkˇcn´ıch blok˚u, ovl´adac´ıch prvk˚u, konstant a tak podobnˇe.

Prostˇred´ı LabView m´a pochopitelnˇe i nˇejak´e nev´yhody. Osobnˇe za nejvˇetˇs´ı z nich povaˇzuji sv´azanost s platformou Microsoft Windows a architekturou x86. Prostˇred´ı existuje i ve variantˇe pro MacOS X a Linux, ale na tˇechto platform´ach nedosahuje ani zdaleka pln´e funkcionality. D´ıky tomu jsou pak i vytvoˇren´e programy sv´azan´e s Win- dows. Na druhou stranu vytv´aˇret kv˚uli multiplatformitˇe cel´y program napˇr´ıklad v C++ by ˇcasovou n´aroˇcnost´ı neodpov´ıdalo v´ysledk˚um. Zvl´aˇstˇe pokud pouˇzit´ı na

(24)

alternativn´ıch platform´ach nebylo souˇc´ast´ı zad´an´ı.

Ted’ k samotn´emu prostˇred´ı. Pˇri otevˇren´ı projektu se objev´ı dvˇe okna. Jedno pro tvorbu vnitˇrn´ı struktury programu a jedno pro n´avrh uˇzivatelsk´eho rozhran´ı. Pˇri pˇrid´an´ı prvku do jednoho z oken se vytvoˇr´ı i koresponduj´ıc´ı prvek ve druh´em z nich (pokud existuje, napˇr´ıklad matematick´e operace nemaj´ı uˇzivatelsk´e rozhran´ı). Prvky se pˇrid´avaj´ı pomoc´ı prav´eho tlaˇc´ıtka myˇsi a jejich nab´ıdka z´aleˇz´ı na zakoupen´ych rozˇsiˇruj´ıc´ıch modulech. Typick´a podoba k´odu je vidˇet napˇr´ıklad na obr´azku 3.6.

Obr´azek 3.6: Uk´azka k´odu v LabView (zmˇena cesty k souboru)

R˚uzn´e barvy ˇcar na obr´azku reprezentuj´ı r˚uzn´e typy promˇenn´ych. Kupˇr´ıkladu zelen´a teˇckovan´a ˇc´ara reprezentuje promˇennou typu bin´arn´ıho ˇc´ısla. Tedy m˚uˇze nab´yvat pouze hodnot jedna (pravda, TRUE, T) nebo nula (nepravda, FALSE, F). Kon- stanta logick´e jedniˇcky je konec konc˚u na obr´azku tak´e vidˇet (b´ıl´e zar´amovan´e T v zelen´em poli). Modrozelen´a odpov´ıd´a cestˇe k souboru, r˚uˇzov´a ˇretˇezci a ˇzlutoˇcern´a znaˇc´ı chybov´e zpr´avy. Zde zobrazen´e zar´amov´an´ı odpov´ıd´a konstrukci switch/case z konvenˇcn´ıch jazyk˚u. LabView neodliˇsuje mezi konstrukc´ı obyˇcejn´e podm´ınky (if v konvenˇcn´ıch jazyc´ıch) a switch/case. Jedin´y rozd´ıl je vˇetˇs´ı poˇcet stav˚u a jin´y typ vstupn´ı promˇenn´e.

Zobrazen´a ˇc´ast programu mˇen´ı ˇc´ast cesty k obrazu ˇrezu a vytv´aˇr´ı z n´ı dvˇe nov´e pro soubor s daty kˇrivky. Podm´ınka pro v´ybˇer se realizuje mimo zobrazen´y v´yˇrez 3.6, jedn´a se vˇsak pouze o porovn´an´ı souˇradnice X stˇredu acetabula s polovinou ˇs´ıˇre obrazu. Tedy urˇcen´ı jak´a strana se pr´avˇe vyhodnocuje. T´ımto opatˇren´ım je zajiˇstˇeno, ˇze pokud jsou vyhodnocov´any obˇe strany, tak druh´a z vyhodnocovan´ych stran nepˇrep´ıˇse data prvn´ı. Z´aroveˇn je formou n´azvu souboru ˇrezu zajiˇstˇen unik´atn´ı identifik´ator aniˇz by bylo nutn´e vyhodnocovat text na sn´ımku a ten pak patˇriˇcnˇe anonymizovat aniˇz by se ztratila jednoznaˇcnost. Nehledˇe na moˇznost zpˇetnˇe identi- fikovat eventu´aln´ı ˇspatnˇe vyhodnocen´y sn´ımek.

(25)

3.5 Implementace programu

Program je koncipov´an sekvenˇcnˇe do ˇsesti krok˚u. V t´eto ˇc´asti jsou vˇsechny kroky podrobnˇeji pops´any, ty komplikovanˇejˇs´ı jsou nav´ıc doplnˇeny o obr´azek zdrojov´eho k´odu. Nejedn´a se vˇsak o kompletn´ı program, ten je k dispozici v pˇr´ıloze a v doku- mentaci k program˚um.

3.5.1 Prvn´ı krok – naˇ cten´ı obrazu

Prvn´ı ˇc´ast programu zajiˇst’uje v´ybˇer, naˇcten´ı obrazu z form´atu JPEG a zobrazen´ı n´ahledu. Krom toho je na obr´azku 3.7 vidˇet zablokov´an´ı ovl´adac´ıch prvk˚u, vypnut´ı extrakce kˇrivky a sn´ım´an´ı souˇradnice stˇredu acetabula, zaznamen´an´ı poˇctu pixel˚u v ose X, smaz´an´ı v´ybˇeru oblasti z´ajmu a zastaven´ı programu pokud uˇzivatel nevy- bere odpov´ıdaj´ıc´ı soubor.

K zablokov´an´ı tlaˇc´ıtka

”OK“ je pˇrikroˇceno, aby nedoˇslo k exportov´an´ı kˇrivky, aniˇz by byly nastaveny souˇradnice stˇredu acetabula. To by pak zp˚usobilo probl´emy pˇri pozdˇejˇs´ım zpracov´an´ı dat, protoˇze se d´ale pˇredpokl´ad´a, ˇze tento bod m´a souˇradnice [0; 0]. Tud´ıˇz by nebylo moˇznˇe kˇrivku rozdˇelit na front´aln´ı a dorz´aln´ı ˇc´ast a ty zpra- cov´avat samostatnˇe. Jedn´a se tak z´aroveˇn i o prvek kontroly uˇzivatele.

Vypnut´ım extrakce kˇrivky a sn´ım´an´ı stˇredu acetabula je zabr´anˇeno uˇzivateli aby mohl vyexportovat kˇrivku aniˇz by zkontroloval nastaven´ı prahov´eho filtru a filtru pro potlaˇcen´ı mal´ych objekt˚u. Opomenut´ı t´eto kontroly by mohlo v´est napˇr´ıklad k vyhodnocov´an´ı vnitˇrku kosti m´ısto vnˇejˇs´ıho obrysu, pokud by byly okraje m´enˇe kontrastn´ı. Aˇckoliv se nejedn´a o nikterak pravdˇepodobnou chybu pˇri standardn´ım nastaven´ı, tak k n´ı teoreticky m˚uˇze doj´ıt pokud by bylo zpracov´av´ano v´ıce sn´ımk˚u s velmi odliˇsnou kvalitou. Jedn´a se tak v´ıce m´enˇe o preventivn´ı opatˇren´ı pro eliminaci opomenut´ı uˇzivatele.

Zaznamen´an´ı poˇctu pixel˚u v ose X je d˚uleˇzit´e pro pozdˇejˇs´ı vyhodnocen´ı, kter´a strana p´anve je vyhodnocov´ana. To je v pozdˇejˇs´ıch kroc´ıch programu provedeno porovn´an´ım Xov´e souˇradnice stˇredu acetabula s polovinou rozmˇeru osy X. Pokud je souˇradnice stˇredu menˇs´ı neˇz polovina sn´ımku, jedn´a se o pravou stranu p´anve (na sn´ımku vlevo), pokud je naopak vˇetˇs´ı, jedn´a se o levou stranu p´anve (na sn´ımku vpravo).

Vymaz´an´ı oblasti z´ajmu (ROI) takt´eˇz d˚uleˇzit´e pro eliminaci chyb obsluhy. Pokud by

(26)

Obr´azek 3.7: Naˇcten´ı obrazu a zobrazen´ı n´ahledu

(27)

k vymaz´an´ı nedoˇslo, tak by se mohlo st´at, ˇze by uˇzivatel neurˇcoval ROI pro kaˇzd´y sn´ımek, ale nam´ısto toho ponech´aval nastaven´ı ze sn´ımku minul´eho. To by vzhledem ke znaˇcn´e rozd´ılnosti jednotliv´ych sn´ımk˚u mohlo v´est minim´alnˇe zkreslen´ym ´udaj˚um o d´elk´ach jednotliv´ych ´usek˚u. Na vinˇe by v takov´em pˇr´ıpadˇe bylo nepˇresn´e zamˇeˇren´ı konc˚u kˇrivek.

3.5.2 Druh´ y krok – filtrov´ an´ı obrazu

V druh´em kroku je realizov´ano filtrov´an´ı ˇc´astic a prahov´y filtr (obr´azek 3.8). Kv˚uli moˇznosti manu´alnˇe mˇenit nastaven´ı je cel´y tento cyklus um´ıstˇen do tzv.

”while smyˇcky“. Pˇriˇcemˇz jej´ı ukonˇcen´ı je v´az´ano na stisknut´ı tlaˇc´ıtka

”Next“. Prov´adˇen´ı smyˇcky je kv˚uli ´uspoˇre syst´emov´ych prostˇredk˚u omezeno na 100 ms. Avˇsak toto omezen´ı nem´a t´emˇeˇr ˇz´adn´y vliv na plynulost uˇzivatelsk´eho rozhran´ı.

Uvnitˇr smyˇcky je vˇzdy nejdˇr´ıve vynulov´ana oblast z´ajmu. Toto opatˇren´ı zabraˇnuje uˇzivateli vybrat oblast aniˇz byly nastaveny filtry. Pˇresnˇeji ˇreˇceno, pokud se mu podaˇr´ı vybrat oblast z´ajmu, tak je mu nejpozdˇeji do 100 ms smaz´ana. Tedy uˇzivatel nem˚uˇze zapomenout minim´alnˇe potvrdit nastaven´ı filtr˚u.

D´ale je ve smyˇcce vykon´ano prahov´an´ı obrazu podle uˇzivatelsk´eho nastaven´ı. To je tvoˇreno samostatn´ymi spodn´ımi a horn´ımi hranicemi pro vˇsechny tˇri barvy. Jedn´a se o obdobu postupu uveden´eho v kapitole Prahov´an´ı, avˇsak zde rozdˇelenou do tˇr´ı sloˇzek (RGB). Rozdˇelen´ı je v´ysledkem ladˇen´ı v ran´ych f´az´ı v´yvoje programu, kdy jsem pˇredpokl´adal lepˇs´ı dosaˇzen´e v´ysledky pokud bude moˇzn´e nastavit sloˇzky sa- mostatnˇe. Tento pˇredpoklad se pozdˇeji uk´azal jako nepodloˇzen´y. Je tedy moˇzn´e nahradit pouˇzit´y prahov´y filtr pˇrevodem obrazu do ˇsedot´onov´eho form´atu a ten pot´e prahovat podle hodnoty jasu (jak bylo uvedeno ve zm´ınˇen´e kapitole).

Pot´e je aplikov´an filtr ˇc´astic. Ten m´a za ´ukol odstranit ˇc´astice menˇs´ı neˇz je urˇcit´y, uˇzivatelsky definovateln´y poˇcet pixel˚u. Tento filtr se uk´azal jako velmi uˇziteˇcn´y v pˇr´ıpadech, kdy se v obraze vyskytuje ˇsum, artefakty menˇs´ıho rozsahu a kdy pa- cient˚um byly pod´any kontrastn´ı l´atky. Hlavnˇe posledn´ı zm´ınˇen´y pˇr´ıpad by jinak mohl zp˚usobit pozdˇejˇs´ı chyby v detekci kˇrivky, nebo j´ı minim´alnˇe zt´ıˇzit formou obt´ıˇznˇejˇs´ıho urˇcov´an´ı oblasti z´ajmu.

Jakmile je provedena filtrace ˇc´astic je v´ysledn´y obraz pˇrekreslen v hlavn´ım pra- covn´ım oknˇe. To umoˇzˇnuje pr˚ubˇeˇznou kontrolu nastaven´ı jeˇstˇe pˇred jejich koneˇcn´ym potvrzen´ım. Po potvrzen´ı totiˇz program pˇrejde do dalˇs´ıho kroku a parametry filtr˚u

(28)

Obr´azek 3.8: Prahov´an´ı obrazu a filtrov´an´ı ˇc´astic

(29)

tak jiˇz nen´ı moˇzn´e mˇenit.

3.5.3 Tˇret´ı krok – odblokov´ an´ı extrakce

Ve tˇret´ım kroku je povolen v´ybˇer souˇradnic stˇredu acetabula a extrakce kˇrivky. Tento krok zde nen´ı vyobrazen, jedn´a se vˇsak pouze o propojen´ı dvou funkˇcn´ıch blok˚u chybov´ym vodiˇcem a pˇriˇrazen´ı konstanty

”Enabled“ do obou blok˚u. Je vhodn´e zde zm´ınit, ˇze i kdyˇz by zde nebyl chybov´y vodiˇc vlastnˇe potˇreba, tak zajiˇst’uje i jednu zaj´ımavou funkci. V LabView se totiˇz vykon´a funkˇcn´ı blok aˇz kdyˇz jsou k dispozici sign´aly ze vˇsech vstup˚u. Tyto sign´aly mohou m´ıt i nulovou hodnotu, ale mus´ı k bloku dorazit. Pˇr´ıkladem m˚uˇze b´yt chybov´y vodiˇc, t´ım v ide´aln´ım pˇr´ıpadˇe proud´ı pr´azdn´a data, ale ty jsou n´asleduj´ıc´ımu bloku pˇred´ana aˇz po vykon´an´ı pˇredchoz´ıho bloku.

Toho je v programu nˇekolikr´at vyuˇzito k urˇcen´ı poˇrad´ı vykon´av´an´ı funkˇcn´ıch blok˚u.

3.5.4 Ctvrt´ ˇ y krok – extrakce kˇrivky

Ctvrt´a ˇc´ast zajiˇst’uje zachyt´av´an´ı ud´alost´ı z hlavn´ıho pracovn´ıho okna. Tˇemitoˇ ud´alostmi se rozum´ı hlavnˇe ud´alost s ˇc´ıslem dva (kreslen´ı) a ud´alost osm (dvojit´e kliknut´ı). Podle ˇc´ısla ud´alosti je proveden´a odpov´ıdaj´ıc´ı akce ve struktuˇre

”case“.

Na obr´azku 3.9 je zobrazeno zpracov´an´ı kreslen´ı, dvojit´e kliknut´ı zde zobrazeno nen´ı.

Kaˇzd´ych 10 ms je sn´ım´ana posledn´ı ud´alost v oknˇe. Pokud nen´ı zaznamen´ana ud´alost dvojit´eho kliknut´ı, je provedena vyobrazen´a ˇc´ast k´odu. Tedy nejdˇr´ıve se vymaˇzou pˇrekr´yvaj´ıc´ı vrstvy z n´ahledu a pracovn´ıho okna. Pak se sestav´ı popis oblasti z´ajmu, kter´y je n´aslednˇe pˇred´an k separaci kˇrivky z filtrovan´eho obrazu. Odtud jsou z´ısk´any souˇradnice bod˚u kˇrivky. N´asleduj´ıc´ı funkˇcn´ı bloky vyznaˇcuj´ı vyhodnocovanou kˇrivku do obou oken.

Pokud je naopak zachycena ud´alost dvojkliku, tak dojde k zaznamen´an´ı souˇradnic a odblokov´an´ı tlaˇc´ıtka

”OK“. T´ım je uˇzivateli umoˇznˇen export dat kˇrivky a z´aroveˇn jsou souˇradnice stˇredu acetabula nad t´ımto tlaˇc´ıtkem zobrazeny. To umoˇzˇnuje z´aro- veˇn kontrolu souˇradnic v˚uˇci aktu´aln´ı poloze kurzoru v pracovn´ım oknˇe. Ta je spolu s ostatn´ımi ´udaji na spodn´ı hranˇe okna. Po stisknut´ı tlaˇc´ıtka

”OK“ program opust´ı

”while smyˇcku“ a d´ale jiˇz pokraˇcuje bez interakce s obsluhou.

(30)

Obr´azek 3.9: Extrakce kˇrivky

(31)

3.5.5 P´ at´ y a ˇsest´ y krok – pˇredzpracov´ an´ı a uloˇzen´ı

V pˇredposledn´ım kroku je zjiˇstˇena strana kter´a byla zaznamen´av´ana, kˇrivka je zde pˇrev´adˇena na re´aln´e rozmˇery, ot´aˇcena a posunuta stˇredem acetabula do stˇredu souˇradn´eho syst´emu. D´ale je vytvoˇrena cesta k souboru do kter´eho se budou data zapisovat a n´aslednˇe se provede samotn´y z´apis.

Jak je vidˇet na obr´azku 3.10, tak nejprve dojde k rozkladu souˇradnic stˇredu aceta- bula na dvˇe samostatn´a ˇc´ısla (souˇradnice X a Y v pixelech). Souˇcasnˇe je porovn´an´ım souˇradnice stˇredu acetabula a poloviny rozmˇeru obrazu na ose X zjiˇstˇeno, kter´a strana p´anve se pr´avˇe zpracov´av´a. To ovlivˇnuje zda bude v´ysledn´a kˇrivka ot´aˇcena podle osy Y , aby j´ı bylo moˇzn´e pozdˇeji porovnat s kˇrivkou z druh´e strany.

Pokud je zpracov´av´ana prav´a strana p´anve (k´od na obr´azku 3.10, tak doch´az´ı pouze k ot´aˇcen´ı podle osy X. K tomuto je pˇrikroˇceno kv˚uli rozd´ıl˚um v ch´ap´an´ı souˇradn´eho syst´emu v obraze jak je uloˇzen v poˇc´ıtaˇci a mezi souˇradn´ym syst´emem jak jej vn´ım´a ˇclovˇek. Zat´ımco v poˇc´ıtaˇci je bod s nulov´ymi souˇradnicemi vlevo nahoˇre, tak ˇclovˇek pˇredpokl´ad´a nulu souˇradn´eho syst´emu vlevo dole. Z´aroveˇn v poˇc´ıtaˇci je kladn´y smˇer na ose Y smˇerem dolu, tak ˇclovˇek pˇredpokl´ad´a kladnou zmˇenu souˇradnic smˇerem k horn´ımu okraji obrazu.

p = [realny rozmer]

[rozmer v pixelech] (3.4)

Pˇrepoˇcet na re´aln´e rozmˇery je prov´adˇen pomoc´ı pˇrepoˇcetn´ıho koeficientu. Jeho v´ypoˇcet je vidˇet v rovnici 3.4, kde oba tyto parametry zad´av´a uˇzivatel v pˇredchoz´ı ˇc´asti programu podle mˇeˇr´ıtka ve sn´ımku. Re´aln´y rozmˇer tedy b´yv´a 10 cm, ale rozmˇer v pixelech je promˇenliv´y v z´avislosti na rozliˇsen´ı sn´ımk˚u.

(32)

Obr´azek 3.10: Otoˇcen´ı a uloˇzen´ı kˇrivky

(33)

 x0 y0 1

=

p 0 0

0 −p 0

0 0 1

 ·

1 0 −sx

0 1 −sy

0 0 1

 ·

 x y 1

 x0 y0 1

=

p 0 −psx 0 −p psy

0 0 1

 ·

 x y 1

x0 = p· x + 0 · y − p · sx· 1 y0 = 0· x − p · y + p · sy · 1

1 = 0· x + 0 · y − 1 · 1

↓ x0 = px− psx y0 =−py + psy

x0 = p (x− sx) y0 =−p (y − sy)

(3.5)

Celkov´y pˇrepoˇcet souˇradnic vˇcetnˇe posunut´ı a posunut´ı do nuly lze nal´ezt v rov- nic´ıch 3.5. Kde x0 a y0 jsou nov´e souˇradnice bodu v re´aln´em rozmˇeru, x a y jsou ster´e souˇradnice v pixelech, sx a sy jsou souˇradnice stˇredu acetabula v pixelech a p je pˇrepoˇcetn´ı koeficient mˇeˇr´ıtka. Jedn´a se o kombinaci zmˇeny mˇeˇr´ıtka a translace (v´ıce se touto problematikou zab´yv´am v kapitole Translace) pro pravou ˇc´ast p´anve.

Otoˇcen´ı pro levou ˇc´ast je moˇzn´e doc´ılit pˇrid´an´ım znam´enka m´ınus k pˇrepoˇcetn´ımu koeficientu p v prvn´ım ˇr´adku prvn´ı matice.

Sestaven´ı cesty k souboru pro export dat jsem jiˇz zmiˇnoval v kapitole Sezn´amen´ı s prostˇred´ım LabView. Ve zkratce jde o to, aby bylo moˇzn´e jednoznaˇcnˇe identifikovat pacienty a z´aroveˇn, aby data jedn´e strany p´anve nepˇrepisovala data druh´e strany.

Pro splnˇen´ı prvn´ı podm´ınky jsem zvolil oznaˇcen´ı dat n´azvem souboru ˇrezu. T´ım p´adem nen´ı nutn´e ˇc´ıst data ze sn´ımku a pˇredch´az´ı se tak moˇzn´emu zdroji probl´em˚u.

Splnˇen´ı druh´e podm´ınky lze ˇreˇsit dvˇema zp˚usoby. Prvn´ım by bylo oddˇelit strany ve vnitˇrn´ı struktuˇre souboru. To by vˇsak znamenalo komplikace v pˇr´ıpadech, kdy by se vyhodnocovala pouze jedna strana, nebo v pˇr´ıpadech opakovan´eho mˇeˇren´ı.

Daleko jednoduˇsˇs´ı a bezpeˇcnˇejˇs´ı zp˚usob spoˇc´ıv´a v pouˇzit´ı dvou soubor˚u, kaˇzd´y pro jednu stranu. Vyˇsˇs´ı bezpeˇcnost je zp˚usobena kontrolou, ˇze byly vyhodnoceny obˇe

(34)

strany a z´aroveˇn zde z˚ust´av´a moˇznost opakov´an´ı chybn´eho mˇeˇren´ı pouze na jedn´e stranˇe.

K odliˇsen´ı stran je pouˇzito ˇretˇezc˚u

”R.csv“ pro pravou stranu a

”L.csv“ pro le- vou stranu. Pˇriˇcemˇz jimi je nahrazena p˚uvodn´ı pˇr´ıpona ˇrezu

”.jpg“. Vyhodnocovan´ı krit´erium je pouˇzito stejn´e jako u pˇrepoˇctu souˇradnic. Po vytvoˇren´ı cesty je pro- vedeno uloˇzen´ı do textov´eho souboru. Jako oddˇelovaˇc souˇradnic je pouˇzit stˇredn´ık, jako desetinn´y oddˇelovaˇc ˇc´arka, oddˇelen´ı bod˚u zajiˇst’uje nov´y ˇr´adek pomoc´ı znak˚u

\CR a \LF a ˇc´ısla jsou zaps´ana jako text se tˇremi desetin´ymi m´ısty. T´ım je dosaˇzen form´at standardn´ıho souboru typu CSV v adaptaci pro ˇcesk´e Microsoft Windows a lze tedy pro ˇcten´ı dat pouˇz´ıt bˇeˇzn´e tabulkov´e procesory (napˇr´ıklad LibreOffice Calc nebo Microsoft Excel).

V posledn´ım kroku jsou pak pouze vyˇciˇstˇeny chybov´e zpr´avy a vyhodnoceno tlaˇc´ıtko posledn´ıho sn´ımku. Pokud bylo stisknuto, tak po uloˇzen´ı dat dojde k vypnut´ı pro- gramu. Pokud ne, dojde k otevˇren´ı souborov´eho dialogu pro v´ybˇer dalˇs´ıho sn´ımku a program bˇeˇz´ı od zaˇc´atku.

3.6 Uˇzivatelsk´ e rozhran´ı

Uˇzivatelsk´e rozhran´ı odpov´ıd´a sekvenˇcn´ımu bˇehu programu, pˇriˇcemˇz staˇc´ı aby uˇziva- tel postupoval pˇri ovl´ad´an´ı zleva doprava a nemˇel by narazit na vˇetˇs´ı probl´emy.

Po startu programu se nejdˇr´ıve objev´ı klasick´y souborov´y dialog. V nˇem uˇzivatel mus´ı vybrat vyhodnocovan´y sn´ımek ve form´atu JPEG a pˇr´ıponou

”.jpg“. Stoj´ı za zm´ınku, ˇze v´ystupn´ı data budou uloˇzena do stejn´eho adres´aˇre odkud byla z´ısk´ana data vstupn´ı a budou m´ıt prvn´ı ˇc´ast n´azvu spoleˇcnou (rozˇs´ıˇrenou o

”R.csv“ nebo

”L.csv“ viz v´yˇse).

Po ´uspˇeˇsn´em naˇcten´ı souboru se vlevo nahoˇre objev´ı n´ahled p˚uvodn´ıho sn´ımku.

V tuto chv´ıli je od uˇzivatele poˇzadov´ana kontrola nastaven´ı prahov´eho filtru (obr´azek 3.11) a filtru pro odstranˇen´ı drobn´ych ˇc´astic. Prvn´ı z jmenovan´ych je aktivn´ı vˇzdy a je k nastaven´ı pomˇernˇe benevolentn´ı. K probl´em˚um s implicitn´ım nastaven´ım vˇsak m˚uˇze doch´azet u m´alo kontrastn´ıch sn´ımk˚u. Uˇzivatel by si mˇel d´at hlavnˇe pozor, aby nedoch´azelo k rozpozn´an´ı okoln´ıch struktur p´anve jako kosti a z´aroveˇn aby jiˇz nedoch´azelo ke zmˇen´am na rozhran´ı p´anevn´ıho kruhu.

Filtr pro odstranˇen´ı drobn´ych ˇc´astic nen´ı vˇzdy potˇreba, takˇze se m˚uˇze st´at, ˇze nebude ve v´ychoz´ım stavu zapnut´y. Pokud vˇsak bude uˇzivatel zpracov´avat velmi zaˇsumˇen´y

(35)

Obr´azek 3.11: N´ahled a nastaven´ı prahov´an´ı

obraz m´a moˇznost filtr aktivovat. Pokud je nastaven´ı filtru neaktivn´ı lze ho pˇridat pomoc´ı poloˇzky

”Insert Element Before“ z kontextov´e nab´ıdky nastaven´ı filtru. D´ale doporuˇcuji vybrat u

”Measurement Parameter“ moˇznost

”Area“, doln´ı hranici ne- chat na hodnotˇe nula, horn´ı hranici nastavit minim´alnˇe na 5 a zaˇskrtnout volbu

”Range“ (pˇr´ıklad nastaven´ı je na obr´azku 3.12). Bˇehem nastavov´an´ı filtru se m˚uˇze st´at, ˇze z pracovn´ıho okna zmiz´ı obraz. To je zp˚usoben´e nevhodn´ym nastaven´ım fil- tru nebo nezaˇskrtnutou volbou

”Range“, kdy filtr zobrazuje ˇc´asti, kter´e by se mˇely z obrazu odstranit. Uˇzivatel si mus´ı d´at pozor, aby pˇred potvrzen´ım nastaven´ı vidˇel v pracovn´ım oknˇe opravdu ten obraz, kter´y chce vyhodnocovat. K tomuto nastaven´ı se lze vr´atit pouze po restartu programu nebo naˇcten´ı nov´eho sn´ımku.

Po potvrzen´ı nastaven´ı filtr˚u tlaˇc´ıtkem

”Next“, pˇrich´az´ı na ˇradu pr´ace v hlavn´ım oknˇe. Konkr´etnˇe je nutn´e identifikovat stˇred acetabula a vymezit oblast z´ajmu.

Osobnˇe doporuˇcuji nejdˇr´ıv pˇrepnout v panelu n´astroj˚u na ´useˇcku (na obr´azku 3.13 vlevo nahoˇre, p´at´a poloˇzka shora), tou si vyznaˇcit spojnici stˇredu hlavice femuru a protˇejˇs´ıho SI sklouben´ı. Pot´e pˇrepnout zpˇet na kurzor a dvakr´at kliknout na pr˚u- seˇc´ık t´eto ´useˇcky a uvaˇzovan´e kˇrivky. T´ım dojde k oznaˇcen´ı stˇredu acetabula, coˇz

(36)

Obr´azek 3.12: Pˇr´ıklad nastaven´ı filtru ˇc´astic je indikov´ano nenulov´ymi souˇradnicemi nad tlaˇc´ıtkem

”OK“ a jeho odblokov´an´ım.

N´aslednˇe zvolit ikonu otoˇcen´eho obd´eln´ıku (sedm´a shora, z ostatn´ıch tvar˚u program kˇrivku nevyhodnocuje). T´ahnut´ım v odraze je pak vytvoˇrena oblast z´ajmu, kterou je moˇzno pomoc´ı kurzoru d´ale upravovat. Kˇrivka je v obraze zv´yraznˇena modrou barvou stejnˇe jako v n´ahledu.

Pokud program vybral spr´avnou kˇrivku, tak m´ate vyhr´ano a stiskem tlaˇc´ıtka

”OK“

se kˇrivka uloˇz´ı a pokud nebylo pˇredt´ım stisknuto tlaˇc´ıtko

”Toto je posledn´ı sn´ımek“, tak program zaˇcne zase od zaˇc´atku. Pokud vˇsak takov´e ˇstˇest´ı nem´ate, zb´yv´a nˇekolik moˇznost´ı jak situaci ˇreˇsit. Prvn´ı moˇznost´ı je upravit oblast z´ajmu tak, aby v n´ı byla ide´alnˇe pouze kˇrivka kterou chcete. Kdyˇz to nezabere nebo to z nˇejak´eho d˚uvodu nejde, je zde moˇznost zmˇenit minim´aln´ı d´elku kˇrivky. To zajist´ı, ˇze kˇrivky nesplˇnuj´ıc´ı toto krit´erium budou ignorov´any, pozor vˇsak aby nebyla minim´aln´ı d´elka nastaven´a na pˇr´ıliˇs vysok´e ˇc´ıslo, pak by mohly b´yt ignorov´any vˇsechny kˇrivky.

Posledn´ı moˇznost´ı je zmˇena reˇzimu vyhled´av´an´ı kˇrivky z

”Closest To Search Start“

na ”Maximal Length“ ˇci opaˇcnˇe. Obvykle m´a hled´an´ı kˇrivky s maxim´aln´ı d´elkou vˇetˇs´ı ´uspˇeˇsnost, zvl´aˇstˇe pokud nen´ı v oblasti zahrnuta obvodov´a kˇrivka.

(37)

Obr´azek 3.13: V´ybˇer oblasti z´ajmu

(38)

4. Anal´ yza z´ıskan´ ych kˇrivek

V t´eto ˇc´asti se pr´ace zab´yv´a zpracov´an´ım jiˇz dˇr´ıve z´ıskan´ych kˇrivek. K tomuto ´uˇcelu jsem naprogramoval samostatn´y program. K rozdˇelen´ı jsem pˇristoupil na z´akladˇe rozd´ıln´ych funkcionalit a pro vˇetˇs´ı pˇrehlednost.

4.1 Form´ at vstupn´ıch dat

Vstupn´ı data jsou zak´odov´ana do bˇeˇznˇe pouˇz´ıvan´eho form´atu CSV, v modifikaci pouˇz´ıvan´e v ˇCesk´e republice na platformˇe MS–Windows. Tj. data jsou oddˇelena m´ısto ˇc´arkou stˇredn´ıkem, jako desetinn´y oddˇelovaˇc je pouˇzita ˇc´arka a ˇr´adky jsou oddˇeleny kombinac´ı znak˚u\CR a \LF. K´odov´an´ı souboru je nastaveno na znakovou sadu Windows CP1250, avˇsak protoˇze soubor obsahuje pouze ˇc´ısla, stˇredn´ık, ˇc´arka a ˇr´ıd´ıc´ı znaky, je kompatibiln´ı s k´odov´an´ım ASCII a t´ım i se standardn´ım UTF-8 (dle [10]).

Obr´azek 4.1: Spoleˇcn´a ˇc´ast k´odov´an´ı ASCII, CP1250 a UTF–8 (zdroj:[1]) Data jsou rozdˇelena do dvou sloupc˚u, prvn´ı obsahuje souˇradnice na ose X, druh´y souˇradnice na ose Y. Kaˇzd´a ze souˇradnic je zapsan´a ve formˇe cel´e ˇc´asti ˇc´ısla a tˇrech

(39)

desetinn´ych m´ıst oddˇelen´ych ˇc´arkou (jako text).

Obr´azek 4.2: Uk´azka form´atov´an´ı dat v souboru kˇrivky (zv´yraznˇen jeden ˇr´adek)

Program pˇredpokl´ad´a existenci dvou takov´ychto soubor˚u (dvou kˇrivek k vz´ajem- n´emu porovn´an´ı). Soubory mus´ı b´yt ve stejn´em adres´aˇri a jm´ena soubor˚u se mus´ı liˇsit pouze v koncov´e ˇc´asti. Jeden soubor mus´ı konˇcit ˇretˇezcem

”R.csv“ a druh´y ˇretˇezcem

”L.csv“. T´ımto jsou od sebe odliˇseny strany jednotliv´e kˇrivky podle stran, pˇri otev´ır´an´ı jednoho ze soubor˚u je druh´y dohled´an automaticky (pokud chyb´ı, je program zastaven).

4.2 Grafick´ e transformace

Po naˇcten´ı obou kˇrivek je zah´ajena smyˇcka, ve kter´e m˚uˇze uˇzivatel upravovat vz´ajem- n´e posunut´ı a natoˇcen´ı lev´e kˇrivky v˚uˇci prav´e. D˚uvodem proˇc toto nen´ı imple- mentov´ano i naopak je ten, ˇze jde o porovn´an´ı dvou kˇrivek a tedy jde o relativn´ı vzd´alenosti a ne o vzd´alenosti v˚uˇci souˇradn´emu syst´emu.

Tedy jak´akoliv grafick´a transformace proveden´a na jedn´e ze kˇrivek bude m´ıt stejn´e n´asledky jako tat´aˇz transformace proveden´a na druh´e ze kˇrivek, avˇsak s opaˇcn´ymi parametry.

4.2.1 Translace

Prvn´ı pouˇzitou grafickou transformac´ı je translace neboli posunut´ı. To je moˇzn´e realizovat dvˇema zp˚usoby. Prvn´ım z nich je za pomoci translaˇcn´ı transformaˇcn´ı matice 4.1. Touto matic´ı se vyn´asob´ı vektor star´ych souˇradnic rozˇs´ıˇren´y o jedniˇcku a v´ysledkem je vektor souˇradnic (opˇet rozˇs´ıˇren´y o jedniˇcku) posunut´ych o vektor um´ıstˇen´y v tˇret´ım sloupci transformaˇcn´ı matice.

(40)

 x0 y0 1

=

1 0 sx

0 1 sy

0 0 1

 ·

 x y 1

 (4.1)

Druh´ym ekvivalentn´ım zp˚usobem je prost´e pˇriˇcten´ı hodnoty posunu ke zvolen´e souˇradnici. Ekvivalence obou z´apis˚u m˚uˇze b´yt dok´az´ana rozn´asoben´ım matice a vek- toru 4.2.

 x0 y0 1

=

1 0 sx

0 1 sy

0 0 1

 ·

 x y 1

x0 = 1· x + 0 · y + sx· 1 y0 = 0· x + 1 · y + sy · 1 1 = 0· x + 0 · y + 1 · 1

↓ x0 = x + sx

y0 = y + sy

(4.2)

Ve v´yˇse uveden´ych z´apisech s reprezentuje vektor posunut´ı, x a y reprezentuj´ı p˚uvodn´ı souˇradnice bodu a x0 a y0 reprezentuj´ı nov´e souˇradnice. V programu byl pouˇzit druh´y zp˚usob a to z d˚uvodu posunu vˇzdy jen jedn´ım smˇerem v dan´y okamˇzik.

4.2.2 Rotace

Dalˇs´ı z pouˇzit´ych grafick´ych transformac´ı je rotace ˇcili natoˇcen´ı. Opˇet se jedn´a o transformaci, kter´a se obvykle prov´ad´ı pomoc´ı transformaˇcn´ı matice. Tentokr´at vˇsak nen´ı ´uplnˇe jednoznaˇcn´a, z´avis´ı na tom, zda je ´uhel natoˇcen´ı pozitivn´ı ve smˇeru hodinov´ych ruˇciˇcek, ˇci protismˇeru. Podle toho se mˇen´ı znam´enko u ˇclen˚u se sinem.

 x0 y0 1

=

cos (ϕ) sin (ϕ) 0

− sin (ϕ) cos (ϕ) 0

0 0 1

 ·

 x y 1

 (4.3)

V pˇr´ıpadˇe 4.3 se jedn´a o matici rotace, kde pozitivn´ı hodnota parametru ϕ zp˚usobuje rotaci po smˇeru hodinov´ych ruˇciˇcek. N´asoben´ım uveden´e matice a vektoru opˇet

(41)

m˚uˇzeme z´ıskat soustavu rovnic pro nov´e souˇradnice (dle 4.4).

 x0 y0 1

=

cos (ϕ) sin (ϕ) 0

− sin (ϕ) cos (ϕ) 0

0 0 1

 ·

 x y 1

x0 = cos (ϕ)· x + sin (ϕ) · y + 0 · 1 y0 =− sin (ϕ) · x + cos (ϕ) · y + 0 · 1

1 = 0· x + 0 · y + 1 · 1

x0 = cos (ϕ)· x + sin (ϕ) · y y0 =− sin (ϕ) · x + cos (ϕ) · y

(4.4)

I v tomto pˇr´ıpadˇe bylo pouˇzito transformace pomoc´ı sloˇzkov´eho tvaru, ale zde jiˇz bylo moˇzn´e bez vˇetˇs´ıch probl´em˚u pouˇz´ıt i maticov´y tvar v´ypoˇctu.

4.3 Anal´ yza d´ elky kˇrivky

Pˇri anal´yze d´elky kˇrivky bylo nutn´e prov´est nˇekolik aproximac´ı. Je totiˇz nutn´e uvˇedomit si, ˇze data byla z´ısk´ana pˇrevodem z prostoru N2 do prostoru R2. Kde prostor N2 je nespojit´y prostor cel´ych kladn´ych dvojic ˇc´ısel tvoˇr´ıc´ı vektory. Tento prostor je klasickou reprezentac´ı obrazov´ych dat ve formˇe bitmap rastrov´e grafiky.

Neboli kaˇzd´a souˇradnice pixelu je cel´ym ˇc´ıslem. Jak bylo jiˇz pops´ano dˇr´ıve, pˇrepoˇcet dat uskuteˇcnˇen n´asoben´ım odeˇcten´eho mˇeˇr´ıtka p˚uvodnˇe celoˇc´ıseln´ymi souˇradnicemi s posunut´ym stˇredem soustavy do stˇredu acetabula. Pˇri tomto pˇrepoˇctu vˇsak zvˇetˇsuj´ı rozd´ıly mezi jednotliv´ymi body, takˇze vznik´a linearizovan´a spojit´a po ˇc´astech dife- rencovateln´a kˇrivka (s nespojitou prvn´ı derivac´ı).

Ulohu v´´ ypoˇctu d´elky kˇrivky pak lze realizovat za pomoc´ı L2 metriky (Eukleidovsk´e metriky) pro mˇeˇren´ı vzd´alenosti krajn´ıch bod˚u takto vznikl´ych ´useˇcek. Suma tˇechto d´ılˇc´ıch metrik pak odpov´ıd´a d´elce kˇrivky.

dp(a; b) =

n

X

i=1

|ai− bi|p

!1p

, p∈ N, n ∈ N (4.5)

Rovnice 4.5 vyjadˇruje obecnou definici Lp metriky ze kter´e lze z´ıskat poˇzadovanou

(42)

Obr´azek 4.3: Algoritmus pro v´ypoˇcet d´elky kˇrivky

(43)

L2 metriku na prostoru R2 pomoc´ı dosazen´ı dvojky jak za parametr p, tak za para- metr n. Parametr p zde reprezentuje stupeˇn metriky, parametr n dimenzi prostoru.

Vstupn´ımi hodnotami a, b se rozum´ı body v prostoru s danou dimenz´ı n.

d2(a; b) = P2

i=1|ai− bi|212 lc=PN

i=1d2(Xi−1; Xi), X = (xi; yi)

↓ lc=PN

i=1

q

(xi−1− xi)2+ (yi−1− yi)2

(4.6)

D´elka kˇrivky je poˇc´ıt´ana samostatnˇe na obou kˇrivk´ach ve dvou intervalech. To vypl´yv´a z poˇzadavk˚u vedouc´ıho, aby bylo moˇzn´e stanovit poˇzadovanou d´elku vnitˇrn´ı p´anevn´ı dlahy jak front´alnˇe, tak dorz´alnˇe od acetabula. Takto z´ıskan´a data pak mo- hou b´yt poˇzita napˇr´ıklad pro porovn´an´ı parametr˚u lev´e a prav´e kˇrivky, ovˇeˇren´ı hypot´ez existence univerz´aln´ıch d´elek nebo pˇr´ıpadn´e korelace d´elky dle skupin pa- cient˚u (napˇr´ıklad podle pohlav´ı).

4.4 Anal´ yza kˇrivosti

Pro z´ısk´an´ı ´udaj˚u o polomˇeru kˇrivky je nejprve zapotˇreb´ı sezn´amit se z nˇekter´ymi pojmy

”pokroˇcil´e“ matematiky. V prvn´ı ˇradˇe je nutn´a znalost matematick´ych pro- stor˚u, hlavnˇe jde o prostory normovan´e, coˇz je nutn´a podm´ınka pro v´ypoˇcty, kter´e jsou uvedeny d´ale. Dalˇs´ı znalost´ı potˇrebnou pro ´upln´e porozumˇen´ı je teorie kolem metrik, ˇci alespoˇn Eukleidovsk´e metriky, kter´a je v programu pouˇzita.

4.4.1 P˚ uvodn´ı z´ amˇ er

P˚uvodn´ım z´amˇerem bylo r´adius kˇrivky mˇeˇrit pomoc´ı nˇekolika n´ahodnˇe vybran´ych bod˚u (minim´alnˇe tˇr´ı), ze kter´ych by bylo moˇzn´e naj´ıt stˇred prokl´adan´e kruˇznice.

Tento stˇred kruˇznice lze ve zkratce naj´ıt jako bod ve kter´em L2 metriky ke vˇsem zvolen´ym bod˚um rovnaj´ı. Polomˇer prokl´adan´e kruˇznice se pak rovn´a t´eto spoleˇcn´e hodnotˇe L2 metriky.

Geometricky si lze pˇredstavit tuto ´ulohu obdobnˇe jako hled´an´ı stˇredu ´useˇcky pomoc´ı kruˇz´ıtka. Tedy do kruˇz´ıtka se nastav´ı vzd´alenost delˇs´ı neˇz je hledan´a polovina ´useˇcky.

Pot´e se vynesou relevantn´ı ˇc´asti kruˇznic z obou krajn´ıch bod˚u. Tyto ˇc´asti kruˇznic

(44)

se protnou pˇresnˇe ve dvou bodech a jejich propojen´ım vznikne pr˚useˇc´ık s ´useˇckou, kter´y odpov´ıd´a jej´ımu stˇredu.

Obr´azek 4.4: Nalezen´ı stˇredu ´useˇcky pomoc´ı kruˇz´ıtka

Podobnˇe lze postupovat i v tomto pˇr´ıpadˇe, avˇsak zde projen´ım pr˚useˇc´ık˚u kruˇznic z krajn´ıch bod˚u nez´ısk´ame pˇr´ımo polohu stˇredu prokl´adan´e kruˇznice, ale pouze pˇr´ımku na kter´e se nach´az´ı. Dalˇs´ı ´uvahou je moˇzn´e tuto pˇr´ımku redukovat na po- lopˇr´ımku. To lze doc´ılit porovn´an´ım kˇrivky s ´useˇckou propojuj´ıc´ı dva krajn´ı zvolen´e body. Na t´e stranˇe ´useˇcky, kde se nal´ez´a tˇret´ı zvolen´y bod se od kˇrivky d´al nem˚uˇze nach´azet stˇred kruˇznice. Pr˚useˇc´ık p˚uvodn´ı pˇr´ımky urˇcuj´ıc´ı polohu stˇredu a kˇrivky je hraniˇcn´ım bodem vznikl´e polopˇr´ımky. Pokud by doˇslo k pˇr´ıpadu, kdy zvolen´e tˇri body leˇz´ı na pˇr´ımce, tak tuto metodu nen´ı moˇzn´e pouˇz´ıt, protoˇze by stˇred kruˇznice vych´azel v nekoneˇcnu na obou stran´ach pˇr´ımky.

Kdyˇz budeme poˇc´ıtat, ˇze v prvn´ım kroku nenastaly ˇz´adn´e pot´ıˇze, tak lze pˇristoupit k samotn´emu v´ypoˇctu vzd´alenosti. To lze realizovat jako ´ulohu hled´an´ı v´azan´eho extr´emu funkce rozd´ılu metrik. Pˇr´ıkladem minimalizovan´e funkce m˚uˇze b´yt napˇr´ı- klad tato funkce 4.7, kde a a b jsou krajn´ı body, c je prostˇredn´ı bod a S odpov´ıd´a hledan´emu stˇredu kruˇznice.

d2(a; S) + d2(b; S)− 2d2(c; S) = 0 (4.7) Z uveden´eho postupu jiˇz vypl´yv´a jeho hlavn´ı nev´yhoda. Ta spoˇc´ıv´a v siln´e z´avislosti na zvolen´ych bodech. Jelikoˇz z´ıskan´a kˇrivka rozhran´ı kost–ostatn´ı tk´an nepˇripom´ın´a

(45)

ani zdaleka kruˇznici, nelze postupovat pomoc´ı n´ahodn´eho v´ybˇeru bod˚u, aniˇz by se to podepsalo v´yznamnou mˇerou na pˇresnosti namˇeˇren´ych dat. Pˇr´ıkladem ne- vhodn´e kˇrivky pro tuto metodu m˚uˇze b´yt kˇrivka, kter´a m´a v´ıce ´usek˚u s rozd´ıln´ym polomˇerem.

4.4.2 Minimalizace funkce metodou nejmenˇs´ıch ˇ ctverc˚ u

Jelikoˇz v´yˇse uveden´y pˇr´ıklad v´ıce m´enˇe odpov´ıd´a ˇreˇsen´emu probl´emu, tak bylo nutn´e pˇrij´ıt s ˇreˇsen´ım, kter´e nez´aleˇz´ı na pouze omezen´e podmnoˇzinˇe z´ıskan´ych bod˚u na zkouman´em intervalu. M´ısto toho bylo nutn´e pouˇz´ıt vˇsechny body. K tomuto

´

uˇcelu se n´aramnˇe hod´ı minimalizace funkce metrik mezi uvaˇzovanou ˇc´ast´ı kruˇznice a body kˇrivky. K samotn´emu ˇreˇsen´ı parametr˚u je zde pak pouˇzita metoda nejmenˇs´ıch ˇctverc˚u s aproximac´ı kruˇznic´ı.

(x− m)2+ (y− n)2 = r2 (4.8)

Na zaˇc´atku vyh´az´ım z obecn´e rovnice kruˇznice 4.8, kde x a y jsou body kruˇznice, m je Xovou souˇradnic´ı stˇredu, n je Yovou souˇradnic´ı stˇredu a r je polomˇerem kruˇznice.

Z t´eto rovnice je pak d´ale tvoˇrena funkce, jej´ıˇz suma pro vˇsechny body kˇrivky je minimalizov´ana. Pro tento ´uˇcel mus´ı b´yt upravena do tvaru 4.9, kde z˚ust´avaj´ı jako parametry m, n a r. P´ısmena x a y jsou zde ale body kˇrivky a ne kruˇznice, jako tomu bylo v rovnici 4.8. N odpov´ıd´a poˇctu bod˚u kˇrivky ve vyˇsetˇrovan´em rozdahu.

F (m, n, r) =

N

X

i=1

(xi− m)2+ (yi − n)2− r22

(4.9)

∂F

∂m =P 2 (m − xi) = 0

∂F

∂n =P 2 (n − yi) = 0

∂F

∂r =−2r = 0

(4.10)

Klasick´ym ˇreˇsen´ım je poloˇzen´ı parci´aln´ıch derivac´ı, podle vˇsech promˇenn´ych, rovno nule a ˇreˇsit syst´em rovnic o v´ıce nezn´am´ych, jak to ukazuj´ı rovnice 4.10. Dalˇs´ı moˇznost´ı je linearizace t´eto funkce a jej´ı pˇreveden´ı do maticov´eho tvaru tak zvan´e soustavy norm´aln´ıch rovnic. Vzhledem k vˇetˇs´ımu poˇctu dat byla zvolena druh´a me- toda ˇreˇsen´ı. Postup linearizace ukazuj´ı rovnice 4.11. Pr˚ubˇeh ´upravy spoˇc´ıv´a nejprve v rozn´asoben´ı z´avorek, pot´e pˇreveden´ı vˇsech ˇclen˚u krom x2 a y2 na pravou stranu.

(46)

Dalˇs´ım krokem je substituce 4.12, ˇc´ımˇz je doc´ıleno line´arn´ı z´avislosti rovnice na zkou- man´ych parametrech.

(x− m)2+ (y− n)2 = r2

x2 − 2mx + m2+ y2− 2ny + n2 = r2

x2 + y2 = 2mx + 2ny− m2− n2+ r2

x2+ y2 = Ax + By + C

(4.11)

A = 2m B = 2n C = r2− m2− n2

(4.12)

Metoda soustavy norm´aln´ıch rovnic 4.13 je zaloˇzena na rozˇs´ıˇren´ı p˚uvodn´ı soustavy rovnic Ax = b na obou stran´ach rovnice transponovanou matic´ı A>. T´ım se z p˚uvodnˇe obd´eln´ıkov´e matice typuRm×n, kde m > n, stane ˇctvercov´a matice typu Rn×n. Je vˇsak nutn´e si uvˇedomit, ˇze se nejedn´a o soustavy ekvivalentn´ı, tedy ˇze po- kud m´a p˚uvodn´ı soustava ˇreˇsen´ı, tak ˇreˇsen´ı norm´aln´ı soustavy je ˇreˇsen´ım soustavy p˚uvodn´ı. Avˇsak jiˇz nemus´ı platit, ˇze ˇreˇsen´ı p˚uvodn´ı soustavy je z´aroveˇn i ˇreˇsen´ım soustavy norm´aln´ı. P˚uvodn´ı soustava je totiˇz zpravidla pˇreurˇcen´a, zat´ımco norm´aln´ı soustava m´a stejn´y poˇcet rovnic jako parametr˚u.

Ax = b→ A>Ax = A>b (4.13)

V´ypoˇcet matice norm´aln´ı soustavy je vidˇet v rovnici 4.14, kde x1 aˇz xn a y1 aˇz yn

odpov´ıdaj´ı dvojic´ım souˇradnic dat a n zde znamen´a poˇcet dat. Jak je v rovnici vidˇet, tak p˚uvodn´ı data jsou pro dalˇs´ı v´ypoˇcty nahrazena jejich souˇcty, souˇcty kvadr´at˚u nebo souˇcty souˇcin˚u. Hlavn´ı v´yhodou je vˇsak to, ˇze je v´ysledn´a matice ˇctvercov´a a tedy lze pouˇz´ıt vˇetˇsinu klasick´ych metod line´arn´ı algebry (kupˇr´ıkladu je moˇzn´e pˇri splnˇen´ı dalˇs´ıch krit´eri´ı vytvoˇrit inverzn´ı matici, m´ısto matice pseudoinverzn´ı u obd´eln´ıkov´ych matic).

References

Related documents

Je-li napˇr´ıklad moˇzn´e zohlednit pozici c´ılov´eho zdroje v˚ uˇci nahr´avac´ımu zaˇr´ızen´ı, coˇz je i pˇr´ıpad telefonn´ıch hovor˚ u, je jednou z

Diplomová práce nese název Pohled na sexuální výchovu (z hlediska žáků i učitelů). Do výzkumu tak byli zahrnuti žáci druhého stupně vybraných základních škol a jejich

Člověk přijímá svůj absurdní úděl, přičemž si nemůže zvolit svět bez absurdity, nemůže si zvolit existenci bez absurdity, neboť nic takového není

Dalˇs´ı vlastnosti vybran´eho objektu zobrazen´e v obr´azku se t´ ykaj´ı jeho rozmˇer˚ u a nemaj´ı pro skript ˇz´adn´e vyuˇzit´ı... V t´eto f´azi je skript

Pavel Rohan, Ph.D.: Byla provedena analýza nanočástic z hlediska jejich tvaru a velikosti?. -

The aim of the thesis is to propose a production program that meets changing conditions in the industry based on the assessment of alternative engine production impacts on

Teoretickii d6st je logicky dlendnS. Autor popisuje pifrodnf vlSkna rostlinndho pfivodu jejich chemickd sloZenf a mechanickd vlastnosti. Poukazuje na kritickou

Data, kter´ a jsou testov´ ana, se t´ ykaj´ı 2 nejvyˇsˇs´ıch kategori´ı cyklistick´ ych z´ avod˚ u, a poˇ cet startuj´ıc´ıch z´ avodn´ık˚ u je velmi podobn´ y,