Hi again!
Sorry if I am doing so many questions, or if they are simple or easy. Calling this function and the following is the last step to end my final degree.
Now I call another function, but it says an input parameter is referenced and not found, but it is not the case:
Function Outliers_step2.m:
%%function [outlierst2,regmask_or]=outlier_step2(regdata,refframe,mask,outlierst1)
function [outlierst2,regmask,outlier,smoothmask]=outlier_step2(regdata,refframe,mask,outlierst1)
%Input
%regdata: registered data set, refframe: reference frame number, mask: used
for a=1:5
load_untouch_nii(sprintf(‘/usr/local/bin/Slicer/elastix_/nonrigid_%d/result.0.nii’,a));regdata(:,:,:,a)=ans.img;
end
refframe= 31;
%mask to calculate the average signal, outlierst1: at the end, to exclude the ones
load_untouch_nii(sprintf(‘012115/uterus_B3.nii’));mask=ans.img;
outlierst1 = load(sprintf(‘/usr/local/bin/Slicer/outlierst1_ut.mat’))
%rejected due to over deformation.
%Output
%outlierst2 are the volumes after outlier rejection
%regmask: updated mask showing corrected region with 1 and outlier voxels
%with 2,outlier: number of outlier voxels for each time frame,
%smoothmask:original mask
[x,y,z,t]=size(regdata);
%smoothmask=zeros(x,y,z);
%smask(:,:,:)=smooth3(mask(:,:,:),‘box’,3);
%for b=1:x for c=1:y for d=1:z if smask(b,c,d)>0.5 smoothmask(b,c,d)=1; else smoothmask(b,c,d)=0; end,end,end,end
smoothmask=mask(:,:,:);
regmask=zeros(x,y,z,t);
regmasked=zeros(x,y,z,t);
for k=1:t
regmask(:,:,:,k)=smoothmask(:,:,:);
regmasked(:,:,:,k)=double(smoothmask(:,:,:)).*double(regdata(:,:,:,k));
end
Mref=regmasked(:,:,:,refframe);
%med=sort(nonzeros(Mref(:)));
%Qmid=floor(nnz(med)/2)+1;
%Qmidv=med(Qmid);
mb=mean(nonzeros(Mref(:)));
sb=std(nonzeros(Mref(:)));
mdummy=mb;
%mdummy=Qmidv;
sdummy=sb;
outlier=zeros(1,t);
regmaskedn=regmasked;
for k=refframe:(t-1)
for a=1:x
for b=1:y
for c=1:z
if abs(regmaskedn(a,b,c,k)-regmaskedn(a,b,c,k+1))>mdummy
regmask(a,b,c,k+1)=2;
regmaskedn(a,b,c,k+1)=regmaskedn(a,b,c,k);
outlier(k+1)=outlier(k+1)+1;
end
end
end
end
for a=2:(x-1)
for b=2:(y-1)
for c=2:(z-1)
if regmask(a-1,b+1,c,k+1)==2 && regmask(a-1,b,c,k+1)==2 && regmask(a-1,b-1,c,k+1)==2 && ...
regmask(a,b+1,c,k+1)==2 && regmask(a,b,c,k+1)==1 && regmask(a,b-1,c,k+1)==2 && ...
regmask(a+1,b+1,c,k+1)==2 && regmask(a+1,b,c,k+1)==2 && regmask(a+1,b-1,c,k+1)==2
% regmask(a-1,b+1,c-1,k+1)==2 && regmask(a-1,b,c-1,k+1)==2 && regmask(a-1,b-1,c-1,k+1)==2 && …
% regmask(a,b+1,c-1,k+1)==2 && regmask(a,b,c-1,k+1)==2 && regmask(a,b-1,c-1,k+1)==2 && …
% regmask(a+1,b+1,c-1,k+1)==2 && regmask(a+1,b,c-1,k+1)==2 && regmask(a+1,b-1,c-1,k+1)==2 && …
% regmask(a-1,b+1,c+1,k+1)==2 && regmask(a-1,b,c+1,k+1)==2 && regmask(a-1,b-1,c+1,k+1)==2 && …
% regmask(a,b+1,c+1,k+1)==2 && regmask(a,b,c+1,k+1)==2 && regmask(a,b-1,c+1,k+1)==2 && …
% regmask(a+1,b+1,c+1,k+1)==2 && regmask(a+1,b,c+1,k+1)==2 && regmask(a+1,b-1,c+1,k+1)==2
regmask(a,b,c,k+1)=2;
regmaskedn(a,b,c,k+1)=regmaskedn(a,b,c,k);
outlier(k+1)=outlier(k+1)+1;
end
end
end
end
for a=2:(x-1)
for b=2:(y-1)
for c=2:(z-1)
if regmask(a-1,b+1,c,k+1)==1 && regmask(a-1,b,c,k+1)==1 && regmask(a-1,b-1,c,k+1)==1 && ...
regmask(a,b+1,c,k+1)==1 && regmask(a,b,c,k+1)==2 && regmask(a,b-1,c,k+1)==1 && ...
regmask(a+1,b+1,c,k+1)==1 && regmask(a+1,b,c,k+1)==1 && regmask(a+1,b-1,c,k+1)==1
% regmask(a-1,b+1,c-1,k+1)==1 && regmask(a-1,b,c-1,k+1)==1 && regmask(a-1,b-1,c-1,k+1)==1 && …
% regmask(a,b+1,c-1,k+1)==1 && regmask(a,b,c-1,k+1)==1 && regmask(a,b-1,c-1,k+1)==1 && …
% regmask(a+1,b+1,c-1,k+1)==1 && regmask(a+1,b,c-1,k+1)==1 && regmask(a+1,b-1,c-1,k+1)==1 && …
% regmask(a-1,b+1,c+1,k+1)==1 && regmask(a-1,b,c+1,k+1)==1 && regmask(a-1,b-1,c+1,k+1)==1 && …
% regmask(a,b+1,c+1,k+1)==1 && regmask(a,b,c+1,k+1)==1 && regmask(a,b-1,c+1,k+1)==1 && …
% regmask(a+1,b+1,c+1,k+1)==1 && regmask(a+1,b,c+1,k+1)==1 && regmask(a+1,b-1,c+1,k+1)==1
regmask(a,b,c,k+1)=1;
outlier(k+1)=outlier(k+1)-1;
end
end
end
end
M=regmaskedn(:,:,:,k+1);
%med=sort(nonzeros(M(:)));
%Qmid=floor(nnz(med)/2)+1;
%Qmidv=med(Qmid);
%mdummy=Qmidv;
mdummy=mean(nonzeros(M(:)));
sdummy=std(nonzeros(M(:)));
end
for k=refframe:-1:2
for a=1:x
for b=1:y
for c=1:z
if abs(regmaskedn(a,b,c,k)-regmaskedn(a,b,c,k-1))>mdummy
regmask(a,b,c,k-1)=2;
regmaskedn(a,b,c,k-1)=regmaskedn(a,b,c,k);
outlier(k-1)=outlier(k-1)+1;
end
end
end
end
for a=2:(x-1)
for b=2:(y-1)
for c=2:(z-1)
if regmask(a-1,b+1,c,k-1)==2 && regmask(a-1,b,c,k-1)==2 && regmask(a-1,b-1,c,k-1)==2 && ...
regmask(a,b+1,c,k-1)==2 && regmask(a,b,c,k-1)==1 && regmask(a,b-1,c,k-1)==2 && ...
regmask(a+1,b+1,c,k-1)==2 && regmask(a+1,b,c,k-1)==2 && regmask(a+1,b-1,c,k-1)==2
% regmask(a-1,b+1,c-1,k-1)==2 && regmask(a-1,b,c-1,k-1)==2 && regmask(a-1,b-1,c-1,k-1)==2 && …
% regmask(a,b+1,c-1,k-1)==2 && regmask(a,b,c-1,k-1)==2 && regmask(a,b-1,c-1,k-1)==2 && …
% regmask(a+1,b+1,c-1,k-1)==2 && regmask(a+1,b,c-1,k-1)==2 && regmask(a+1,b-1,c-1,k-1)==2 && …
% regmask(a-1,b+1,c+1,k-1)==2 && regmask(a-1,b,c+1,k-1)==2 && regmask(a-1,b-1,c+1,k-1)==2 && …
% regmask(a,b+1,c+1,k-1)==2 && regmask(a,b,c+1,k-1)==2 && regmask(a,b-1,c+1,k-1)==2 && …
% regmask(a+1,b+1,c+1,k-1)==2 && regmask(a+1,b,c+1,k-1)==2 && regmask(a+1,b-1,c+1,k-1)==2
regmask(a,b,c,k-1)=2;
regmaskedn(a,b,c,k-1)=regmaskedn(a,b,c,k);
outlier(k-1)=outlier(k-1)+1;
end
end
end
end
for a=2:(x-1)
for b=2:(y-1)
for c=2:(z-1)
if regmask(a-1,b+1,c,k-1)==1 && regmask(a-1,b,c,k-1)==1 && regmask(a-1,b-1,c,k-1)==1 && …
regmask(a,b+1,c,k-1)==1 && regmask(a,b,c,k-1)==2 && regmask(a,b-1,c,k-1)==1 && …
regmask(a+1,b+1,c,k-1)==1 && regmask(a+1,b,c,k-1)==1 && regmask(a+1,b-1,c,k-1)==1
% regmask(a-1,b+1,c-1,k-1)==1 && regmask(a-1,b,c-1,k-1)==1 && regmask(a-1,b-1,c-1,k-1)==1 && …
% regmask(a,b+1,c-1,k-1)==1 && regmask(a,b,c-1,k-1)==1 && regmask(a,b-1,c-1,k-1)==1 && …
% regmask(a+1,b+1,c-1,k-1)==1 && regmask(a+1,b,c-1,k-1)==1 && regmask(a+1,b-1,c-1,k-1)==1 && …
% regmask(a-1,b+1,c+1,k-1)==1 && regmask(a-1,b,c+1,k-1)==1 && regmask(a-1,b-1,c+1,k-1)==1 && …
% regmask(a,b+1,c+1,k-1)==1 && regmask(a,b,c+1,k-1)==1 && regmask(a,b-1,c+1,k-1)==1 && …
% regmask(a+1,b+1,c+1,k-1)==1 && regmask(a+1,b,c+1,k-1)==1 && regmask(a+1,b-1,c+1,k-1)==1
regmask(a,b,c,k-1)=1;
outlier(k-1)=outlier(k-1)-1;
end
end
end
end
M=regmaskedn(:,:,:,k-1);
% med=sort(nonzeros(M(:)));
% Qmid=floor(nnz(med)/2)+1;
% Qmidv=med(Qmid);
% mdummy=Qmidv;
mdummy=mean(nonzeros(M(:)));
sdummy=std(nonzeros(M(:)));
end
tv=nnz(smoothmask);
orvols=find(outlier(outlierst1)<tv*5/100); %threshold %5 of voxels
outlierst2=outlierst1(orvols);
for a=1:t for b=1:x for c=1:y for d=1:z if regmask(b,c,d,a)==0 || regmask(b,c,d,a)==2 regmask_or(b,c,d,a)=0; else regmask_or(b,c,d,a)=1;end,end,end,end,end
% for a=1:t regmask_ors(:,:,:,a)=smooth3(regmask_or(:,:,:,a),‘box’,3);end
% for a=1:t for b=1:x for c=1:y for d=1:z if regmask_ors(b,c,d,a)>0.5 regmask_orsc(b,c,d,a)=1; else regmask_orsc(b,c,d,a)=0; end,end,end,end,end
And the xml from matlabbridge for that module is the following:
Do you know waht could be happening?
Thank you so much,
Alba