-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathComputeStat_web.m
More file actions
81 lines (57 loc) · 2.28 KB
/
Copy pathComputeStat_web.m
File metadata and controls
81 lines (57 loc) · 2.28 KB
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
68
69
70
71
72
73
74
75
76
77
78
clear all
close all
format compact
clc
% script to calculate the statistics for each scan given this will currently only run if distances have been measured
% for all included scans (UsedSets)
[dataPath,resultsPath]=getPaths();
MaxDist=20; %outlier thresshold of 20 mm
time=clock;time(4:5), drawnow
method_string='Tola';% choose method 'Furu','Camp' or 'Tola';
light_string='l3'; %'l7'; l3 is the setting with all lights on, l7 is randomly sampled between the 7 settings (index 0-6)
representation_string='Points'; %mvs representation 'Points' or 'Surfaces'
switch representation_string
case 'Points'
eval_string='_Eval_IJCV_'; %results naming
settings_string='';
case 'Surfaces'
eval_string='_SurfEval_Trim_IJCV_'; %results naming
settings_string='_surf_11_trim_8'; %poisson settings for surface input
end
% get sets used in evaluation
if(strcmp(light_string,'l7'))
UsedSets=GetUsedLightSets;
eval_string=[eval_string 'l7_'];
else
UsedSets=GetUsedSets;
end
nStat=length(UsedSets);
BaseStat.nStl=zeros(1,nStat);
BaseStat.nData=zeros(1,nStat);
BaseStat.MeanStl=zeros(1,nStat);
BaseStat.MeanData=zeros(1,nStat);
BaseStat.VarStl=zeros(1,nStat);
BaseStat.VarData=zeros(1,nStat);
BaseStat.MedStl=zeros(1,nStat);
BaseStat.MedData=zeros(1,nStat);
for cStat=1:length(UsedSets), %Data set number
currentSet=UsedSets(cStat);
%input results name
EvalName=[resultsPath method_string eval_string num2str(currentSet) '.mat']
load(EvalName)
Dstl=BaseEval.Dstl(BaseEval.StlAbovePlane); %use only points that are above the plane
Dstl=Dstl(Dstl<MaxDist); % discard outliers
Ddata=BaseEval.Ddata(BaseEval.DataInMask); %use only points that within mask
Ddata=Ddata(Ddata<MaxDist); % discard outliers
BaseStat.nStl(cStat)=length(Dstl);
BaseStat.nData(cStat)=length(Ddata);
BaseStat.MeanStl(cStat)=mean(Dstl);
BaseStat.MeanData(cStat)=mean(Ddata);
BaseStat.VarStl(cStat)=var(Dstl);
BaseStat.VarData(cStat)=var(Ddata);
BaseStat.MedStl(cStat)=median(Dstl);
BaseStat.MedData(cStat)=median(Ddata);
time=clock;[time(4:5) currentSet cStat], drawnow
end
totalStatName=[resultsPath 'TotalStat_' method_string eval_string '.mat']
save(totalStatName,'BaseStat','time','MaxDist');