-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathe03_x_qinCNR.m
67 lines (60 loc) · 1.31 KB
/
e03_x_qinCNR.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
% Calculate the SNR and CNR in the QIN Breast datatset
% Estimated run time: ~19 s
clearvars
addpath('./mfiles')
dirLocation = DefaultFolders();
dataDir = fullfile(dirLocation.qin,'Stripped');
matFiles = dir([dataDir '/*.mat']);
%%
tic
for q=1:length(matFiles)
curName = matFiles(q).name
%% Load data
inFile = fullfile(dataDir, curName);
load(inFile);
[nX nY nZ nT] = size(dynData);
S = reshape(dynData,[nX*nY*nZ nT]);
S(mask<1,:)=[];
signal = S(:,1);
sigma = std(S(:,2)-S(:,1));
tmpSNR = sqrt(2)*signal./sigma;
tmpSNR(tmpSNR<0) = [];
tmpSNR(tmpSNR>500) = [];
SNR{q} = tmpSNR;
%%
Ct = Signal2Conc4QIN(S',dataInfo.R10,dataInfo.TR,dataInfo.Alpha,dataInfo.r1p);
ct0 = max(Ct);
sigma = std(Ct(2,:)-Ct(1,:));
tmpCNR = sqrt(2)*ct0./sigma;
tmpCNR(tmpCNR<0) = [];
tmpCNR(tmpCNR>500) = [];
CNR{q} = tmpCNR';
end
%%
toc
%%
allSNR = 0;
allCNR = 0;
for q=1:length(SNR)
allSNR = [allSNR; SNR{q}];
mSNR(q) = nanmean(SNR{q});
stdSNR(q) = nanstd(SNR{q});
allCNR = [allCNR; CNR{q}];
mCNR(q) = nanmean(CNR{q});
stdCNR(q) = nanstd(CNR{q});
end
allSNR(1)=[];
allCNR(1)=[];
%%
figure
errorbar(mSNR,stdSNR);
title('mean SNR')
figure
errorbar(mCNR,stdSNR)
title('mean CNR')
figure
boxplot(allSNR)
title('all SNR')
figure
boxplot(allCNR)
title('all CNR')