File size: 1,322 Bytes
c4bb28a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
%Render a fitting result to show the visual quality of a fitting of the MM

%% 1. Load the model and the fitting result file
[model msz] = load_model();
load ../07_fittings/pie_lights_fres.mat

%% 2. Get the coefficients
i = find( id == 4000 & kind(1,:) == 22 & kind(2,:) == 05 );   % Find individual 4000 shot by camera 5 and lighted with flash 18
alpha = reshape(feat_mat( 100:495, i ), 99, 4);
beta  = reshape(feat_mat( 595:end, i ), 99, 4);

%% 3. Reconstruct the 3D shape add texture from the coefficients
%    Note that there are 4 sets of coefficients for the shape and the texture,
%    one for each segment of the face (nose, eyes, mouth and rest).
shape  = coef2object( alpha, model.shapeMU, model.shapePC, model.shapeEV, model.segMM, model.segMB );
tex    = coef2object( beta,  model.texMU,   model.texPC,   model.texEV,   model.segMM, model.segMB );

%% 4. OPTIONAL: Load the input image used for the fitting
%    The model image will be rendered on top of this image used as background.
in_img_fn = sprintf('%02d/%05d_%02d.ppm', kind(1,i), id(i), kind(2,i));

% 5. And finally... render the image
h=figure(1);
rp     = defrp;
rp.phi = 0.5;
rp.dir_light.dir = [0;1;1];
rp.dir_light.intens = 0.6*ones(3,1);
rp.sbufsize=2000;

display_face(shape,tex,model.tl,rp);
set(h, 'name', ['Fitting result: ' in_img_fn]);