Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Relevanta dokument
Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder

Medicinska Bilder, TSBB31. Lab6: Mätningar på SPECT/CT-volymer

Medicinska Bilder, TSBB31. Lab7: Mätningar på SPECT/CT-volymer

Signal- och Bildbehandling, TSBB14. Laboration 2: Sampling och rekonstruktion. DFT.

Flerdimensionella signaler och system

Laboration 1. Grafisk teknik Rastrering. Sasan Gooran (HT 2004)

Laboration 2. Grafisk teknik (TNM059) Digital Rastrering. S. Gooran (VT2007)

Simulering med ModelSim En kort introduktion

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Bilaga 4, Skapa grafiskt användargränssnitt med guide

Lab 1: Operationer på gråskalebilder

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Simulering med ModelSim En kort introduktion

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Medicinska bilder. Programkurs 6 hp Medical Images TSBB31 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

TSBB14 Laboration: Intro till Matlab 1D

Linjär algebra med tillämpningar, lab 1

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel vers. 2010

Signaler, information & bilder, föreläsning 15

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Tentamen Bildanalys (TDBC30) 5p

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel

Att göra före det schemalagda labpasset.

MMA132: Laboration 2 Matriser i MATLAB

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Histogramberäkning på en liten bild

Matematikcentrum 1(5) Matematisk Statistik Lunds Universitet MASB11 HT Laboration P3-P4. Statistiska test

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet Per-Erik Isberg. Laboration 1. Simulering

Laboration med Minitab

Introduktion till Matlab

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs HT2007. Laboration. Simulering

Laboration: Grunderna i Matlab

Laboration: Grunderna i MATLAB

LABORATION 1. Syfte: Syftet med laborationen är att

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

NetBeans 5.5. Avsikt. Projektfönster

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs VT2014, lp3. Laboration 2. Fördelningar och simulering

MR-laboration: design av pulssekvenser

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

Laboration 1 Introduktion till Visual Basic 6.0

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR

*****************************************************************************

träna på att använda olika grafiska metoder för att undersöka vilka fördelningar ett datamaterial kan komma från

Försättsblad till skriftlig tentamen vid Linköpings universitet G35(18) TER4(12)

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

TANA17 Matematiska beräkningar med Matlab

Introduktion till Matlab

Försättsblad till skriftlig tentamen vid Linköpings Universitet

TEM Projekt Transformmetoder

Laboration 4: Digitala bilder

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Ett enkelt OCR-system

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Beräkningsverktyg HT07

Instruktion för laboration 1

SF1901 Sannolikhetsteori och statistik: HT 2014 Lab 1 för CSAMHS, CINEKI, och CL

Signal- och bildbehandling TSEA70

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Mäta rakhet Scanning med M7005

Bildbehandling, del 1

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Introduktion till Word och Excel

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 HT11. Laboration. Statistiska test /16

GitHub for Windows och GitShell

Datorövning 1 Fördelningar

Introduktion till MATLAB

Richard Öhrvall, 1

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Föreläsning 1 & 2 INTRODUKTION

Instruktion för laboration 1

Manual

TSBB16 Datorövning A Samplade signaler Faltning

Intro till SPSS Kimmo Sorjonen (0811)

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

DATORINTRODUKTION. Laboration E ELEKTRO. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Ulf Holmgren

Laboration 3: Parameterskattning och Fördelningsanpassning

Laboration 1: Beskrivande statistik

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

2 Laborationsuppgifter, upptagetsystem

Extramaterial till Matematik Y

Datorövning Power curve 0,0305 0, Kvantiler, kritiska regioner

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Statistik över heltal

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Manual till Lathunden. En programvara från Genetica

Del A (obligatorisk för alla)

NetBeans 7. Avsikt. Projektfönster

Transkript:

Medicinska Bilder, TSBB3 Lab: Mätvärden på Medicinska Bilder Maria Magnusson, 22 Senaste updatering: september 27 Avdelningen för Datorseende, Institutionen för Systemteknik Linköpings Universitet Introduktion I denna laboration ska vi göra olika mätningar på bilder. Laborationen behövs som förkunskap till den senare laboration om SPECT. 2 Förberedelser inför laborationen Läs igenom hela laborationshandledningen noggrant. Valda delar av senaste föreläsningen ger den teori som behövs. Lös förberedelseuppgifterna i lab-handledningen innan laborationstillfället! De är markerade med en pekande hand. 3 Laborationen 3. Start Börja med att logga in och starta MATLAB. De program som vi ska använda ligger på /site/edu/cvl/medicinskabilder/noise. Kopiera dessa filer till din hem-katalog och kör programmet NOISE.m. En fyrdelad test-bild med fyra områden med värdena, 7, 4 och visas till vänster, se Fig.. Matlab-koden för detta program är:

% Image size 2 % ========== 3 N = 28; 4 5 % Compose test image 6 % ================== 7 im = zeros(n,n); 8 im(:n/2,:n/2) = ; 9 im(n/2+:n,:n/2) = 4; im(:n/2,n/2+:n) = 7; im(n/2+:n,n/2+:n) = ; 2 3 figure() 4 colormap(jet) 5 subplot(2,2,), imagesc(im, [ ]) 6 axis image, colorbar 7 title( a) original image ) a) original image 2 4 8 2 4 8 Figur : a) Testbild. 5 Öppna programmet NOISE.m i en editor och lägg nu till gaussiskt brus med medelvärde mean= och standardavvikelse std= : gnoiseim = im + * randn(n,n); Medelvärdet kan beräknas i en 5 5-omgivning runt varje pixel. Enklast gör man detta genom att falta original-bilden med ett 5 5-filter fyllt med ettor och dividera med antalet ettor: kernelsize = 5; kernel = ones(kernelsize,kernelsize)/(kernelsize^2); gaver = conv2(gnoiseim, kernel, same ); Lägg till också detta i koden och visa resultatet i en bild till höger. Det ska se ut som i Fig. 2. Lyckades ni? 2

a) original image b) local mean 2 4 8 2 4 8 5 2 4 8 2 4 8 5 Figur 2: a) Testbild med pålagt gaussiskt brus. b) Lokalt medelvärde. 3.2 Mätvärden på bild med gaussiskt brus Uppskatta (stickprovs-)standardavvikelsen av originalbilden och visa den under originalbilden. Använd lika stora omgivningar som för beräkning av medelvärden. Vilka kommandon ger du? Nedan finns en tabell med värden i originalbilden. Enligt Matlab-koden ovan är medelvärdena, 7, 4, i de fyra områdena och standardavvikelsen på det pålagda gaussiska bruset. Komplettera tabellen nedan ungefärligt genom att klicka i bilderna. Område övre vänster övre höger nedre vänster nedre höger värde 7 4 ett uppskattat medelvärde standardavvikelse en uppskattad standardavvikelse förväntat CV-värde ett uppskattat CV-värde Fyll i raden förväntat CV-värde i tabellen ovan. 3

Uppskatta CV-värdet av originalbilden och visa den snett under originalbilden. Använd lika stora omgivningar som för beräkning av medelvärden. Komplettera tabellen ovan genom att klicka i bilderna. Hur lika bör de uppskattade värdena i de två tabellerna ovan vara de korrekta värdena? Välj mellan "exakt lika, ungefär lika och behöver inte vara lika. 3.3 Mätvärden på bild med poissonbrus Poissonbrus är ju som bekant viktigt i medicinska sammanhang. Nu ska vi göra om mätningarna i avsnitt 3.2 på poissonbrus istället för gaussiskt brus. Vilka värden ska gälla för standardavvikelsen i de de fyra områdena med medelvärde, 7, 4,? Kopiera filen NOISE.m till NOISEpoisson.m. Ersätt det gaussiska bruset med poissonbrus i NOISEpoisson.m. Den approximativa metoden för att skapa poissonbrus beskrevs på föreläsningen: Skapa först approximativt poissonbrus med hjälp av gaussiskt brus. Lokalisera därefter pixlar med negativa värden. I dessa pixlar: kasta tärningen igen tills ett positivt värde erhålls. Kodskelett för Poissonbrus finns i filen Poisson.m som ser ut så här: % Add Poisson noise 2 % ================== 3 pnoiseim = im + XXX; % Add Poisson noise to the image. Replace XXX! 4 [y,x] = find(pnoiseim<); % Locate positions of negative values 5 for k = :size(y,) % Redo the calculation for these positions 6 posval = ; 7 while (posval==) % Compute ONE new noise value. 8 val = im(y(k),x(k)) + YYY; % Replace YYY! 9 if (val>) posval = ; end end pnoiseim(y(k),x(k)) = val; 2 end De två översta bilderna ska se ut som i Fig. 3. Vad ersätter ni XXX med och vad ersätter ni YYY med? Beräkna nu CV-värdena på samma sätt som i avsnitt 3.2 och fyll i tabellen nedan. 4

Område övre vänster övre höger nedre vänster nedre höger värde 7 4 standardavvikelse förväntat CV-värde ett uppskattat CV-värde a) original image b) local mean 2 4 8 2 4 8 5 2 4 8 2 4 8 5 Figur 3: a) Testbild med pålagt poissonbrus. b) Lokalt medelvärde. 3.4 Krympning och etikettering Matlab-koden för programmet CVL.m visas nedan. Då det exekveras visas en binär bild med bokstäverna CVL till vänster och till höger visas resultatet av krympning (erosion) av två lager pixlar, se Fig. 4. load CVLim 2 3 SE = [ ; 4 ; 5 ; 6 ; 7 ]; 8 9 CVLerode = imerode(cvlim, SE); figure(), colormap(gray) 2 subplot(2,2,), imagesc(cvlim, [ ]) 3 axis image, colorbar 4 title( original image ) 5 subplot(2,2,2), imagesc(cvlerode, [ ]) 6 axis image, colorbar 7 title( eroded image ) I en senare lab om SPECT ska vi göra denna operation i 3D. Kommandot imerode fungerar tyvärr inte för 3D. Istället får man gå direkt på definitionen med faltning. Börja med att göra en faltning mellan CVLim och SE: 5

CVLexpand = convn(cvlim, SE, same ); Visa bilden i färgtabellen jet i kontrastområdet [ 25]. Använd också colorbar. Studera bilden och beskriv hur den ser ut. Ge sedan ett kommandot som innehåller ==. Se ledningen nedan. Resultatet ska bli exakt samma bild som vi fick för imerode. Ledning: En användning av == visas nedan. Antag att du har en matris i inimage som där du vill söka efter värdet 5. Exekvera: outimagelogical = (inimage == 5); outimage = double(outimagelogical); I outimage hamnar då en matris som har värdet där inimage hade värdet 5. Klassen (class) på outimagelogical är logical medan klassen på outimage är double. 2 4 8 original image 2 4 8.5 2 4 8 eroded image 2 4 8.5 Figur 4: a) Binär bild. b) Efter krympning (erosion) av två lager pixlar. Vi ska nu etikettera bilden. Använd nedanstående Matlabkommandon då de fungerar även för 3D. Resultatet visas i Fig. 5. temp = bwconncomp(cvlerode); CVLlabel = labelmatrix(temp); Bokstaven C (se Fig. 6a) fås enkelt ur den etiketterade bilden i Fig. 5, genom att utnyttja == igen. Ge kommandot! 6

2 4 8 labelled image 2 4 8 3 2 Figur 5: Etiketterad bild. 2 4 8 only C 2 4 8.5 2 4 8 noisy C 2 4 8 5 Figur 6: a) En binär bild av bokstaven C. b) En brusig bild av bokstaven C. 3.5 CV-beräkning innanför ett område Slutligen ska vi beräkna CV-värdet i en brusig boktav C, see Fig. 6b. Skapa Fig. 6b genom att kombinera Fig. 2a med Fig. 6a. Ge kommandot för att skapa innehållet i Fig. 6b nedan! noisyc = Använd nu din gamla kod för att beräkna medelvärde, standardavvikelse och CV på noisyc. Resultatet bör se ut som i Fig. 7. Varför blir resultatet så dåligt jämfört med när vi räknade ut medelvärde, standardavvikelse och CV på de fyra stora rutorna? Använd istället nedanstående kod för CV-beräkning. Den fungerar även på mindre objekt. Spara koden och kommandot som är svar på sista frågan. De ska senare användas för CV-beräkning på lungor på SPECT-labben! 7

kernelsize = 5; kernelnodiv = ones(kernelsize,kernelsize); Div = conv2(onlyc, kernelnodiv, same ); gavernew = conv2(noisyc, kernelnodiv, same )./Div; g2avernew = conv2(noisyc.^2, kernelnodiv, same )./Div; fact = Div./(Div-); gsdnew = real(sqrt((g2avernew-gavernew.^2).* fact)); CV = gsdnew./(gavernew+eps); a) original image b) local mean 2 4 8 2 5 2 4 8 2 5 2 4 8 c) standard deviation 2 5 2 4 8 d) CV, ugly 2.5 Figur 7: Misslyckat försök att beräkna medelvärde, standardavvikelse och CV innanför det brusiga C:et. Visa medelvärde (gavernew), standardavvikelse (gsdnew) och CV som bilder. Kontrollera att de liknar Fig. 8. Vad är det korrekta medelvärdet och standardavvikelsen och stämmer det med dina bilder? Till sist ska vi fixa till CV-bilden så att enbart CV-värden innanför C:et syns så som i Fig. 9. Ge kommandot! CVwithinC = 8

a) original image b) local mean 2 4 8 2 5 2 4 8 2 5 2 4 8 c) standard deviation 2 5 2 4 8 d) CV, nice 2.5 Figur 8: Lyckat försök att beräkna medelvärde, standardavvikelse och CV för det brusiga C:et. 2 4 8 CV within C 2.5 Figur 9: CV innanför det brusiga C:et. 9