-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdemo_EAPT_video_Hall.m
76 lines (67 loc) · 1.55 KB
/
demo_EAPT_video_Hall.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
68
69
70
71
72
73
74
75
76
function demo_EAPT_video_Hall(dataname)
switch nargin
case 1
pic_name = strcat('./data/', dataname);
case 0
dataname = 'Hall.mat';
pic_name = strcat('./data/', dataname);
end
addpath('tensor_toolbox_2.6')
addpath('toolbox')
load(pic_name, 'x');
X = double(x) / 255;
[~, n2, n3] = size(X);
Xn = permute(X, [3, 1, 2]);
UU = dctmtx(n2);
maxP = max(abs(X(:)));
para.tol = 1e-4;
para.gamma = 0.7;
para.max_iter = 100;
para.X = Xn;
para.mu = 10;
tic
r = 10;
r_list = r * ones(n2, 1);
for i=1:n2
if i > 1
r_list(i) = 2;
end
if i > 1
r_list(i) = 1;
end
if i > 70
r_list(i) = 1;
end
end
[Xhat, E] = EAPT_mr_video(UU, Xn, r_list, r, para);
cost_time = toc;
fprintf('cost time is %.2f\n', cost_time);
Xhat = permute(Xhat, [2, 3, 1]);
E = permute(E, [2, 3, 1]);
Xhat = max(Xhat,0);
Xhat = min(Xhat,maxP);
FrameRate = 10;
v = VideoWriter(['./res_' dataname]);
v.FrameRate = FrameRate;
open(v);
for i = 1 : n3
writeVideo(v, Xhat(:,:,i));
end
close(v);
E(E<0) = 0;
E(E>1) = 1;
v = VideoWriter(['./foreground_' dataname]);
v.FrameRate = FrameRate;
open(v);
for i = 1 : n3
writeVideo(v, E(:,:,i));
end
close(v);
v = VideoWriter(['./orig_' dataname]);
v.FrameRate = FrameRate;
open(v);
for i = 1 : n3
writeVideo(v, X(:,:,i));
end
close(v);
end