Biomedicinske slikovne tehnologije
Transcription
Biomedicinske slikovne tehnologije
Vaje pri predmetu Biomedicinske slikovne tehnologije Pripravil doc. dr. Miran Bürmen 10 Vaja 9: Projekcije 2D slik Pri izvedbi projekcije 2D slik vzdolž poljubnih projekcijskih daljic izberemo korak vzorčenja ∆p običajno tako, da ustreza najmanjši razsežnosti slikovnega elementa ∆p ≈ min(∆x, ∆y). Na podoben način izberemo tudi korak v domeni prerezne daljice ∆q ≈ min(∆x, ∆y). Pri vzorčenju vrednosti vzdolž projekcijskih daljic s periodo ∆p največkrat ne naletimo točno na vzorčne vrednosti digitalne slike, razen, ko izvajamo vzporedne projekcije vzdolž osnovnih koordinatnih osi slike. Zato je v splošnem potrebno sivinsko vrednost v vzorčni točki izračunati s pomočjo interpolacije. V okviru vaje se bomo omejili na linearno interpolacijo, ki jo lahko izvedemo s funkcijo interp2 modula (interp). V splošnem poznamo številne projekcije, med njimi si bomo podrobneje ogledali dve projekciji vzdolž premic, in sicer pravokotno in stožčasto projekcijo. Stožčasta projekcija nam dobro opiše dogajanje tekom zajema sodobnih CT in Rentegenski slik, v posebnem primeru, ki ga obravnavamo tekom te vaje, pa predstavlja projekcijo prečne rezine, ki mu pravimo tudi sinogram. Pri tem projekcijski prerez predstavlja odziv linijskega tipalo, projekcijske premice pa pot žarkov od izvora do posameznega slikovnega elementa linijskega tipala. Za rotacijo točk okrog koordinatnega izhodišča uporabite rotacijsko matriko Tr , ki smo jo že uporabili tekom prejšnjih vaj: " # cos ϕ − sin ϕ Tr = sin ϕ cos ϕ . Δx (10.1) Δx Δy Δy Δp Δp (a) Pravokotna projekcija (b) Stožčasta projekcija Slika 10.1: Ilustracija pravokotne in stožčaste projekcije 2D slika na linijsko tipalo. 10.1 Naloge in vprašanja 1. Ustvarite funkcijo imParallelBeamProject2d, ki vam izračuna 1D projekcije (odziv linijskega senzorja), na katerega žarki padajo pravokotno, in sicer za kote rotacije iFi med Stran 109 (a) Testna slika (b) PP sinogram (c) SP sinogram (d) Rezina CT slike (e) PP sinogram (f) FP sinogram Slika 10.2: Testna slika vaja9_testna.png (200 × 200 slikovnih elementov velikosti 1 × 1 mm) ter prečna rezina CT slike trupa vaja9_ct.png (287 × 165 slikovnih elementov velikosti 2 × 2 mm) s pripadajočimi sinogrami, ki jih dobimo s pravokotno projekcijo (PP) in stožčasto projekcijo (SP). senzorskim poljem in y osjo. Predpostavite, da se vhodna slika iImg nahaja na mreži točk, ki jo napenjata vektorja iGridX in iGridY. Izvor vzporednih žarkov in tipalo naj bosta na razdalji iDiameter, število slikovnih elementov linijskega tipala naj bo iDetectorN, velikost posameznega kvadratnega slikovnega elementa tipala pa iDetectorPixelSize. Izračunane projekcije naj bodo shranjene v vrsticah matrike Op. Korak vzorčenja v smeri projekcijskih daljic naj bo iSampleGrid. Parameter iType=’max’,’sum’ naj določa tip projekcije, in sicer maksimalne vrednosti ’max’ ali integral (vsota) ’sum’. Podrobnejše informacije o geometriji najdete na sliki 10.3. 1 2 3 4 def im P ar a ll el B ea m Pr oj e ct 2 d ( iFi , iSampleGrid , iImg , iGridX , iGridY , iDiameter , iDetectorN , iDetectorPixelSize , iType = ’ sum ’) : ... return oP (a) Naložite testno sliko vaja9_test.png, ter izračunajte 2D projekcije srednje vrednosti za kote med senzorjem in y osjo iz intervala [0, 359]◦ s korakom 1◦ ter izrišite projekcije oP kot sivinsko sliko. Vrednosti parametrov funkcije imParallelBeamProject2d naj bodo sledeče: iDiameter=800 mm, iDetectorNy=512, iDetectorPixelSize=1 mm, iGrid=2 mm, sliko pa postavite v koordinatno izhodišče. Velikost slikovnih elementov testen slike znaša 1 × 1 mm. (b) Na enak način izračunajte še projekcije slike prečne CT rezine trupa vaja9_ct.png ter izračunane projekcije prikažite kot sliko. Velikost slikovnih elementov prečne rezine Stran 110 iDiameter/2 Tipalo iDetectorN iFi iSampleGrid x y iDetectorPixelSize Slika 10.3: Pravokotna projekcija 2D rezine CT slike na linijsko tipalo. CT slike znaša 2 × 2 mm. 2. Ustvarite še funkcijo imFanBeamProject2d, ki vam izračuna 1D projekcije (odziv linijskega senzorja), na katerega žarki padajo iz točkastega vira. Pomen parametrov funkcije je enak kot pod prejšnjo točko, le da sedaj računate stožčasto projekcijo. Podrobnejše informacije o geometriji najdete na sliki 10.4. 1 2 3 4 def imFanBeamProject2d ( iFi , iSampleGrid , iImg , iGridX , iGridY , iDiameter , iDetectorNy , iDetectorPixelSize , iType = ’ sum ’) : ... return oP (a) Naložite testno sliko vaja9_test.png, ter izračunajte 2D projekcije srednje vrednosti za kote med senzorjem in y osjo iz intervala [0, 359]◦ s korakom 1◦ ter izrišite projekcije oP kot sivinsko sliko. Vrednosti parametrov naj bodo sledeče: iDiameter=800 mm, iDetectorNy=512, iDetectorPixelSize=1 mm, iGrid=2 mm, sliko pa postavite v koordinatno izhodišče. Velikost slikovnega elementa testen slike je je 1 × 1 mm. (b) Preizkusite kako vrednost parametra iGrid vpliva na sinogram in kako na čas, ki ga za računanje porabi funkcija imFanBeamProject2d. (c) Izračunajte še projekcije prečne CT rezine trupa vaja9_ct.png ter izračunane projekcije prikažite kot sliko. Velikost slikovnih elementov prečne rezine CT slike znaša 2 × 2 mm. Izračunane projekcije predstavljajo surove podatke, ki jih zajeme sodobna CT naprava, in so osnova za rekonstrukcijo ene prečne rezine 3D CT slike. Stran 111 iDiameter/2 Tipalo iDetectorN iFi iGr id x y iDetectorPixelSize Slika 10.4: Stožčasta projekcija 2D rezine CT slike na linijsko tipalo. (d) Kodo prilagodite, tako da bodo izračuni projekcij hitri (nekaj deset ms za posamezno projekcijo), saj boste izračunane projekcije (sinograme) tekom prihodnjih vaj uporabili za rekonstrukcijo rezine 3D CT slike. Stran 112