Medicinska Bilder, TSBB3 Lab3: Mätvärden på Medicinska Bilder Maria Magnusson, 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. Förberedelser inför laborationen Läs igenom hela laborationshandledningen noggrant. Valda delar av föreläsning 6 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 Laborationen kommer att ske i MATLAB 7.. Börja med att logga in och öppna ett terminal-fönster från bakgrunden. Ge därefter följande kommandon. % module rm matlab % module add matlab/7. % matlab > initcourse( TSBB3 );
Kommandot initcourse( TSBB3 ) sätter upp korrekta path :ar i MAT- LAB så att önskade filer hittas. De program som vi ska använda ligger på /site/edu/bb/medicinskabilder/. Kopiera filen /site/edu/bb/medicinskabilder/noise.m till din hemkatalog och kör programmet. En fyrdelad original-bild med gaussiskt brus visas till vänster och till höger visas resultatet av beräkning av lokala medelvärden på denna bild, se Fig.. Matlab-koden för detta program är: % Image and kernel size % ===================== 3 N = 8; 4 kernelsize = 5; 5 6 % Compose test image 7 % ================== 8 im = zeros(n,n); 9 im(:n/,:n/) = ; im(n/+:n,:n/) = ; im(:n/,n/+:n) = 7; im(n/+:n,n/+:n) = ; 3 4 % Add Gaussian noise with mean= and std= 5 % ========================================= 6 gnoise = * randn(n,n); 7 gnoiseim = im + gnoise; 8 9 % Compute measurements % ==================== kernel = ones(kernelsize,kernelsize); gaver = conv(gnoiseim, kernel, same )/(kernelsize^); 3 4 figure() 5 colormap(jet) 6 subplot(,,), imagesc(gnoiseim, [ ]) 7 axis image, colorbar 8 title( a) original image ) 9 subplot(,,), imagesc(gaver, [ ]) 3 axis image, colorbar 3 title( b) local mean ) 3. Mätvärden på bild med gaussiskt brus På hur stora omgivningar beräknar vi våra lokala medelvärden i detta fall? Uppskatta (stickprovs-)standardavvikelsen av originalbilden och visa den under originalbilden. Använd lika stora omgivningar som för beräkning av medelvärden. Nedan finns en tabell med värden i originalbilden. Enligt
a) original image b) local mean Figur : a) Testbild med pålagt gaussiskt brus. b) Lokalt medelvärde. Matlab-koden ovan är medelvärdena, 7,, 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 ett uppskattat medelvärde standardavvikelse en uppskattad standardavvikelse Hur lika bör de uppskattade värden vara de korrekta värdena? Välj mellan "exakt lika, ungefär lika och behöver inte vara lika. Fyll raden förväntat i tabellen nedan. Område övre vänster övre höger nedre vänster nedre höger värde 7 standardavvikelse förväntat ett uppskattat Uppskatta t 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. 3
Hur lika bör de uppskattade n 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. 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,,? Skapa nu en bild med Poissonbrus. Använd den approximativa metoden som 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 /site/edu/bb/medicinskabilder/poisson.m som ser ut så här: % pnoiseim should contain data added with approximate Poisson noise. 3 [y,x] = find(pnoiseim<); % Locate positions of negative values 4 for k = :size(y,) % Redo the calculation for these positions 5 posval = ; 6 while (posval==) 7 val = XXX; % Compute one new value. Replace XXX! 8 if (val>) 9 posval = ; end end pnoiseim(y(k),x(k)) = val; 3 end Resultatet ska se ut som i Fig.. 4
a) original image b) local mean Figur : a) Testbild med pålagt poissonbrus. b) Lokalt medelvärde. Beräkna nu na på samma sätt som i avsnitt 3. och fyll i tabellen nedan. Område övre vänster övre höger nedre vänster nedre höger värde 7 standardavvikelse förväntat ett uppskattat 3.4 Krympning och etikettering Kopiera filen /site/edu/bb/medicinskabilder/cvl.m till din hemkatalog och kör programmet. En binär bild med bokstäverna CVL visas till vänster och till höger visas resultatet av krympning (erosion) av två lager pixlar, se Fig. 3. original image eroded image.8.6.4.8.6.4.. Figur 3: a) Binär bild. b) Efter krympning (erosion) av två lager pixlar. 5
Matlab-koden för detta program är: load CVLim 3 SE = [ ; 4 ; 5 ; 6 ; 7 ]; 8 9 CVLerode = imerode(cvlim, SE); figure() colormap(gray) 3 subplot(,,), imagesc(cvlim, [ ]) 4 axis image, colorbar 5 title( original image ) 6 subplot(,,), imagesc(cvlerode, [ ]) 7 axis image, colorbar 8 title( eroded image ) I en senare lab ska vi göra denna operation i 3D. Kommandot imerode fungerar inte för 3D. I stället kan man gå direkt på definitionen med faltning. Använd då kommandot convn och ==. (För fullständighet skull vill vi nämna att för osymmetriska strukturelement ska faltning ersättas med korrelation.) Inbild och utbild ska vara lika stora så använd parametern same. Testa detta så att du får exakt samma bild som för imerode. Vad ger du för kommando? labelled image Figur 4: Etiketterad bild. 3 6
Vi ska nu etikettera bilden. Använd nedanstående Matlabkommandon då de fungerar även för 3D. Resultatet visas i Fig. 4. XXX = bwconncomp(cvlerode); CVLlabel = labelmatrix(xxx); Slutligen ska vi beräkna t inom boktaven C i den brusiga fyrdelade bilden vi hade från början. Området C fås enkelt ur den etiketterade bilden i Fig. 4. Hur då? Sedan kan vi beräkna t nästan på samma sätt som i avsnitt 3. och avsnitt 3.3. Kom dock ihåg att antalet pixlar som används för att för att uppskatta t varierar med positionen. Kontrollera att din bild liknar Fig. 5 och visa sedan för läraren. Blev hon/han nöjd? CV in C area.8.6.4. Figur 5: CV-beräkning innanför bokstaven C. 3.5 Brus på verkliga röntgenbilder Jag hoppas kunna göra en uppgift på brus och verkliga röntgenbilder tills på måndag... 7