Skip to content
Snippets Groups Projects
Commit 5aee3ca9 authored by Mark Winter's avatar Mark Winter
Browse files

Move making code

parent b2edec45
Branches
No related tags found
No related merge requests found
function bCompleted = awaitRenderDone(timeout, uiserver_info)
bCompleted=false;
elapsed = 0;
chk_timer = tic();
while ( ~bCompleted && (timeout <= 0 || elapsed <= timeout) )
bCompleted = webread([uiserver_info.host '/drawComplete'], uiserver_info.opts);
if ( bCompleted )
return;
end
pause(0.5);
elapsed = toc(chk_timer);
end
end
function render_rot_movie(movieName, lAngle, rAngle)
%% Load initial view_params
web_opts = weboptions('Timeout',60);
uiserver_info = struct('host','http://localhost:4444', ...
'opts',web_opts);
view_params = pull_params(uiserver_info);
%% Setup movie framce-cap dir
dataDir = 'Data';
frameDir = fullfile(dataDir, [movieName '_frames']);
if ( ~exist(frameDir, 'dir') )
mkdir(frameDir);
end
%% Setup rotation matrices
nsteps = 45;
stepAngle = 2*(rAngle - lAngle) / nsteps;
Rs = [cosd(stepAngle) 0 sind(stepAngle) 0;
0 1 0 0;
-sind(stepAngle) 0 cosd(stepAngle) 0
0 0 0 1];
Rinit = [cosd(lAngle) 0 sind(lAngle) 0;
0 1 0 0;
-sind(lAngle) 0 cosd(lAngle) 0
0 0 0 1];
W = reshape(view_params.worldRot, 4,4);
Wi = Rinit * W;
%% Prep rendering
Movie.movie_enable_uitoolbars(false, uiserver_info);
push_params(Wi, view_params, uiserver_info);
pause(0.5);
%% Try to wait for last initial-render to complete
if ( ~Movie.awaitRenderDone(300, uiserver_info) )
error('Full rendering timed-out after 5 minutes!');
end
pause(0.5);
for i=1:nsteps
if ( i > 1 )
Wi = Rs * Wi;
end
frameFile = fullfile(frameDir, [movieName '_t' num2str(i, '%04d') '.png']);
push_params(Wi, view_params, uiserver_info);
%% Try to wait for last initial-render to complete
if ( ~Movie.awaitRenderDone(300, uiserver_info) )
error('Full rendering timed-out after 5 minutes!');
end
pause(0.5);
%% Write frame to directory
imFrame = webread([uiserver_info.host '/screenCap'], web_opts);
frameSize = [size(imFrame,1) size(imFrame,2)];
framePad = mod(frameSize,2);
imPad = zeros([frameSize + framePad, 3], 'like',imFrame);
imPad(1:frameSize(1),1:frameSize(2),:) = imFrame;
imwrite(imPad, frameFile, 'png');
end
for i=1:nsteps
Wi = (Rs') * Wi;
frameFile = fullfile(frameDir, [movieName '_t' num2str(i+nsteps, '%04d') '.png']);
push_params(Wi, view_params, uiserver_info);
%% Try to wait for last initial-render to complete
if ( ~Movie.awaitRenderDone(300, uiserver_info) )
error('Full rendering timed-out after 5 minutes!');
end
pause(0.5);
%% Write frame to directory
imFrame = webread([uiserver_info.host '/screenCap'], web_opts);
frameSize = [size(imFrame,1) size(imFrame,2)];
framePad = mod(frameSize,2);
imPad = zeros([frameSize + framePad, 3], 'like',imFrame);
imPad(1:frameSize(1),1:frameSize(2),:) = imFrame;
imwrite(imPad, frameFile, 'png');
end
fps = 30;
resx = 1920;
inpattern = fullfile(frameDir,[movieName '_t%04d.png']);
movieFile = fullfile('update_movies', [movieName '.mp4']);
ffmpegStr = sprintf('ffmpeg -y -i %s -vf scale=%d:-1 -preset veryslow -crf 28 -pix_fmt yuv420p -r %d %s', inpattern, resx, fps, movieFile);
status = system(ffmpegStr);
end
function push_params(W, view_params, uiserver_info)
uiserver_info.opts.MediaType = 'application/json';
view_params.worldRot = W(:);
webwrite([uiserver_info.host '/view'], view_params, uiserver_info.opts);
end
function view_params = pull_params(uiserver_info)
uiserver_info.opts.MediaType = 'application/json';
view_params = webread([uiserver_info.host '/view'], uiserver_info.opts);
end
......@@ -21,7 +21,7 @@ function rendermovie(movieName, startFrame, endFrame)
pause(0.5);
%% Try to wait for last initial-render to complete
if ( ~awaitRenderDone(300, uiserver_info) )
if ( ~Movie.awaitRenderDone(300, uiserver_info) )
error('Full rendering timed-out after 5 minutes!');
end
......@@ -83,7 +83,7 @@ function rendermovie(movieName, startFrame, endFrame)
webwrite([uiserver_info.host '/time/' num2str(time)] ,'');
%% Wait for complete volume render
if ( ~awaitRenderDone(300, uiserver_info) )
if ( ~Movie.awaitRenderDone(300, uiserver_info) )
error('Full rendering timed-out after 5 minutes!');
end
......@@ -120,19 +120,3 @@ function rendermovie(movieName, startFrame, endFrame)
% rmdir(frameDir,'s');
% end
end
function bCompleted = awaitRenderDone(timeout, uiserver_info)
bCompleted=false;
elapsed = 0;
chk_timer = tic();
while ( ~bCompleted && (timeout <= 0 || elapsed <= timeout) )
bCompleted = webread([uiserver_info.host '/drawComplete'], uiserver_info.opts);
if ( bCompleted )
return;
end
pause(0.5);
elapsed = toc(chk_timer);
end
end
......@@ -8,7 +8,7 @@ exp_types = vertcat(exp_types{:});
tsmp = arrayfun(@(x)(median(diff(x.tsmp))), ecto_size_stats);
bExcludeMotion = (tsmp >= 7.0);
bExcludeMotion = ((tsmp >= 7.0) | (tsmp <= 5.0));
exclMotSrt = repmat({'A'}, length(bExcludeMotion),1);
exclMotSrt(bExcludeMotion) = {'B'};
......@@ -21,7 +21,7 @@ chkrows = vertcat(chkrows{:});
[~,srtidx] = sortrows(chkrows);
fid = fopen('sup_table_info.csv','wt');
fprintf(fid, 'Dataset,Treatment,dt (sec),First Frame Vesicles (Mesoderm),Motion Statistics,First Frame Vesicles (Ectoderm),Total Vesicles (Mesoderm),Total Vesicles (Ectoderm)\n');
fprintf(fid, 'Dataset,Treatment,dt (sec),Motion Statistics,First Frame Vesicles (Mesoderm),First Frame Vesicles (Ectoderm),Total Vesicles (Mesoderm),Total Vesicles (Ectoderm)\n');
for i=1:length(srtidx)
idx = srtidx(i);
......
......
%% Set the current movie name
movieName = '2016-06-29_tl1p0_bb94';
%% Save out movie-making parameters
save_movie_params(movieName);
%% Set the parameters (and make sure everything looks good)
set_movie_params(movieName);
%% Start the movie render (usually up to 200 frames)
rendermovie(movieName, 1,170);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment