Medicinska informatika in diagnostika -...

54
Univerza v Ljubljani, Fakulteta za elektrotehniko Laboratorij za slikovne tehnologije Medicinska informatika in diagnostika LABORATORIJSKE VAJE Tomaˇ z Vrtovec 2010

Transcript of Medicinska informatika in diagnostika -...

Page 1: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Laboratorij za slikovne tehnologije

Medicinska informatikain diagnostika

LABORATORIJSKE VAJE

Tomaz Vrtovec

2010

Page 2: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 3: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Laboratorij za slikovne tehnologije

Medicinska informatikain diagnostika

LABORATORIJSKE VAJE

Tomaz Vrtovec

2010

Page 4: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 5: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Kazalo

Vaja 0: Uvod v Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Vaja 1: Razmerje signal/sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Vaja 2: Sinteza in maskiranje slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Vaja 3: Prikazovanje slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Vaja 4: Interpolacija in decimacija slik . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Vaja 5: Sivinske preslikave slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Vaja 6: Geometrijske preslikave slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Vaja 7: Prostorsko filtriranje slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Vaja 8: Geometrijska poravnava slik (1) . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Vaja 9: Geometrijska poravnava slik (2) . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Vaja 10: Razgradnja slik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

iii

Page 6: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 7: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 0: Uvod v Matlab

Navodila

Uvodna vaja sluzi spoznavanju osnovnih postopkov za nalaganje, prikazovanje ter shranjevanjeslik v okolju Matlab.

1. S pomocjo funkcije imread() nalozite bitno sliko slika1.bmp kot matriko. Uporabitefunkcijo imshow() ter sliko prikazite na zaslon. S pomocjo funkcije imwrite() shranitesliko v JPEG formatu, pri cemer uporabite kvaliteto zapisa 10 (namesto privzete 75).

2. Datoteka slika2-08bit.raw vsebuje dvodimenzionalno (2D) sliko v obliki surovih podatkov(RAW). Slika velikosti X×Y = 482×384 slikovnih elementov je zapisana z 8 biti naslikovni element. Nalozite sliko kot matriko, pri cemer uporabite funkcijo fread() vpovezavi s funkcijama fopen() in fclose().

3. Prikazite sliko na zaslon z uporabo funkcije image(). Prikaz prilagodite zapisu s pomocjofunkcije colormap().

4. Datoteka slika3-16bit.raw ravno tako vsebuje 2D sliko v obliki surovih podatkov (RAW),vendar pa je slika velikosti X×Y = 478×387 slikovnih elementov zapisana s 16 biti naslikovni element. Sliko nalozite kot matriko ter jo prikazite na zaslon.

5. Shranite 16-bitno sliko pod imenom slika3-08bit.raw v obliki 8-bitnih surovih podatkov(RAW) s pomocjo funkcije fwrite() v povezavi s funkcijama fopen() in fclose().

6. Iz slike izluscite obmocje med slikovnima elementoma 210 in 265 v x smeri ter med slikov-nima elementoma 180 in 225 v y smeri. Obmocje prikazite na zaslon, pri cemer pravilnostdolocanja obmocja preverite s pomocjo spodnje slike.

1

Page 8: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

7. Napisite funkcijo za nalaganje poljubne RAW slike:

function oImage = loadImage(iPath, iDim, iType),

kjer je iPath pot do slike (direktorij in ime datoteke), iDim vektor velikosti slike (vslikovnih elementih), iType pa oblika zapisa (stevilo bitov). Funkcija vrne nalozeno slikooImage v obliki matrike.

8. Napisite funkcijo za prikazovanje poljubne RAW slike na zaslon:

function [hFigure, hAxes] = displayImage(iImage, iTitle),

kjer je iImage slika, ki jo zelite prikazati, iTitle pa naslov prikaznega okna, v katerem jekoordinatni sistem prikazane slike. Funkcija vrne referenco hFigure na prikazno okno terreferenco hAxes na koordinatni sistem.

9. Napisite funkcijo za shranjevanje poljubne RAW slike:

function saveImage(iImage, iPath, iType),

kjer je iImage slika, ki jo zelite shraniti, iPath pot do slike (direktorij in ime datoteke),iType pa oblika zapisa (stevilo bitov).

10. Preizkusite delovanje zgoraj navedenih funkcij loadImage(), displayImage() tersaveImage() na sliki slika4-08bit.raw velikosti X×Y = 83×100 slikovnih elementov in8-bitnim zapisom.

2

Page 9: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 1: Razmerje signal/sum

Navodila

Razmerje signal/sum (ang. signal-to-noiseratio, SNR) je zelo pomembno za vre-dnotenje relativne jakosti oz. moci signalaglede na njegov sum. Razmerje signal/sumje namrec merilo zanesljivosti oz. sposob-nosti zaznavanja prisotnosti ali spremembfizikalnih in biokemicnih velicin, ki jihs signalom opazujemo. Uporabljajo setrije osnovni nacini podajanja razmerja si-gnal/sum, in sicer amplitudni (SNRA), di-ferencialni (SNRD) ter mocnostni (SNRM ) nacin. Vendar pa podajanje razmerja signal/sum nistandardizirano, ampak je odvisno od vrste signala in suma ter od namena uporabe razmerja.

Dana je slika head-256x256-08bit.raw velikostiX×Y = 256×256 slikovnih elementov, ki je zapi-sana z 8 biti v obliki surovih podatkov (RAW).Slika predstavlja dvodimenzionalni (2D) magnetnoresonancni (MR) stranski prerez cloveske glave.

1. Nalozite sliko v okolju Matlab kot 2D matriko ter jo prikazite na zaslon, pri cemerbodite pozorni na pravilno preslikavo sivinskih vrednosti (lestvica sivinskih vrednosti).Uporabite funkcije fread(), image() in colormap() ter z njimi povezane funkcije.

2. Histogram slike je graficno orodje za prikazovanje frekvencnih porazdelitev sivinskih vre-dnosti slikovnih elementov na sliki. Vrednosti na abscisni osi histograma predstavljajodinamicno obmocje sivinskih vrednosti slike. Za izbrano sivinsko vrednost na abscisni osipredstavlja vrednost na ordinatni osi stevilo slikovnih elementov na sliki z izbrano sivinskovrednostjo. Napisite funkcijo za izracun in prikaz histograma slike:

function oHist = displayHistogram(iImage, iTitle),

kjer je iImage slika, za katero se histogram racuna, iTitle pa naslov prikaznega okna, vkaterem je histogram prikazan. Funkcija vrne histogram slike oHist v obliki vrsticnega

3

Page 10: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

vektorja, katerega dolzina je enaka dinamicnemu obmocju sivinskih vrednosti slike.Histogram slike izracunajte brez uporabe Matlab-ovih naprednih funkcij, za prikazovanjepa uporabite funkcijo bar().

3. Na sliki lahko dolocimo obmocja, ki pripadajo razlicnim anatomskim strukturam oz. po-drocjem:

• Hrbtenjaca naj predstavlja obmocje prvega signala S1 na sliki. Prisotna je na primerna obmocju (x1, y1, x2, y2) = (151, 183, 158, 193).

• Cerebrospinalna tekocina, ki obkroza mozgane in hrbtenjaco, naj predstavlja obmocjedrugega signala S2 na sliki. Prisotna je na primer na obmocju (x1, y1, x2, y2) =(161, 163, 168, 173).

• Ozadje slike ne pripada nobeni anatomski strukturi, ampak je v idealnem primerupodrocje brez odziva in torej predstavlja sum N . Prisotno je na primer na obmocju(x1, y1, x2, y2) = (212, 2, 254, 45).

Dolocite dana obmocja signalov in suma na sliki ter prikazite slike in pripadajocehistograme posameznih obmocij.

4. Izracunajte amplitudno razmerje signal/sum SNRA za dana obmocja signalov in suma nasliki:

SNRA =µaσn

∣∣∣∣µb=0

,

kjer je µa povprecna amplituda zgornjega nivoja signala, µb povprecna amplitudaspodnjega nivoja signala ter σn standardna deviacija suma. V tem primeru upostevajte,da je povprecna amplituda spodnjega nivoja signala enaka nic (µb = 0).

5. Izracunajte diferencialno razmerje signal/sum SNRD za dana obmocja signalov in sumana sliki, in sicer na naslednja dva nacina:

SNRD =µa − µbσn

in SNRD =|µa − µb|√σ2a + σ2

b

,

kjer sta σa in σb standardni deviaciji zgornjega in spodnjega nivoja signala (v nasemprimeru torej signala S1 in signala S2).

6. Izracunajte mocnostno razmerje signal/sum SNRM za dana obmocja signalov na sliki:

SNRM =|µa − µb|2

σ2a + σ2

b

.

7. Napisite funkcijo, ki sliki doda aditiven Gaussov sum:

function [oImage, oNoise] = addNoise(iImage, iStd),

4

Page 11: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

kjer je iImage slika, kateri se dodaja Gaussov sum, iStd pa standardna deviacija dodanegasuma (povprecna amplituda dodanega suma je µ = 0), ki ga modelirate s pomocjofunkcije randn(). Funkcija vrne sliko z dodanim sumom oImage ter matriko dodanegasuma oNoise (matrika ima enake dimenzije kot slika). Opazujte slike, pripadajoce histo-grame ter razmerja signal/sum pri slikah z dodanim sumom razlicnih standardnih deviacij.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite sliko histograma dane 2D slike glave.

2. Prilozite slike obmocij signalov S1, S2 in N ter pripadajoce slike histogramov.

3. Izracunajte amplitudno (SNRA), diferencialno (SNRD) ter mocnostno (SNRM ) razmerjesignal/sum za dana obmocja signalov in suma. Vrednosti podajte tudi v decibelih. Kajpomenijo te vrednosti, ce upostevamo dana obmocja racunanja?

4. Katero izmed razmerij signal/sum SNRA oz. SNRD je bolj smiselno racunati, ce bi radiopazovali samo hrbtenjaco, torej signal S1 na sliki? Obrazlozite odgovor.

5. Kako veliko obmocje je smiselno dolociti za podrocje suma N? Obrazlozite odgovor.

6. Prilozite sliko, ki ste ji dodali sum s standardno deviacijo σ = 25, ter pripadajoco slikohistograma.

7. Prilozite sliko suma s standardno deviacijo σ = 25 ter pripadajoco sliko histograma.Na kaj morate biti pozorni pri prikazovanju slike suma in pri racunanju pripadajocegahistograma? Obrazlozite odgovor.

8. Kako dodajanje suma na sliko vpliva na obliko pripadajocega histograma ter na diferen-cialno razmerje signal/sum SNRD? Obrazlozite odgovor.

5

Page 12: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 13: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 2: Sinteza in maskiranje slik

Navodila

Sinteza slik je v splosnem pomenu ustvarjanje slik oziroma zdruzevanje slik v nove slike. Sin-tezo dveh slik lahko npr. izvedemo z logicno ALI operacijo, ki jo v primeru slik definiramokot sestevanje sivinskih vrednosti enakolezecih slikovnih elementov na obeh slikah (ne-logicnevec-bitne vrednosti), pri cemer predpostavimo, da sta obe sliki enakih velikosti.

Maskiranje slik je postopek pridobivanja podrocij na sliki, ki so podana s pripadajoco masko.Maska podaja lokacije slikovnih elementov, ki jih zelimo na maskirani sliki ohraniti. Maskiranjeslike z masko izvedemo z logicno IN operacijo, ki jo v primeru slik definiramo kot mnozenjesivinskih vrednosti enakolezecih slikovnih elementov slike (ne-logicne vec-bitne vrednosti) inmaske (logicne bitne vrednosti), pri cemer predpostavimo, da sta slika in maska enakih velikosti.Ustvarjanje mask lahko pojmujemo tudi kot sintezo slike, saj v zacetno prazno sliko vpisemovrednosti maske na izbrane lokacije.

Dani sta sliki head-CT-380x358-08bit.raw in head-MR-380x358-08bit.raw velikosti X×Y = 380×358slikovnih elementov, ki sta zapisani z 8 biti v obliki surovih podatkov (RAW). Prva slika predsta-vlja racunalnisko tomografski (CT), druga slika pa magnetno resonancni (MR) stranski prerezcloveske glave.

7

Page 14: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

1. Napisite funkcijo za sintezo maske v obliki pravokotnika:

function oMask = maskRectangle(iMask, iX1, iY1, iX2, iY2, iValue),

kjer je iMask zacetna vhodna maska, iX1 in iY1 sta koordinati zgornjega levega ogliscapravokotnika, iX2 in iY2 sta koordinati spodnjega desnega oglisca pravokotnika, iValue

pa je vrednost maske. Funkcija vrne masko oMask velikosti vhodne maske. Prikazite slikomaske na zaslon, pri cemer za parametre pravokotnika uporabite (x1, y1) = (165, 150) in(x2, y2) = (225, 355), vrednost maske pa nastavite prikazu primerno.

2. Maskirajte dano CT sliko z masko v obliki pravokotnika, pri cemer uporabite parametrepravokotnika iz prejsnje tocke, vrednost maske pa nastavite maskiranju primerno.Prikazite maskirano sliko na zaslon.

3. Napisite funkcijo za sintezo maske v obliki elipse:

function oMask = maskEllipse(iMask, iX, iY, iA, iB, iValue),

kjer je iMask zacetna vhodna maska, iX in iY sta koordinati sredisca elipse, iA in iB

sta polosi elipse, iValue pa je vrednost maske. Funkcija vrne masko oMask velikostivhodne maske. Pri zaokrozevanju koordinat na celostevilcne vrednosti si pomagajte sfunkcijo round(). Prikazite sliko maske na zaslon, pri cemer za parametre elipse upora-bite (x, y) = (190, 130), a = 120 in b = 100, vrednost maske pa nastavite prikazu primerno.

4. Maskirajte dano MR sliko z masko v obliki elipse, pri cemer uporabite parametre elipseiz prejsnje tocke, vrednost maske pa nastavite maskiranju primerno. Prikazite maskiranosliko na zaslon.

5. Zdruzite masko v obliki pravokotnika in masko v obliki elipse v novo masko. Uporabiteparametre pravokotnika iz tocke 1 in parametre elipse iz tocke 3, vrednost mask panastavite maskiranju primerno. Prikazite dobljeno sliko maske na zaslon.

6. Napisite funkcijo za sintezo maske v obliki sahovnice:

function oMask = maskChessboard(iMask, iW, iH, iValue1, iValue2),

kjer je iMask zacetna vhodna maska, iW in iH sta sirina in visina polja sahovnice, iValue1in iValue2 pa sta vrednosti maske na diagonalnem in izvendiagonalnem polju sahovnice.Funkcija vrne masko oMask velikosti vhodne maske. Pri zaokrozevanju koordinat nacelostevilcne vrednosti si pomagajte s funkcijo round(). Upostevajte tudi, da se stevilopolj v sahovnici ne vedno izide z velikostjo slike. Prikazite sliko maske na zaslon, pricemer za parametre sahovnice uporabite w = 60 in h = 40, vrednost maske pa nastaviteprikazu primerno.

7. Maskirajte dano CT sliko z masko v obliki sahovnice, pri cemer uporabite samo diagonalnapolja. Maskirajte dano MR sliko z masko v obliki sahovnice, pri cemer uporabite samoizvendiagonalna polja. Uporabite parametre sahovnice iz prejsnje tocke, vrednost maskepa nastavite maskiranju primerno. Prikazite maskirani sliki na zaslon.

8

Page 15: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

8. Zdruzite CT sliko, maskirano z masko v obliki sahovnice diagonalnih polj, ter MR sliko,maskirano z masko v obliki sahovnice izvendiagonalnih polj. Prikazite dobljeno sliko nazaslon.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite sliko, ki ste jo pridobili z maskiranjem dane CT slike z masko v obliki pra-vokotnika, pri cemer za parametre pravokotnika uporabite (x1, y1) = (165, 150) in(x2, y2) = (225, 355). Prilozite sliko, ki ste je pridobili z maskiranjem dane MR slike zmasko v obliki elipse, pri cemer za parametre elipse uporabite (x, y) = (190, 130), a = 120in b = 100.

2. Prilozite sliko maske, ki ste jo pridobili z zdruzevanjem maske v obliki pravokotnika inmaske v obliki elipse. Za masko v obliki pravokotnika in masko v obliki elipse uporabiteenake parametre kot pri prejsnjem vprasanju. Prilozite sliko, ki ste jo pridobili zmaskiranjem dane CT slike s tako dobljeno masko.

3. Prilozite sliko, ki ste jo pridobili z zdruzitvijo dane CT slike, maskirane z masko v oblikisahovnice diagonalnih polj, ter dane MR slike, maskirane z masko v obliki sahovniceizvendiagonalnih polj. Za parametre sahovnice obakrat uporabite w = 60 in h = 40.

4. Sinteza maskirane CT in maskirane MR slike v obliki komplementarne sahovnice omogocaprikazovanje razlik med slikama. Na kaksen nacin bi se lahko prikazali razliko med slikamain na kaj je potrebno paziti pri takem prikazovanju?

9

Page 16: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Splosna oblika maske z ravnimi stranicami je poligon s poljub-nim stevilom oglisc, ki ga lahko predstavimo z mnozico doti-kajocih se trikotnikov. Trikotnik zato predstavlja elementarnigradnik poljubne maske z ravnimi stranicami. Zaradi diskretneoblike predstavitve slik (slikovni elementi) pa se je za ustvarjanjetrikotnikov najbolj uveljavil postopek na osnovi “pregledovanjavrstic” (ang. scan-line). Postopek temelji na iskanju preseciscvsake vrstice y trikotnika s stranicami trikotnika, slikovni ele-menti med obema preseciscema v x smeri pa se nato nastavijona vrednost maske.

Napisite funkcijo za sintezo maske v obliki trikotnika:

function oMask = maskTriangle(iMask, iX, iY, iValue),

kjer je iMask zacetna vhodna maska, iX = [x1, x2, x3] in iY = [y1, y2, y3] so koordinate oglisctrikotnika, iValue pa je vrednost maske. Funkcija vrne masko oMask velikosti vhodne maske.Pri zaokrozevanju koordinat na celostevilcne vrednosti si pomagajte s funkcijo round(). Prikazitesliko maske na zaslon, pri cemer za parametre trikotnika uporabite (x1, y1) = (230, 20), (x2, y2) =(50, 250) in (x3, y3) = (300, 340), vrednost maske pa nastavite prikazu primerno.

10

Page 17: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 3: Prikazovanje slik

Navodila

Objekti, ki jih opazujemo v slikah (npr. anatomske strukture), so v splosnem tridimenzionalni.Potrebno jih je torej opazovati in analizirati s pomocjo tridimenzionalnih (3D) slik, ki jih pred-stavimo kot funkcije f(x, y, z) prostorskih koordinat x, y in z. Prerezi in projekcije omogocajoprikazovanje slik v posameznih manj dimenzionalnih prostorih. Razlika med prerezi in projekci-jami je v tem, da s prerezi le definiramo domeno projekcij, medtem ko vrednosti projekcij nisozgolj vrednosti slikovnih elementov v izbranem prerezu, ampak so v najsirsem smislu poljubnefunkcije vrednosti vseh slikovnih elementov slike, dolocene na domeni danega prereza. Prereziso torej le posebna oblika projekcij.

Dana je slika vh-143x082x193-08bit.raw velikostiX×Y×Z = 143×82×193 slikovnih elementov,ki je zapisana z 8 biti v obliki surovih podat-kov (RAW). Slika je zajeta s slikovno tehnikoracunalniske tomografije (CT) in predstavlja osre-dnji del cloveskega telesa v 3D. Na razpolago je tudislika vh-071x041x096-08bit.raw velikosti X×Y×Z =71×41×96. Slika z enako vsebino, a manjse veliko-sti kot prva slika nam je v pomoc pri razvoju pro-gramov, saj nalaganje in obdelava podatkov potekahitreje.

1. Napisite funkcijo za nalaganje 3D slike:

function oImage = loadImage3D(iPath, iDim, iType, iMode),

kjer je iPath pot do slike (direktorij in ime datoteke), iDim vektor velikosti slike (v slikovnihelementih), iType oblika zapisa (stevilo bitov), iMode pa nacin nalaganja slike, in sicer:

• iMode = 1: 3D matriko pridobite z zaporednim nalaganjem dvodimenzionalnih (2D)matrik, ki jih sestavite v 3D matriko,

• iMode = 2: 3D matriko pridobite z enkratnim nalaganjem enodimenzionalne (1D)matrike oziroma vektorja, ki ga preoblikujete v 3D matriko, pri cemer si pomagate sfunkcijama permute() in reshape().

Funkcija vrne nalozeno 3D sliko oImage v obliki 3D matrike.

2. Na osnovi 3D slike lahko dolocimo osnovne dvodimenzionalne (2D) ravninske prereze. Ceje 3D slika podana kot f(x, y, z), potem fx=xc(y, z) = f(xc, y, z) doloca stranski (sagi-talni, lateralni) prerez, fy=yc(x, z) = f(x, yc, z) doloca celni (koronalni, frontalni) prerezin fz=zc(x, y) = f(x, y, zc) doloca precni (aksialni, transverzalni) prerez. Napisite funkcijoza dolocanje poljubnega osnovnega ravninskega prereza:

11

Page 18: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

function oSection = getCrossSection(iImage, iPlane, iNum),

kjer je iImage 3D slika, v kateri dolocate 2D prerez, iPlane je ravnina prereza (stranska,celna ali precna), iNum pa zaporedna stevilka prereza. Funkcija vrne zeleni osnovniravninski prerez oSection. Prikazite sliko tako pridobljenega osnovnega ravninskegaprereza na zaslon.

3. Dolocite vse osnovne ravninske prereze med dvema izbranima prerezoma ter jih prikazitena zaslon v casovnem sosledju (video), pri cemer za premor pri prikazovanju uporabitefunkcijo pause(). Prikazite na zaslon video vseh stranskih osnovnih ravninskih prerezovmed zaporedno stevilko x1 = 40 in x2 = 100.

4. Na osnovi 3D slike lahko dolocimo pravokotne projekcije najvecjih vrednosti (MIP, ang.maximum intensity projection). Ce je 3D slika podana kot f(x, y, z), potem fmax(y, z) =maxk=1...X

(f(k, y, z)) doloca stranski MIP, fmax(x, z) = maxk=1...Y

(f(x, k, z)) doloca celni MIP in

fmax(x, y) = maxk=1...Z

(f(x, y, k)) doloca precni MIP. Na podoben nacin lahko dolocimo tudi

projekcije:

• povprecnih vrednosti (AvgIP, ang. average intensity projection),

• najmanjsih vrednosti (MinIP, ang. minimal intensity projection),

• vrednosti median (MedIP, ang. median intensity projection),

• vrednosti standardnih odklonov (StdIP, ang. standard deviation intensity proj.),

• vrednosti varianc (VarIP, ang. variance intensity projection).

Napisite funkcijo za dolocanje poljubne pravokotne projekcije:

function oProjection = getOrthogonalProjection(iImage, iPlane, iFunc),

kjer je iImage 3D slika, v kateri dolocate 2D projekcijo, iPlane je ravnina projekcije(stranska, celna ali precna), iFunc pa vrsta projekcije (MIP, AvgIP, MinIP, MedIP, StdIP,VarIP). Funkcija vrne zeleno pravokotno projekcijo oProjection. Prikazite sliko takopridobljene pravokotne projekcije na zaslon.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite slike naslednjih osnovnih 2D ravninskih prerezov dane 3D slike:

• stranski prerez za slikovni element xc = 76,

• celni prerez za slikovni element yc = 31,

• precni prerez za slikovni element zc = 102.

12

Page 19: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

2. Prilozite slike stranske, celne in precne pravokotne projekcije:

• najvecjih vrednosti (MIP),

• povprecnih vrednosti (AvgIP).

3. Katere izmed pravokotnih projekcij MIP, AvgIP, MinIP, MedIP, StdIP in VarIP je vdanem primeru prikazovanja CT slike sploh smiselno racunati? Obrazlozite odgovor.

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Upodabljanje povrsine (ang. surface rendering) zdruzuje postopke prikazovanja povrsine danega3D objekta oz. strukture. Eden izmed najpogosteje uporabljanih postopkov za upodabljanjepovrsine je ti. izo-povrsina. 3D sliko je potrebno najprej razgraditi, pri cemer lahko uporabimonamenske postopke za razgradnjo ali pa enostavno upragovljanje (ang. thresholding) sivinskihvrednosti. Nato uporabimo funkcijo izo-povrsine, ki medsebojno poveze vse tocke v prostoru, kiimajo enako izo-vrednost (vrednost praga). Povrsina je koncno predstavljena v obliki mnozicetock povrsine (ang. vertices) ter mnozice trikotnikov povrsine (ang. faces), ki povezujejo tockepovrsine med sabo. S pomocjo funkcije za upodabljanje povrsine surfaceRendering(), ki temeljina racunanju izo-povrsine, poskusite upodobiti povrsino v dani 3D sliki iImage pri razlicnihvrednostih danega praga sivinskih vrednosti iThreshold:

>> % prikaz izo-povrsine

>> function pHandle = surfaceRendering(iImage, iThreshold)

>> % izracun izo-povrsine

>> oPatch = isosurface(iImage, iThreshold);

>> % izris izo-povrsine

>> pHandle = patch(oPatch, ’FaceColor’, ’red’, ’EdgeColor’, ’none’);

>> % nastavitev koordinatnih osi

>> daspect([1 1 1]); axis tight;

>> set(gca, ’YDir’, ’reverse’, ’ZDir’, ’reverse’);

>> % nastavitev osvetlitve

>> isonormals(iImage, pHandle); camlight; lighting gouraud;

>> % nastavitev pogleda

>> view(3);

1. Pri katerem pragu dobite zadovoljive rezultate?

2. Ali bi lahko s preprostim postopkom dolocili optimalni prag?

3. Kako bi izboljsali kakovost danega upodabljanja povrsine?

13

Page 20: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 21: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 4: Interpolacija in decimacija slik

Navodila

Interpolacija slik je postopek, s katerim slikipovecamo stevilo slikovnih elementov oziroma s ka-terim lahko dolocimo vrednost sivine v poljubnitocki med vzorcnimi tockami. Decimacija slikje postopek, s katerim sliki zmanjsamo stevilo sli-kovnih elementov, tako da jo vzorcimo z nizjo fre-kvenco.

Postopke interpolacije in decimacije preizkusitena sliki head-256x256-08bit.raw velikosti X×Y =256×256 slikovnih elementov, ki je zapisana z 8 bitiv obliki surovih podatkov (RAW). Slika predstavljadvodimenzionalni (2D) magnetno resonancni (MR)stranski prerez cloveske glave.

1. Interpolacija nictega reda v 2D (interpolacija po principu najblizji sosed) priredi sivinskovrednost v tocki (x, y) enako kot je sivinska vrednost njej najblizje tocke na diskretni mrezivzorcnih tock. Napisite funkcijo za interpolacijo (prevzorcenje) nictega reda 2D slike:

function oImage = interpolate0Image2D(iImage, iCoor, iSize, oSize),

kjer je iImage 2D slika, ki jo interpolirate, iCoor = [x, y] sta koordinati zgornjega levegakota interpolacijskega obmocja, iSize = [x, y] je velikost interpolacijskega obmocja navhodni sliki, oSize = [x, y] pa je velikost izhodne slike. Funkcija vrne interpolirano slikooImage (obmocje) v obliki matrike. Pri iskanju najblizje tocke v diskretni mrezi tock sipomagajte s funkcijo round().

2. Interpolacija prvega reda v 2D (bilinearna interpolacija) priredi sivinsko vrednost v tocki(x, y) enako kot je utezena vsota sivinskih vrednosti njenih stirih sosednjih vzorcnih tock:

f(x, y) = af(xi, yj) + bf(xi+1, yj) + cf(xi, yj+1) + d(xi+1, yj+1) ,

kjer je f(x, y) sivinska vrednost v tocki (x, y). Utez posamezne vzorcne tocke je soraz-merna delezu ploscine pravokotnika, ki ga dolocata tocka (x, y), v kateri racunamo sivinskovrednost, in tocka, ki je tocki (x, y) diagonalno nasprotna, npr. kot:

a =(xi+1 − x)(yj+1 − y)

(xi+1 − xi)(yj+1 − yj).

15

Page 22: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Napisite funkcijo za interpolacijo (prevzorcenje) prvega reda 2D slike:

function oImage = interpolate1Image2D(iImage, iCoor, iSize, oSize),

kjer je pomen vhodnih in izhodnih parametrov funkcije enak kot pri funkciji za interpola-cijo nictega reda. Pri iskanju najblizje spodnje tocke v diskretni mrezi tock si pomagajtes funkcijo floor().

3. Decimacija je vzorcenje slike z nizjo vzorcno frekvenco. Ob upostevanju Nyquistovegateorema je potrebno pred vzorcenjem vhodni sliki zmanjsati frekvencno sirino, kar izve-demo z nizkopasovnim digitalnim filtrom. Filtrirano in z 2 decimirano sliko na stopnji2n dobimo kot konvolucijo slike s predhodne stopnje n z jedrom c(i, j) digitalnega filtravelikosti M×M :

2nf(x, y) =i=M∑i=−M

j=M∑j=−M

c(i, j) · nf(2x− i, 2y − j) .

Velikost decimirane slike se torej zmanjsa glede na stopnjo decimacije. Vecstopenjskodecimacijo lahko predstavimo kot zaporedje decimacij z 2 v obliki piramide. Jedro c(i, j)digitalnega filtra, ki ustreza podanim zahtevam, ima v 2D naslednjo obliko:

116

18

116

18

14

18

116

18

116

M = 1

1400

180

150

180

1400

180

116

110

116

180

150

110

425

110

150

180

116

110

116

180

1400

180

150

180

1400

M = 2

16

Page 23: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Napisite funkcijo za decimacijo (podvzorcenje) 2D slike:

function oImage = decimateImage2D(iImage, iKernel, iLevel),

kjer je iImage 2D slika, ki jo decimirate, iKernel = c(i, j) je jedro digitalnega filtravelikosti M×M , iLevel pa je celostevilcna stopnja decimacije. Funkcija vrne decimiranosliko oImage v obliki matrike. Decimirajte dano sliko z jedrom c(i, j) digitalnega filtravelikosti M = 1 in M = 2 ter poljubno celostevilcno stopnjo decimacije.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Za interpolacijo dane 2D slike uporabite naslednje vrednosti: iCoor = [160, 95],iSize = [45, 60] in oSize = [200, 200]. Prilozite sliko interpolacijskega obmocja naoriginalni sliki ter interpolirano sliko, in sicer za interpolacijo nictega reda in interpolacijoprvega reda.

2. Kaj so prednosti in kaj slabosti interpolacije nictega reda? Kaj so prednosti in slabostiinterpolacije prvega reda? Kaj dosezemo z interpolacijami visjih redov, npr. z interpola-cijo drugega reda (bikubicna interpolacija)?

3. Nastejte nekaj primerov, kjer potrebujemo ucinkovito interpolacijo slik.

4. Za decimacijo dane 2D slike uporabite naslednje vrednosti: iKernel → M = 1 iniLevel = 3. Prilozite tako decimirano sliko.

5. Kaj so prednosti in kaj slabosti decimacije? S kaksnim faktorjem upada velikost slike pridecimaciji? S kaksnim faktorjem upada stevilo podatkov, potrebnih za zapis slike?

6. Kaksne pogoje morajo izpolnjevati koeficienti jedra c(i, j) digitalnega filtra, ki gauporabljate pri decimaciji slike? Ce bi zeleli pri decimaciji preprosto vzorciti vsak drugislikovni element brez zmanjsevanja frekvencne sirine slike, kaksna bi bila v takem primeruoblika in vrednosti jedra c(i, j) digitalnega filtra?

17

Page 24: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

1. Interpolacija prvega reda v 3D (trilinearna interpolacija) temelji na racunanju utezenevsote sivinskih vrednosti osmih sosednjih vzorcnih tock. Utez posamezne sosednje vzorcnetocke izracunamo tako, da je sorazmerna delezu volumna kvadra, ki ga dolocata tocka(x, y, z), v kateri racunamo sivinsko vrednost, in tocka, ki je sosednji vzorcni tockidiagonalno nasprotna. Poskusite napisati funkcijo za interpolacijo prvega reda 3D slike(npr. slike, ki ste jo uporabljali pri Vaji 3), torej funckijo interpolate1Image3D().

2. Slikovni elementi so bili v dosedanjih primerih izotropni, kar pomeni, da je bila dimenzijaslikovnega elementa enaka (uniformna) v vseh koordinatnih smereh. V splosnem pa soslikovni elementi anizotropni, torej njihova velikost ni enaka v vseh koodinatnih smereh.Ker so slikovni elementi rezultat poljubne preslikave iz resnicnega sveta v slikovni prostor,se velikost slikovnega elementa meri v enotah mm

pixel (“milimetri na slikovni element”). Po-splosite racunanje interpolacije prvega reda v 2D in 3D z upostevanjem poljubne velikostislikovnega elementa.

-�∆x -�∆x

?

6∆y

?

6∆y

∆x = ∆y

izotropnislikovni elementi

-� ∆x -� ∆x

?

6∆y

?

6∆y

∆x 6= ∆y

anizotropnislikovni elementi

3. Poskusite zapisati jedro c(i, j) digitalnega filtra velikosti M = 1 za decimacijo v 3D.Preizkusite jedro filtra pri decimaciji 3D slike (npr. slike, ki ste jo uporabljali pri Vaji 3).

18

Page 25: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 5: Sivinske preslikave slik

Navodila

Sivinska preslikava T : R→ R v splosnem preslika vrednosti vseh slikovnih elementov (sivinskihvrednosti) iz dinamicnega obmocja originalne slike [0 . . . Lr− 1] v dinamicno obmocje preslikaneslike [0 . . . Ls − 1].

• Linearno preslikavo izvedemo tako, da sivinsko vrednostvsakega slikovnega elementa referencne slike r(x, y) po-mnozimo s konstantno vrednostjo a (sprememba kontrastaslike) in zmnozku pristejemo konstantno vrednost b (spre-memba svetlosti slike):

s(x, y) = a · r(x, y) + b .

Rezultat je slika s(x, y), ki ima linearno preslikane sivinskevrednosti.

• Linearno oknenje izvedemo tako, da na dinamicnemobmocju referencne slike definiramo poljubno okno ssrediscem c in sirino w:

- vse sivinske vrednosti v referencni sliki r(x, y), ki somanjse od spodnje meje okna c− w

2 , preslikamo v vre-dnost 0,

- vse sivinske vrednosti v referencni sliki r(x, y), ki sovecje od zgornje meje okna c+w

2 , preslikamo v najvecjomozno sivinsko vrednost Lo − 1,

- vse sivinske vrednosti v referencni sliki r(x, y), ki soznotraj okna, preslikamo z linearno sivinsko preslikavo.

o(x, y) =

0 pri r(x, y) < c− w

2 ,

Lo−1w

(r(x, y)−

(c− w

2

))pri c− w

2 ≤ r(x, y) ≤ c+ w2 ,

Lo − 1 pri r(x, y) > c+ w2 .

Rezultat je slika o(x, y), ki ima sivinske vrednosti znotraj okna linearno razsirjenena celotno dinamicno obmocje [0 . . . Lo − 1].

19

Page 26: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

• Upragovljanje izvedemo tako, da sivinsko vrednost vsa-kega slikovnega elementa referencne slike r(x, y), ki jemanjsa ali enaka izbrani vrednosti praga t, preslikamo v vre-dnost 0, sicer pa v najvecjo mozno sivinsko vrednost L− 1:

u(x, y) =

{0 pri r(x, y) ≤ t ,

L− 1 pri r(x, y) > t .

Rezultat je upragovljena slika u(x, y).

• Gama preslikava je nelinearna zvezna preslikava, ki je vprimeru enakosti dinamicnega obmocja referencne in presli-kane slike Lr = Lo = L definirana kot:

g(x, y) = (L− 1)1−γrγ(x, y) .

Rezultat je gama preslikana slika g(x, y). Gama preslikava jeuporabna takrat, kadar zelimo zvezno in nelinearno povecatikontrast svetlejsih podrocij na racun manjsega kontrasta te-mnejsih podrocij slik (γ > 1), oziroma obratno (γ < 1).

Dana je tridimenzionalna (3D) slika hrbtenice spine-250x200x097-16bit.raw, zajeta s slikovno teh-niko racunalniske tomografije (CT). Slika je velikosti X×Y×Z = 250×200×97 slikovnih ele-mentov, pri cemer je velikost slikovnega elementa enaka ∆X×∆Y×∆Z = 0.6×0.6×4.0 mm,zapisana pa je v obliki surovih podatkov (RAW) s 16 biti na slikovni element.

1. Nalozite sliko v okolju Matlab kot 3D matriko oImage. Upostevajte, da so sivinskevrednosti zapisane s 16 biti kot predznacena cela stevila (vrsta podatkov ’int16’). Izslike izlocite poljubne 2D stranske (x = konst.), celne (y = konst.) in precne (z = konst.)osnovne ravninske prereze.

2. Napisite funkcijo za poljubno linearno sivinsko preslikavo:

function sImage = scaleImage(iImage, iSlope, iIntersection),

kjer je iImage slika, ki ji preslikujete sivinske vrednosti, iSlope in iIntersection pasta parametra linearne preslikave (parametra premice a in b). Funkcija vrne linearnosivinsko preslikano sliko sImage. Preizkusite delovanje funkcije na sliki oImage za vrednostiiSlope = 1 ter iIntersection = −1024.

3. Napisite funkcijo za poljubno linearno sivinsko oknenje:

function wImage = windowImage(iImage, iCenter, iWidth),

20

Page 27: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

kjer je iImage slika, ki ji preslikujete sivinske vrednosti, iCenter in iWidth pa staparametra linearnega oknenja (sredisce okna c in sirina okna w). Funkcija vrne linearnosivinsko oknjeno sliko wImage. Preizkusite delovanje funkcije na sliki sImage za vrednostiiCenter = 400 ter iWidth = 2000, pri cemer upostevate, da je dinamicno obmocje8-bitnega monitorja enako Lo = 28.

4. Napisite funkcijo za poljubno sivinsko upragovljanje:

function tImage = thresholdImage(iImage, iThreshold),

kjer je iImage slika, ki ji preslikujete sivinske vrednosti, iThreshold pa je parameterupragovljanja (vrednost praga t). Funkcija vrne sivinsko upragovljeno sliko tImage.Preizkusite delovanje funkcije na sliki wImage za vrednost iThreshold = 127.

5. Napisite funkcijo za poljubno gama sivinsko preslikavo:

function gImage = gammaImage(iImage, iGamma),

kjer je iImage slika, ki ji preslikujete sivinske vrednosti, iGamma pa je parameter gamapreslikave (gama vrednost γ). Funkcija vrne gama sivinsko preslikano sliko gImage.Preizkusite delovanje funkcije na sliki wImage za vrednost iGamma = 2.

6. Izrisite poljubne stranske (x = konst.), celne (y = konst.) in precne (z = konst.) osnovneravninske prereze 3D slik oImage, sImage, wImage, tImage in gImage. Prilagodite sirinoin visino izrisa vsakega prereza razmerju velikosti slike v milimetrih. To vam omogocauporaba funkcije image(gridX, gridY, iImage), kjer sta gridX in gridY vektorja, ki vse-bujeta polozaje (v milimetrih) vsakega slikovnega elementa na x in y koordinatni osi izrisa.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite stranske, celne in precne prereze 3D slik pri x = 125, y = 100 in z = 30, in sicerza slike oImage, sImage (a = 1, b = −1024), wImage (c = 400, w = 2000), tImage (t = 127)in gImage (γ = 2). Velikost slik naj bo prilagojena velikosti slikovnega elementa.

2. Zapisite dinamicno obmocje [0 . . . L− 1] za slike oImage, sImage, wImage, tImage in gImage.Kaj se zgodi pri prikazu slikovnih elementov, ki so izven dinamicnega obmocja prikaza8-bitnega monitorja? Obrazlozite odgovor.

3. Ali je preslikane slike smiselno uporabljati le za prikazovanje ali tudi za shranjevanje?Obrazlozite odgovor.

4. Prilozite histograme za slike oImage, sImage, wImage, tImage in gImage. Kaj se dogaja shistogrami pri sivinskih preslikavah slik? Obrazlozite odgovor.

21

Page 28: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 29: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 6: Geometrijske preslikave slik

Navodila

Geometrijske preslikave T : R2 → R2 oz. R3 → R3 omogocajo preslikavo vseh slikovnih elemen-tov (x, y) 2D slike oz. slikovnih elementov (x, y, z) 3D slike na nove lokacije (u, v) oz. (u, v, w),pri cemer se sivinske vrednosti slikovnih elementov ohranijo:

(u, v) = T (x, y) oz. (u, v, w) = T (x, y, z) .

Najbolj splosna linearna geometrijska preslikava je afina preslikava (ang. affine transforma-tion), ki omogoca poljubno skaliranje, rotacijo, translacijo in strig. Afino preslikavo lahkozapisemo kot produkt vektorja koordinat in transformacijske matrike T. V 2D je transfor-macijska matrika popolnoma dolocena s sestimi parametri:

u

v

1

= T

x

y

1

=

a11 a12 tx

a21 a22 ty

0 0 1

x

y

1

.Parametra tx in ty predstavljata translaciji v x in y smeri, parametri aij pa skaliranje, rotacijo instrig. Prednost matricnega zapisa afine preslikave je v tem, da jo lahko sestavimo kot zaporedjeposameznih elementarnih preslikav, in sicer skaliranja (Tskal), translacije (Ttrans), rotacije (Trot)in striga (Tstrig):

Tafina = TstrigTrotTtransTskal .

2D slika strig rotacija translacija skaliranje

1 0 0

0 1 0

0 0 1

1 gxy 0

gyx 1 0

0 0 1

cosϕ − sinϕ 0

sinϕ cosϕ 0

0 0 1

1 0 tx

0 1 ty

0 0 1

kx 0 0

0 ky 0

0 0 1

Pri preslikavi se slikovni elementi referencne slike na lokacijah (xi, yj) preslikajo na nove lokacije(u, v):

(u, v) = T(xi, yj) .

Nove lokacije pa v splosnem ne sovpadajo z diskretno mrezo vzorcnih tock preslikane slike(um, vn). V tockah (um, vn) je zato potrebno dolociti sivinske vrednosti z interpolacijo sivinskihvrednosti iz sosednjih preslikanih tock. Taksen pristop z neposredno preslikavo nam postopekinterpolacije precej zaplete, saj so sosednje preslikane tocke lahko poljubno prostorsko razpore-jene. Njihova prostorska razporeditev je namrec odvisna od vrste preslikave in od parametrovpreslikave. Zato raje uporabljamo inverzno preslikavo:

(x, y) = T−1(um, vn) ,

23

Page 30: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

s katero lahko za vsako diskretno vzorcno tocko preslikane slike (um, vn) dolocimo njeno kore-spondencno lokacijo (x, y) na referencni sliki, torej lokacijo, iz katere se je diskretna vzorcnatocka (um, vn) preslikala in ki se v splosnem nahaja med stirimi vzorcnimi tockami na diskretnimrezi referencne slike (xi, yj). Sivinsko vrednost vzorcne tocke (um, vn) lahko v tem primeruizracunamo z interpolacijo sivinskih vrednosti v korespondencni tocki (x, y) na referencni sliki,saj so v tem primeru sosednje tocke urejene na diskretni mrezi in jih zato lahko hitro in enostavnodolocimo. Najveckrat se zaradi relativne enostavnosti in hitrosti izvedbe uporablja bilinearnainterpolacija za 2D slike.

Dana je dvodimenzionalna (2D) slika head-150x372-08bit.raw, zajetas tehniko magnetne resonance (MR) in predstavlja precni prerezcloveske glave. Slika je zapisana z 8 biti v obliki surovih podatkov(RAW), njena velikost je X×Y = 150×372 slikovnih elementov,velikost slikovnega elementa pa je enaka ∆X×∆Y = 2.0×1.0 mm.

1. Napisite funkcijo, ki za dane vhodne parametre izracuna matriko afine preslikave v 2D:

function oMatrix = getAffineMatrix2D(iStrig, iRot, iTrans, iScal),

kjer je iStrig = [gxy, gyx] vektor striga, iRot = ϕ kot rotacije, iTrans = [tx, ty] vektorpremika in iScal = [kx, ky] vektor faktorjev povecave. Funkcija vrne 2D matriko afinepreslikave oMatrix.

24

Page 31: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

2. Napisite funkcijo, ki za dano sliko izracuna mrezo lokacij slikovnih elementov v milimetrih:

function [oGridX, oGridY] = getGrid2D(iDim, iSize),

kjer je iDim = [X,Y ] velikost referencne slike v slikovnih elementih, iSize = [∆X,∆Y ]pa velikost slikovnega elementa v milimetrih. Funkcija vrne vektorja oGridX in oGridY, kivsebujeta x oz. y lokacije slikovnih elementov v referencni sliki v milimetrih:

oGridX = [∆x, 2∆x, . . . ,X∆X] in oGridY = [∆y, 2∆y, . . . , Y∆Y ].

3. Napisite funkcijo za afino preslikavo tock v 2D:

function [oCoorX, oCoorY] = affineTransform2D(iGridX, iGridY, iMatrix),

kjer sta iGridX in iGridY mrezi koordinat slikovnih elementov v milimetrih, iMatrix

pa inverzna matrika afine preslikave T−1. Funkcija vrne matriki oCoorX in oCoorY, kivsebujeta x oz. y koordinate vsakega preslikanega slikovnega elementa v referencni slikiv milimetrih. Na primer, ce je oCoorX(u, v) = xc ∈ R in oCoorY(u, v) = yc ∈ R, potem sevrednost na lokaciji (xc, yc) v referencni sliki preslika v diskretno lokacijo (u, v).

4. Datoteka bilinearInterpol.m vsebuje funkcijo za bilinearno interpolacijo sivinskih vrednostiglede na dane koordinate preslikanih tock:

function oImage = bilinearInterpol(iImage, iSize, iCoorX, iCoorY, iBgr),

kjer je iImage referencna 2D slika, iSize = [∆X,∆Y ] velikost slikovnega elementa vmilimetrih, iCoorX in iCoorY matriki s koordinatami preslikanih tock, iBgr pa sivinskavrednost tistih slikovnih elementov, ki ne lezijo znotraj referencne slike in torej pred-stavljajo ozadje (ponavadi nastavimo iBgr = 0, ampak zaradi nazornosti uporabiteiBgr = 127). Funckija vrne interpolirano sliko oImage. Uporabite dano funkcijo zainterpolacijo sivinskih vrednosti glede na dane koordinate preslikanih tock.

5. Priredite zgornje funkcije tako, da boste upostevali tudi poljubno izhodisce koordinatnegasistema iCenter = [cx, cy].

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Rotacijsko in translacijsko preslikavo lahko zdruzimo v togo preslikavo (ang. rigid trans-formation), pri cemer ponavadi opravimo najprej rotacijo in nato translacijo. Zapisitesplosno matriko toge preslikave Ttoga v 2D.

25

Page 32: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

2. Kaksne so lastnosti toge preslikave (vzporednost premic, ohranjanje kotov, ohranjanjerazdalj)? Namig: Poskusite razlicne toge preslikave na testni sliki test-190x108-08bit.raw

(dimenzija 190×108 slikovnih elementov, velikost slikovnega elementa 1.0×1.0 milimetra,8-bitni zapis).

3. Togo preslikavo lahko zdruzimo s skaliranjem z vezanim parametrom k; k = kx = ky, tertako dobimo podobnostno preslikavo (ang. similarity transformation). Zapisite splosnomatriko podobnostne preslikave Tpod v 2D.

4. Kaksne so lastnosti podobnostne preslikave? Namig: Poskusite razlicne podobnostnepreslikave na testni sliki.

5. Prilozite izris preslikane slike pri strigu z vrednostjo iStrig = [0.1, 0.5]. Izhodiscekoordinatnega sistema naj bo enkrat v tocki (cx, cy) = (0, 0), drugic pa v srediscu slike.Za vrednost ozadja izberite iBgr = 127.

6. Prilozite izris preslikane slike pri rotaciji z vrednostjo iRotation = −30◦. Izhodiscekoordinatnega sistema naj bo enkrat v tocki (cx, cy) = (0, 0), drugic pa v srediscu slike.Za vrednost ozadja izberite iBgr = 127.

7. Prilozite izris preslikane slike pri translaciji z vrednostjo iTranslation = [+20,−30] mm.Izhodisce koordinatnega sistema naj bo enkrat v tocki (cx, cy) = (0, 0), drugic pa vsrediscu slike. Za vrednost ozadja izberite iBgr = 127.

8. Prilozite izris preslikane slike pri skaliranju z vrednostjo iScaling = [0.7, 1.4]. Izhodiscekoordinatnega sistema naj bo enkrat v tocki (cx, cy) = (0, 0), drugic pa v srediscu slike.Za vrednost ozadja izberite iBgr = 127.

9. Prilozite izris preslikane slike pri togi transformaciji z vrednostjo parametroviRotation = −30◦, iTranslation = [+20,−30] mm in iScaling = [0.7, 1.4]. Iz-hodisce koordinatnega sistema naj bo enkrat v tocki (cx, cy) = (0, 0), drugic pa v srediscuslike. Za vrednost ozadja izberite iBgr = 127.

10. Prilozite izris preslikane slike pri afini transformaciji z vrednostjo parame-trov iStrig = [0.1, 0.5], iRotation = −30◦, iTranslation = [+20,−30] mm iniScaling = [0.7, 1.4]. Izhodisce koordinatnega sistema naj bo enkrat v tocki(cx, cy) = (0, 0), drugic pa v srediscu slike. Za vrednost ozadja izberite iBgr = 127.

11. Kaksne so lastnosti splosne afine preslikave (vzporednost premic, ohranjanje kotov,ohranjanje razdalj)? Namig: Poskusite razlicne afine preslikave na testni sliki.

26

Page 33: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Afino preslikavo smo definirali kot doloceno zaporedje elementarnih preslikav, in sicer kot zapo-redje strig-rotacija-translacija-skaliranje:

Tafina = TstrigTrotTtransTskal .

Kaj se zgodi, ce izberemo neko drugo zaporedje? Obrazlozite odgovor.

27

Page 34: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 35: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 7: Prostorsko filtriranje slik

Navodila

Prostorsko filtriranje je definirano kot lokalna preslikava sivinskih vrednosti slike, ki je izvedenaz operatorjem T v prostoru slike:

g(x, y) = T(f(x, y)

),

kjer je f(x, y) vhodna slika, g(x, y) filtrirana slika in T lokalni operator (jedro filtra), dolocenna pravokotni diskretni domeni velikosti M×N , kjer sta M in N celi in lihi stevili; M = 2m+ 1in N = 2n+ 1. Filtrirano sliko g(x, y) dobimo tako, da operator premikamo in racunamo njegovodziv v vsaki diskretni tocki slike. Kadar so koeficienti filtra w(i, j) simetricni glede na sredisce,je filtriranje enako konvoluciji slike s filtrom:

g(x, y) =m∑

i=−m

n∑j=−n

w(i, j)·f(x− i, y − j) ,

Problem racunanja konvolucije na robu slike po-navadi resimo tako, da diskretno domeno slikerazsirimo v x oz. y smeri za vrednost m oz. n, insicer na vsaki strani slike. Sivinske vrednosti natoekstrapoliramo preko roba slike in tako dosezemoenakomeren prehod sivinskih vrednosti.

Glajenje slik najenostavneje izvedemo tako, da izracunamo aritmeticno povprecje vsehsivinskih vrednosti slike znotraj domene filtra. Poleg navadnega povprecja se pogosto uporabljatudi utezeno povprecje, ki bolj utezi sredisce filtra in s tem zmanjsa ucinek glajenja, ter glajenjez Gaussovim jedrom, ki ima koeficiente dolocene na podlagi Gaussove porazdelitve:

w(i, j) =1

2πσ2e−

i2+j2

2σ2 .

Aritmeticnopovprecje

1 1 1

1 1 1

1 1 1

19 ×

Utezenopovprecje

1 2 1

2 4 2

1 2 1

116 ×

Gaussovfilter

0, 01 0, 08 0, 01

0, 08 0, 64 0, 08

0, 01 0, 08 0, 01

(σ = 0, 5)

29

Page 36: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Ostrenje slik je analogno prostorskemu odvajanju sivinskih vrednosti. Najenostavnejsi ope-rator za drugi odvod je Laplaceov operator, ostrenje slik pa se izvede tako, da se vhodni slikif(x, y) odsteje utezeno sliko drugega odvoda slike:

g(x, y) = f(x, y)− c[∇2f(x, y)

],

kjer konstanta c doloca stopnjo ostrenja. Pogosto se uporablja tudi maskiranje neostrih podrocij,pri cemer vhodni sliki f(x, y) najprej odstejemo njeno zglajeno verzijo F (x, y) ter tako dobimosliko maske m(x, y), ki jo nato pristejemo vhodni sliki v skladu s stopnjo ostrenja c:

m(f(x, y)

)= f(x, y)− F

(f(x, y)

)=⇒ g(x, y) = f(x, y) + c

[m(f(x, y)

)].

Slike lahko ostrimo tudi s pomocjo prvih odvodov oz. gradientov. Vektorska slika gradientag(x, y) v vsaki tocki slike (x, y) kaze v smeri najvecje spremembe funkcije f(x, y). Velikostgradienta lahko izracunamo v vsaki tocki slike kot:

G(x, y) = amp [∇f(x, y)] =√g2x(x, y) + g2

y(x, y) .

Komponenti gradienta gx(x, y) in gy(x, y), ki predstavljata parcialna odvoda slike v x oz. ysmeri, najpogosteje izracunamo s pomocjo Sobelovega operatorja.

Laplaceovoperator

1 1 1

1 −8 1

1 1 1

Sobelov operatorza x smer

−1 0 1

−2 0 2

−1 0 1

Sobelov operatorza y smer

−1 −2 −1

0 0 0

1 2 1

Pri statisticnem filtriranju sivinske vrednosti slikovnih elementov znotraj domene filtrauredimo po velikostnem redu od najvecje do najmanjse. Najbolj znan statisticni filter jemedianin filter. Mediana je po definiciji sredinska vrednost v urejenem nizu vrednosti, torejje odziv medianinega filtra velikosti N×N enak N(N+1)

2 -ti najvecji sivinski vrednosti. Polegmediane lahko dolocimo tudi filter maksimalne vrednosti in filter minimalne vrednosti.

Dana je dvodimenzionalna (2D) rentgenska slika chest-

274x276-08bit.raw, ki predstavlja celno rentgensko projekcijoprsnega kosa. Slika velikosti X×Y = 274×276 je zapisana z8 biti v obliki surovih podatkov (RAW).

30

Page 37: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

1. Napisite funkcijo za prostorsko filtriranje slike v 2D:

function oImage = kernelFiltering2D(iImage, iKernel),

kjer je iImage vhodna slika, iKernel jedro filtra dimenzije N×N . Funkcija vrne matrikofiltriranih vrednosti oImage, ki ima enake dimenzije kot vhodna slika. V splosnemdinamicno obmocje filtriranih vrednosti ne sovpada z dinamicnim obmocjem slike, ki jofiltriramo, poleg tega pa filtrirane vrednosti niso nujno celostevilcne. Pri prikazovanju zatospremenimo dinamicno obmocje filtriranih vrednosti na 8 bitov: oImage = uint8(oImage).

2. Uporabite razlicna jedra filtrov za glajenje slik (aritmeticno povprecje, utezeno povprecje,Gaussovo jedro) ter zgladite sliko. Rezultate prikazite na zaslon.

3. Izostrite sliko s postopkom na podlagi Laplaceovega operatorja in z maskiranjem neostrihpodrocij. Za stopnjo ostrenja izberite vrednost c = 2. Rezultate prikazite na zaslon.

4. Dolocite gradiente slike v x in y smeri s pomocjo Sobelovega operatorja. Izracunajte tudiamplitudno sliko gradienta. Rezultate prikazite na zaslon.

5. Napisite funkcijo za statisticno filtriranje slike v 2D:

function oImage = statisticalFiltering2D(iImage, iLength, iFunc),

kjer je iImage vhodna slika z razsirjeno domeno, iLength je dolzina N kvadratnega filtraN×N , iFunc pa je ime Matlab-ove statisticne funkcije, npr. ’median’. Filtriranje opravitena naslednji nacin:

oValue = feval(iFunc, iVector),

kjer je iVector vektor sivinskih vrednosti, ki ustrezajo danemu polozaju filtra na sliki,oValue pa filtrirana vrednost na danem polozaju filtra. Funkcija vrne filtrirano sliko oImage.

6. Filtrirajte sliko z medianinim filtrom, filtrom maksimalne vrednosti ter filtrom minimalnevrednosti. Rezultate prikazite na zaslon.

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite slike, zglajene aritmeticnim povprecjem, utezenim povprecjem ter Gaussovimjedrom. Za kaj se v splosnem uporablja glajenje slik?

2. Zapisite jedro filtra velikosti N×N = 5×5 za glajenje z aritmeticnim povprecjem, zaglajenje z utezenim povprecjem ter za glajenje z Gaussovim jedrom pri σ = 2.

31

Page 38: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

3. Prilozite slike, izostrene z Laplaceovim operatorjem ter z maskiranjem neostrih podrocij.Prilozite tudi sliko odziva na Laplaceov operator ter sliko maske neostrih podrocij. Za kajse v splosnem uporablja ostrenje slik? Kaj je pomanjkljivost ostrenja, ki je opazna tudina pridobljenih slikah?

4. Prilozite slike Sobelovih gradientov v x in y smeri ter amplitudno sliko Sobelovegagradienta. Za kaj se v splosnem uporablja dolocanje gradientov slik?

5. Prilozite slike, filtrirane z medianinim filtrom, filtrom maksimalne vrednosti in filtromminimalne vrednosti. Za kaj se v splosnem uporablja statisticno filtriranje slik? Kajpovzroci uporaba vsakega od navedenih filtrov na sliki? Kaksna je bistvena razlika medfiltiranjem z medianinim filtrom in filtri za glajenje slike?

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

1. Napisite funkcijo za dolocanje koeficientov 2D jedra Gaussovega filtra:

function oKernel = getGaussianKernel2D(iLength, iStd),

kjer je iLength poljubna velikost jedra filtra N , iStd pa standardna deviacija Gaussoveporazdelitve. Funkcija vrne jedro Gaussovega filtra oKernel. Upostevajte, da so koeficientijedra simetricni ter da mora biti vsota vseh koeficientov enaka 1.

2. Pri filtriranju 2D slik je jedro poljubnega filtra podano z 2D matriko. Podobno je prifiltriranju 3D slik jedro poljubnega filtra podano s 3D matriko. Recimo, da za dolocanjegradienta v x smeri uporabimo naslednjo obliko Sobelovega operatorja:

SobelX(:,:,1) =

=

−1 0 1

−2 0 2

−1 0 1

SobelX(:,:,2) =

=

−2 0 2

−4 0 4

−2 0 2

SobelX(:,:,3) =

=

−1 0 1

−2 0 2

−1 0 1

Kaksna je oblika pripadajocih Sobelovih operatorjev za filtriranje slik v 3D v y in z smeri?

32

Page 39: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 8: Geometrijska poravnava slik (1)

Navodila

Geometrijsko poravnavo dveh slik lahko definiramo kot proces iskanja optimalne geometrijskepreslikave T , ki bo sliki poravnala tako, da se bodo po poravnavi iste strukture oz. objektinahajali na enakih polozajih na obeh slikah. Ena izmed najbolj splosnih in najpogosteje upora-bljanih poravnav je poravnava na osnovi pripadajocih kontrolnih tock na referencni in vhodnisliki. Termin “pripadajoce” oz. “korespondencne” pomeni, da pari kontrolnih tock predstavljajoiste anatomske strukture oz. objekte na obeh slikah. Na osnovi mnozice parov pripadajocihkontrolnih tock dolocimo preslikavo T tako, da se preslikane kontrolne tocke referencne slikeT (xk, yk) cim boljse prilegajo s kontrolnimi tockami vhodne slike (uk, vk) oz. obratno:

T (xk, yk)↔ (uk, vk) oz. (xk, yk)↔ T −1(uk, vk) .

Afina poravnava v 2D je dolocena z afino geometrijsko preslikavo v 2D:u

v

1

= T

x

y

1

=

a11 a12 tx

a21 a22 ty

0 0 1

x

y

1

.Afina interpolacijska poravnava je poravnava, kjer kontrolne tocke preslikamo tako, dase pari med seboj popolnoma prilegajo. Vseh sest parametrov afine preslikave lahko enolicnodolocimo, ce poznamo tri pare (K = 3) nekolinearnih tock (xk, yk)↔ (uk, vk), zapisemo presli-kavo med temi tremi pari tock v matricni obliki ter izrazimo matriko preslikave T:

T =

a11 a12 tx

a21 a22 ty

0 0 1

=

u1 u2 u3

v1 v2 v3

1 1 1

x1 x2 x3

y1 y2 y3

1 1 1

−1

.

Afina aproksimacijska poravnava je poravnava, kjer kontrolne tocke preslikamo tako, dase le priblizno prilegajo. Ko imamo namrec vec kot tri pare (K > 3) kontrolnih tock(xk, yk) ↔ (uk, vk) in med vsemi zapisemo preslikavo, dobimo predolocen sistem enacb (vecenacb, kot je neznank). Vec kot tri pare kontrolnih tock zato ne moremo popolnoma (interpola-cijsko) poravnati, ampak le priblizno (aproksimacijsko). To storimo tako, da tezimo k minimalnipovprecni kvadratni razdalji R2 med vsemi pari (xk, yk)↔ (uk, vk) pripadajocih kontrolnih tockpo preslikavi:

R2 =1

K

K∑k=1

(T (xk, yk)− (uk, vk)

)2R2 =

1

K

K∑k=1

((a11xk + a12yk + tx − uk)2 + (a21xk + a22yk + ty − vk)2

).

Taksen postopek iskanja preslikave je znan pod imenom prileganje po postopku najmanjsihkvadratov (ang. least-squares fitting). Optimalne vrednosti sestih neznanih parametrov dobimotako, da odvode povprecne kvadratne razdalje R2 po vseh parametrih postavimo na nic terdobimo sistem sestih enacb za sest neznanih parametrov:

33

Page 40: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

xx xy x 0 0 0

xy yy y 0 0 0

x y 1 0 0 0

0 0 0 xx xy x

0 0 0 xy yy y

0 0 0 x y 1

a11

a12

tx

a21

a22

ty

=

ux

uy

u

vx

vy

v

Elementi s crto oznacujejo povprecnevrednosti, npr.:

ux =1

K

K∑k=1

ukxk in x =1

K

K∑k=1

xk.

Zgornji sistem enacb lahko zapisimo v matricni obliki in vektor t neznanih parametrov afineaproksimacijske preslikave T izracunamo z inverzom matrike Pxy:

Pxy · t = puv → t = P −1xy · puv .

Mera podobnosti je poljubna skalarna funkcija, dolocena nad vsemi istoleznimi slikovnimielementi referencne a(x, y) in preslikane vhodne slike b(x, y), ki ima optimalno vrednost prioptimalni poravnavi slik. Najbolj klasicna mera podobnosti je povprecna kvadratna napakasivinskih vrednosti (ang. mean square error, MSE):

MSE(a, b) =1

IJ

I∑i=1

J∑j=1

(a(xi, yj)− b(xi, yj))2 .

Dana je arhivska datoteka vaja08.zip v ZIP formatu. Datoteke, ki se nahajajo v arhivu, shranitev izbrani direktorij ter v Matlabu pozenite uporabniski vmesnik vaja08.m. Uporabniski vmesnikomogoca nalaganje referencne slike in vhodne slike (velikost slikovnih elementov in imena slikso prenastavljene), dolocanje kontrolnih tock s preprostim klikanjem na posamezno sliko, klica-nje funkcij za afino poravnavo ter izpis izbrane povprecne kvadratne razdalje med kontrolnimitockami in povprecne kvadratne napake sivinskih vrednosti.

34

Page 41: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

V skladu z navodili dopolnite oz. spremenite obstojeco funkcijo za afino poravnavo (interpola-cijsko in aproksimacijsko) ter obstojeco funkcijo za dolocanje napake poravnave (R2 in MSE):

1. Postopke za poravnavo vpisite v obstojeco funkcijo affineImageRegistration2D.m:

>> % afina poravnava slik v 2D

>> function [oImage, oLand, oMatrix] = affineImageRegistration2D(rLand,...

>> iLand, iImage, iType)

>> % inicializiraj preslikavo z identiteto

>> oImage = iImage;

>> oLand = iLand;

>> oMatrix = eye(3);

>> % afina interpolacijska poravnava

>> if (strcmp(iType, ’afina interpolacijska poravnava’))

>> % !!! TUKAJ VPISITE VASO KODO !!!

>> % afina aproksimacijska poravnava

>> elseif (strcmp(iType, ’afina aproksimacijska poravnava’))

>> % !!! TUKAJ VPISITE VASO KODO !!!

>> end

>> % afina preslikava slike v 2D glede na matriko transformacije

>> % !!! TUKAJ VPISITE VASO KODO !!!

>> % afina preslikava tock v 2D glede na matriko transformacije

>> % !!! TUKAJ VPISITE VASO KODO !!!

Vhodne in izhodne spremenljivke so enake:

rLand Tocke na referencni sliki oblike [x1, y1; x2, y2; . . . ; xk, yk], ki vparu s tockami iLand tvorijo pripadajoce pare kontrolnih tock.

iLand Tocke na vhodni sliki oblike [u1, v1; u2, v2; . . . ; uk, vk], ki v parus tockami rLand tvorijo pripadajoce pare kontrolnih tock.

iImage Vhodna slika.

iType Vrsta afine poravnave, in sicer interpolacijska (’afinainterpolacijska poravnava’) ali aproksimacijska (’afinaaproksimacijska poravnava’).

oImage Preslikana vhodna slika.

oLand Preslikane tocke na vhodni sliki oblike [x′1, y′1; x′2, y

′2; . . . ; x′k, y

′k].

oMatrix Matrika geometrijske preslikave T.

Za preslikavo vhodne slike v izhodno lahko uporabite obstojeco funkcijo:

function oImage = affineImageTransform2D(iImage, iMatrix),

kjer je iImage vhodna slika, iMatrix pa matrika geometrijske preslikave T. Funkcija vrnepreslikano vhodno sliko oImage.

35

Page 42: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

2. Postopke za dolocanje povprecne kvadratne razdalje in povprecne kvadratne napake po-ravnave vpisite v obstojeco funkcijo computeError.m:

>> % napaka R2 in MSE pred in po poravnavi

>> function [R2, MSE] = computeError(rLand, iLand, oLand, ...

>> rImage, iImage, oImage, iArea)

>> % zacetne vrednosti R2 in MSE

>> MSE = zeros(1,2);

>> R2 = zeros(1,2);

>> % !!! TUKAJ VPISITE VASO KODO !!!

Vhodne in izhodne spremenljivke so enake:

rLand Tocke na referencni sliki oblike [x1, y1; x2, y2; . . . ; xk, yk], ki vparu s tockami iLand tvorijo pripadajoce pare kontrolnih tock.

iLand Tocke na vhodni sliki oblike [u1, v1; u2, v2; . . . ; uk, vk], ki v parus tockami rLand tvorijo pripadajoce pare kontrolnih tock.

oLand Preslikane tocke na vhodni sliki oblike [x′1, y′1; x′2, y

′2; . . . ; x′k, y

′k].

rImage Referencna slika.

iImage Vhodna slika.

oImage Preslikana vhodna slika.

iArea Podrocje racunanja MSE oblike [x, y, w, h], kjer so (x, y) koordi-nate zgornjega levega kota podrocja, w je sirina podrocja in h jevisina podrocja.

R2 Vektor povprecne kvadratne razdalje med pari pripadajocih tockoblike [r2

1, r22], kjer je r2

1 napaka pred poravnavo in r22 napaka po

poravnavi.

MSE Vektor povprecne kvadratne napake sivinskih vrednosti oblike[m1,m2], kjer je m1 napaka pred poravnavo in m2 napaka po po-ravnavi.

Preizkusite delovanje afine interpolacijske in afine aproksimacijske poravnave tako, da s klika-njem dolocite pripadajoce tocke ter pritisnete na gumb Poravnaj sliki. V primeru, da pride dospremembe funkcij affineImageRegistration2D.m ali computeError.m, uporabniskega vmesnika ni po-trebno vedno znova zaganjati ter tako ponovno dolocati kontrolne tocke, potrebno je le ponovnoizvrsiti poravnavo.

36

Page 43: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite sliko uporabniskega vmesnika uspesne afine aproksimacijske poravnave slik naosnovi 12 parov pripadajocih tock. (S pritiskom na gumb Shrani vmesnik shranite upo-rabniski vmesnik v sliko slika˙6˙uporabniski˙vmesnik.jpg.)

2. Dolocite 6 parov pripadajocih tock, izvrsite afino aproksimacijsko poravnavo ter zapisitepovprecno razdaljo med pari pripadajocih tock R2 ter povprecno kvadratno napako si-vinskih vrednosti MSE, in sicer pred poravnavo in po poravnavi. Za podrocje racunanjanapake uporabite vrednosti iArea = [50, 155, 110, 40]. Postopek ponovite 10-krat, pri cemerv vsaki ponovitvi poskusite tocke dolociti na cimbolj enakih polozajih. Izracunajte pov-precno vrednost in standardni odklon za dobljene vrednosti R2 in MSE. Kaksni so zakljuckitega eksperimenta? Obrazlozite odgovor.

3. Prilozite poravnano sliko, sliko razlik in sliko sahovnice za uspesno afino interpolacij-sko poravnavo. (S pritiskom na gumb Shrani slike shranite slike v slika˙3˙poravnana.bmp,slika˙4˙razlika.bmp in slika˙5˙sahovnica.bmp.)

4. Katere tocke ste izbrali za pare pripadajocih tock? Kaj je pomembno pri izbiri teh tock?Obrazlozite odgovor.

5. Kaksne so pomanjkljivosti mere podobnosti MSE? Obrazlozite odgovor.

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Poskusite napisati funkcijo, ki ima za vhodne spremenljivke koordinate poljubnega stevila po-ljubno dolocenih tock na referencni sliki rLand, referencno sliko rImage ter vhodno sliko iImage.Izhodne spremenljivke funkcije so koordinate pripadajocih tock na vhodni sliki iLand, ki sodolocene tako, da je povprecna kvadratna napaka vseh sivinskih vrednosti med slikama rImage

in iImage cim manjsa.

37

Page 44: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 45: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 9: Geometrijska poravnava slik (2)

Navodila

Geometrijska poravnava z optimizacijo podobnosti temelji na maksimizaciji podobnosti medsivinskimi vrednostmi vseh istoleznih slikovnih elementov dveh slik. Izbrati moramo preslikavo,mero podobnosti in optimizacijski postopek, ki nam omogocajo samodejno iterativno optimiza-cijo podobnosti. V posamezni iteraciji optimizacijski postopek predlaga vrednosti parametrovmatrike T, ki doloca geometrijsko preslikavo. Glede na predlagane parametre preslikamo vho-dno sliko b(u, v) v lebdeco sliko b(x, y), ki jo ob pomoci mere podobnosti (MP) primerjamo zreferencno sliko a(x, y), in sicer z izracunom podobnosti P:

P = MP(a(x, y)↔ b(x, y)

)= MP

(a(x, y)↔ T−1

(b(u, v)

)).

Mera podobnosti je poljubna skalarna funkcija, dolocena nad vsemi istoleznimi slikovnimi ele-menti referencne a(x, y) in lebdece slike b(x, y), ki ima optimalno vrednost pri optimalni porav-navi slik:

• Srednja kvadratna napaka (ang. mean square error, MSE):

MSE(a, b) =1

IJ

I∑i=1

J∑j=1

(a(xi, yj)− b(xi, yj))2 .

• Srednja absolutna napaka (ang. mean absolute error, MAE):

MAE(a, b) =1

IJ

I∑i=1

J∑j=1

|a(xi, yj)− b(xi, yj)| .

• Korelacijski koeficient (ang. correlation coefficient, CC):

CC(a, b) =

∑Ii=1

∑Jj=1 (a(xi, yj)− a)

(b(xi, yj)− b

)√∑Ii=1

∑Jj=1 (a(xi, yj)− a)2∑I

i=1

∑Jj=1

(b(xi, yj)− b

)2 .

39

Page 46: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

• Medsebojna informacija (ang. mutual information, MI):

MI(a, b) = H(a) +H(b)−H(a, b) ,

kjer je H(a) entropija referencne slike a(x, y), H(b) entropija lebdece slike b(x, y), H(a, b)pa njuna skupna entropija:

H(a) = −L−1∑sa=0

pa(sa) log(pa(sa)

)H(b) = −

L−1∑sb=0

pb(sb) log(pb(sb)

)H(a, b) = −

L−1∑sa=0

L−1∑sb=0

pab(sa, sb) log(pab(sa, sb)

).

Verjetnostni porazdelitvi pa(sa) in pb(sb) in skupno porazdelitev pab(sa, sb) ocenimo z nor-malizacijo pripadajocih histogramov ha(sa), hb(sb) in hab(sa, sb):

pa(sa) =ha(sa)

IJ, pb(sb) =

hb(sb)

IJin pab(sa, sb) =

hab(sa, sb)

IJ.

Spremenljivki sa in sb oznacujeta diskretne sivinske vrednosti slike a(x, y) in slike b(x, y).

Dane so slike test-A-040x060-08bit.raw (referencna testna slika A), test-B1-040x060-08bit.raw (prvavhodna testna slika B1) in test-B2-040x060-08bit.raw (druga vhodna testna slika B2) velikostiX×Y = 40×60 slikovnih elementov in zapisane z 8 biti v obliki surovih podatkov (RAW).

slika A slika B1 slika B2

1. Napisite algoritem za poravnavo referencne slike (A) ter vhodne slike (B1 oziroma B2)na podlagi poljubne mere podobnosti MP, pri cemer geometrijsko preslikavo poravnavedolocata samo premik v x smeri (parameter tx) ter premik v y smeri (parameter ty).Namesto optimizacijskega postopka uporabite postopek izcrpnega iskanja (ang. exhaustivesearch) na obmocju tx = −10. . .+10 in ty = −10. . .+10.

2. Izracunajte vrednosti posamezne mere podobnosti (MSE, MAE, CC in MI) v vsaki tockiparametricnega prostora preslikave ter jih prikazite kot ploskev v parametricnem prostoru(tx, ty). Za prikaz uporabite funckijo surf(Tx, Ty, MP), kjer so vhodne spremenljivkeenake:

40

Page 47: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Tx Matrika premikov tx v x smeri:[tx1, tx2, . . . , txn; tx1, tx2, . . . , txn; . . . ; tx1, tx2, . . . , txn

].

Ty Matrika premikov ty v y smeri:[ty1, ty1, . . . , ty1; ty2, ty2, . . . , ty2; . . . ; tym, tym, . . . , tym

].

MP Matrika vrednosti mere podobnosti pri poljubni lokaciji (txi, tyj):[MP11,MP12, . . . ,MP1n; MP21,MP22, . . . ,MP2n; . . . ;MPm1,MPm2, . . . ,MPmn

].

Za prikaz uporabite sivinsko lestvico (funkcija colormap(·)) ter pogled z vrha (funkcijaview(0,90)).

3. Dolocite optimalno (maksimalno oziroma minimalno) vrednost posamezne mere podobno-sti MP ter parametra premika t opt

x in t opty , pri katerih posamezna mera podobnosti MP

doseze optimum (maksimum oziroma minimum).

4. Izrisite razliko referencne slike (A) in lebdece slike (preslikana B1 oziroma B2) pri pa-rametrih premika t opt

x in t opty za posamezno mero podobnosti (MSE, MAE, CC in MI).

Izris smiselno prilagodite prikazovanju razlike slik (rezultatu pristejete sredino dinamicnegaobmocja slike, torej sivinsko vrednost 127).

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

Dane so dvodimenzionalne (2D) slike glave, zajete s tehniko magnetne resonance (MR), in sicerT2-utezena slika head-T2-083x100-08bit.raw (referencna slika A), T1-utezena slika head-T1-083x100-

08bit.raw (prva vhodna slika B1) in SD-utezena slika head-SD-083x100-08bit.raw (druga vhodnaslika B2). Slike so velikosti X×Y = 83×100 slikovnih elementov in zapisane z 8 biti v oblikisurovih podatkov (RAW).

slika A - MR T2 slika B1 - MR T1 slika B2 - MR SD

1. Izrisite vrednosti posamezne mere podobnosti (MSE, MAE, CC in MI) kot ploskev vparametricnem prostoru preslikave tx = −15. . .+15 in ty = −15. . .+15.

2. Dolocite optimalno vrednost posamezne mere podobnosti ter parametra premika t optx in

t opty , pri katerih posamezna mera podobnosti (MSE, MAE, CC in MI) doseze optimum.

41

Page 48: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

3. Izrisite razliko referencne slike (A) in lebdece slike (preslikana B1 oziroma B2) pri para-metrih premika t opt

x in t opty za posamezno mero podobnosti (MSE, MAE, CC in MI).

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Postopek izcrpnega iskanja je v praksi neuporaben zaradi casovne zahtevnosti, kar pride seposebej do izraza pri vecjem stevilu parametrov v matriki preslikave T. Napisite algoritemza poravnavo, kjer boste za dolocanje optimalnih parametrov premika t opt

x in t opty uporabili

optimizacijski postopek. Uporabite lahko funkcijo fminsearch(·), ki poisce minimum skalarnefunkcije vec spremenljivk.

42

Page 49: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Univerza v Ljubljani, Fakulteta za elektrotehniko

Medicinska informatika in diagnostika (MID)

Vaja 10: Razgradnja slik

Navodila

Razgradnja ali segmentacija slik (ang. imagesegmentation) zdruzuje postopke, s katerimisliko razdelimo na osnovna podrocja oziromaobjekte. Med postopke iskanja objektov nasliki spada tudi iskanje premic. Ucinkovit po-stopek iskanja premic na sliki temelji na Ho-ughovi transformaciji. Predpostavimo, daimamo binarno sliko robov f(x, y). Skozi po-ljubno izbrano robno tocko (xi, yi) lahko po-tegnemo poljubno stevilo premic oblike:

yi = axi + b .

Isto enacbo lahko zapisemo v prostoru parametrov (a, b), kjer sta koordinati robne tocke xi inyi parametra premice:

b = −xia+ yi .

Za neko drugo robno tocko (xj , yj) dobimo v prostoru parametrov (a, b) se eno premico oblike:

b = −xja+ yj ,

ki se v neki tocki (a′, b′) seka s premico, ki pripada tocki (xi, yi). Parametra (a′, b′) dolocataenacbo premice v prostoru slike (x, y), ki gre skozi tocki (xi, yi) in (xj , yj).Na ta nacin bi lahko za vsak par robnih tock v prostoru slike (x, y) izracunali parametra po-vezujoce premice ter nato v prostoru parametrov (a, b) narisali ustrezno tocko (a′, b′). Nato bilahko poiskali najbolj pogoste parametre premic v prostoru parametrov (a, b) ter pripadajocepremice v prostoru slike (x, y), ki povezujejo veliko stevilo robnih tock. Problem pri tovrstnemiskanju premic je v tem, da gre pri navpicnih premicah vrednost parametra a in s tem veli-kost prostora parametrov (a, b) proti neskoncnosti. Temu se lahko izognemo tako, da zapisemopremico s pomocjo polarnih koordinat (r, ϕ), in sicer kot:

x cosϕ+ y sinϕ = r ,

Za navpicno premico (ϕ = 0◦) doloca r presecisce premice z x osjo, za vodoravno premico(ϕ = 90◦) pa doloca r presecisce premice z y osjo. V prostoru parametrov (r, ϕ) tako vsakasinusna krivulja:

xi cosϕ+ yi sinϕ = r

predstavlja mnozico premic, ki gredo v prostoru slike (x, y) skozi tocko (xi, yi). Presecisce dvehsinusnih krivulj (r′, ϕ′) torej doloca parametra premice, ki gre skozi tocki (xi, yi) in (xj , yj) vprostoru slike:

x cosϕ′ + y sinϕ′ = r′.

43

Page 50: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Glavna prednost Houghove transformacije je v tem, da lahko prostor parametrov (r, ϕ) dis-kretiziramo, tako da dobimo t.i. akumulatorske celice. Seveda je potrebno dolociti obmocjeparametrov r in ϕ tako, da lahko opiseta poljubne premice skozi vse tocke slike, ter ju razdelitina zeleno stevilo akumulatorskih celic:

(rmin, rmax) = (0, rdiag) in (ϕmin, ϕmax) = (−90◦,+180◦) .

Vrednosti vseh akumulatorskih celic A(rn, ϕm) najprej postavimo na 0, nato pa za vsako robnotocko (xi, yi) in za vsako mozno diskretno vrednost ϕm na intervalu (ϕmin, ϕmax) izracunamoustrezno vrednost parametra r. Vrednost parametra r zaokrozimo na najblizjo diskretno vre-dnost rn in vrednost akumulatorske celice (rn, ϕm) povecamo za 1:

A(rn, ϕm) ← A(rn, ϕm) + 1 .

Po koncanem postopku vrednost vsake celice akumulatorja A(rn, ϕm) predstavlja stevilo robnihtock, ki v prostoru slike lezijo na premici:

x cosϕm + y sinϕm = rn .

Premice, ki predstavljajo robne tocke slike, dolocimo tako, da poiscemo tiste celice akumulatorjaA(rn, ϕm), ki imajo dovolj velike in lokalno najvecje vrednosti.

44

Page 51: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

Dana je arhivska datoteka vaja10.zip v ZIP formatu. Datoteke, ki se nahajajo v arhivu, shranitev izbrani direktorij ter v Matlabu pozenite uporabniski vmesnik vaja10.m. Uporabniski vmesnikomogoca nalaganje vhodne slike, dolocanje binarne slike robov, izris slike akumulatorja Houghovetransformacije, iskanje lokalnih maksimumov v akumulatorju, izris pripadajocih premic in tockter shranjevanje slik.

V skladu z navodili dopolnite oziroma spremenite obstojeco funkcijo houghTransform2D2P.m zaHoughovo transformacijo v dveh dimenzijah (2D) za premice v dvoparametricnem polarnemprostoru (r, ϕ):

>> % Houghova transformacija v 2D za 2 parametra

>> function [oAcc, rangeR, rangeF] = houghTransform2D2P(iImage, stepR, stepF)

>> % slepa nastavitev izhodnih vrednosti

>> rangeR = 1;

>> rangeF = 1;

>> oAcc = 0;

Vhodne in izhodne spremenljivke so enake:

iImage Binarna slika robov, kjer vrednosti razlicne od nic predstavljajorob na originalni sliki: f(xi, yi) 6= 0 → (xi, yi) je robna tocka.

stepR Korak spremembe parametra r: ∆r = rn+1 − rn.

stepF Korak spremembe parametra ϕ: ∆ϕ = ϕm+1 − ϕm.

oAcc Akumulator Houghove transformacije: A(rn, ϕm).

rangeR Vektor vrednosti parametra r: [r1, r2, . . . , rn, . . . , rmax].

rangeF Vektor vrednosti parametra ϕ: [ϕ1, ϕ2, . . . , ϕm, . . . , ϕmax].

Delovanje algoritma preizkusite na testnih slikah image-test1-180x150.raw ter image-test2-

180x150.raw velikosti X×Y = 180×150 slikovnih elementov. Poskusite tudi s sliko image-neck-

170x170.raw velikosti X×Y = 170×170 slikovnih elementov, ki predstavlja stranski magnetno-resonancni (MR) prerez cloveskega vratu. (Pri uporabi Cannyjevega detektorja robov bostemorali za pravilno doloceno sliko robov seveda se ustrezno nastaviti prag ter standardni odklondetektorja, tako da bodo robne tocke opisovale vse zanimive strukture na sliki.)

Vprasanja

Porocilo vaje vsebuje lastnorocno (brez uporabe racunalnika) zapisane odgovore na naslednjavprasanja, medtem ko so zahtevane slike natisnjene ter prilozene porocilu.

1. Prilozite slike uspesnega iskanja najbolj izrazite premice (n = 1) na drugi testni sliki(image-test2-180x150.raw). Kaj lahko sklepate o Houghovi transformaciji iz rezultatov tegaposkusa? Obrazlozite odgovor.

2. Prilozite slike uspesnega iskanja najbolj izrazitih premic (n > 1) na sliki image-neck-

170x170.raw. Vrednost najmanjsega stevila presecisc nastavite na najvecjo vrednost, kise omogoca izris premic, ki potekajo vzdolz sprednje ter zadnje strani hrbtenicnega kanala

45

Page 52: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

oziroma hrbtenjace. Zapisite izbrane vrednosti parametrov iskanja robov (prag, standardniodklon) ter izbrano vrednost stevila presecisc v akumulatorju.

3. Od cesa je odvisna natancnost dolocanja premic s pomocjo Houghove transformacije?Obrazlozite odgovor.

4. Kaksne so lastnosti Houghove transformacije? Obrazlozite odgovor.

Dodatek

Odgovore na sledece probleme ni potrebno prilagati porocilu. Sluzijo naj v razmislek ter kotvzpodbuda za boljse razumevanje vsebine.

Dana je slika image-circles-160x160-08bit.raw velikosti X×Y = 160×160 slikovnih elementov. Spomocjo Houghove transformacije poskusite dolociti prvih K najbolj izrazitih kroznic na sliki.(Opomba: Program bo seveda popolnoma locen od danega uporabniskega vmesnika, ki je prila-gojen za dani problem s premicami.)

46

Page 53: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila
Page 54: Medicinska informatika in diagnostika - lit.fe.uni-lj.silit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf · Medicinska informatika in diagnostika (MID) Vaja 0: Uvod v Matlab Navodila

c© 2010 Tomaz Vrtovec

http://lit.fe.uni-lj.si/MID/http://lit.fe.uni-lj.si/gradivo/MID-LabVaje-slo.pdf