9.1.1 - Hjernetumor

I denne øvelse skal I lave et script (dvs. ingen function header), opdelt i celler, som skal indlæse et dicom billede af en patient med en hjernesvulst eller tumor. Denne skal detekteres med en threshold funktion, som skal finde pixel-værdier, som er lysere end et reference område. Til slut beregnes størrelsen af det markerede areal som et mål for tumorens størrelse.

Instruktioner:

  • Hent Tumor.dcm
  • Lav en celle med flg. overskrift:
    • %% Indlæs dicom billede + info
    • Gem dicom billedet i variablen im - brug dicomread funktionen
    • Gem dicom info i variablen info - brug dicominfo funktionen
    • Beregn voxel størrelsen som produktet af info.PixelSpacing(1) og (2) samt info.SliceThickness
    • Lav im om til en double med værdierne 0 til 1
      • im = double(im)./max(max(double(im)));
  • Lav en celle med flg. overskrift:
    • %% Skær hjernen ud
    • Lav først en maske, som indeholder hjernen
      • Lav en nulfyldt matrix med samme størrelse som im - brug funktionen zeros og size(im)
      • Find index på de pixler, som har en gråtoneværdi på over 0.2 og gem dem som idx
      • Sæt bw(idx) til 1. Plot bw med imshow.
      • Brug en open funktion til at fjerne hjerneskallen:
        • Lav et string element kaldet sel og sæt det til en skive med diameteren 7:
          • sel = strel('disk',7);
        • Udfør en open operation på bw med imopen funktionen:
          • hjernemaske = imopen(bw,sel);
        • Plot hjernemasken med imshow - iagttag forskellen på bw og hjernemasken
      • Sæt hjerne til at indholde element produktet (.*) af im og hjernemaske
  • Lav en celle med flg. overskrift:
    • %% Marker raskt område med et ROI og udregn middel + sd i dette område
    • Vis hjerne med imshow
    • Dan en roi, kaldet normalt, med funktionen impoly
      • Klik punkt for punkt. Afslut ved dobbeltklikke.
    • Lav roi'en om til en maske med funktionen createMask og gem den i variablen normalmaske
    • Sæt idx til at indeholde de pixels i normalmaske, som overstiger nul:
      • idx = find(normalmaske);
    • Beregn middelværdi (m) og standard deviation (sd) med hhv. mean og std funktionerne på im(idx).
  • Lav en celle med flg. overskrift:
    • %% Find pixelværdier over m + 4*sd
    • Sæt idx til at indeholde pixelværdier i hjerne variablen med en pixelværdi på over m+4*sd
    • Sæt variblen tumor til at være lig im
    • Sæt tumor(idx) til at være 1.
    • Vis tumor med imshow
    • Beregn tumor størrelsen ved at gange længden af idx variablen med VoxelSize. Dette giver størrelsen i kubikmillimeter - den konverteres til det mere anvendte ml ved at dividere med 1000.
    • Sæt titlen på billedet til Tumorstørrelse = xx.xx ml:
      • title(sprintf('Tumorsize = %2.2f ml',TumorSize));
  • Gem scriptet som Tumor.m

Skærmbillede 2012-05-07 kl. 23.54.16 Skærmbillede 2012-05-07 kl. 23.53.44 

Created by Samuel Thrysøe © 2012