Browse Source

Adding matlab scripts to handle nrrd segmentations

Andrej Studen@Labkey-KNM 1 year ago
parent
commit
85cf688137
2 changed files with 11 additions and 7 deletions
  1. 7 5
      matlab/analyzePixelIVF.m
  2. 4 2
      matlab/extractPixelsFromNrrd.m

+ 7 - 5
matlab/analyzePixelIVF.m

@@ -3,17 +3,19 @@ rng shuffle
 
 %add nrrd processing capability
 addpath('nrrd_read_write_rensonnet')
-
+disp('Test');
 [cax,cm]=loadTime(path,patientID);
 
 %segmFile=fullfile(path,patientID,sprintf('%s_Segmentation.txt',patientID));
 %v0=loadPixels(segm,patientID);
 [filepath,name,suffix]=fileparts(segmFile);
-if suffix=='nrrd'
+if contains(suffix,'nrrd')
     v0=extractPixelsFromNrrd(segmFile);
 end
-if suffix=='txt'
+if contains(suffix,'txt')
     v0=dlmread(segmFile);
+    n=size(v0,1);
+    v0=[(1:n)' v0];
 end
 
 data=loadSPECTdata(path,patientID,cm);
@@ -27,6 +29,6 @@ fcenters=extractCenters(data,v0,sigma2,na);
 
 %[globalPar, cPars, xa, U]=fitFromClusters(path,cax, cm, data, nclass,realizationId);
 
-disp('DynamicPixelAnalysis done');
-
+disp('DynamicPixelAnalysis done\n');
+quit;
 %writeData

+ 4 - 2
matlab/extractPixelsFromNrrd.m

@@ -3,7 +3,7 @@ function v0=extractPixelsFromNrrd(file)
 %each point contained in segmentation corresponds to 
 %a row in output table v0
     
-    addpath('nrrd_read_write_rensonnet')
+    addpath('nrrd_read_write_rensonnet');
     hInfo=nhdr_nrrd_read(file,true);
     v0=zeros(0,4);
     for idx=1:10
@@ -15,4 +15,6 @@ function v0=extractPixelsFromNrrd(file)
         [a,b,c]=ind2sub(size(hInfo.data),f);
         v0=[v0; [idx*ones(n,1) a b c] ];
         
-    end
+    end
+   %switch to zero based matrix addressing
+    v0(:,2:4)=v0(:,2:4)-1;