%INR2AVI convert a INR file movie to AVI format
% avi2inr(filename, fps, show_cb, title_str) opens filename.inr and
% creates a filename.avi file.
% Since the INR file has no information about frame rate, the frames per
% second of the results avi file must be specified through this parameter.
% If show_cb is true, the colorbar is showed, otherwise,
% the video is showed in gray scale
% if title_str is not empty, the specified title is added to the figure
%
% See also AVI2INR.
% Copyright (C) 2016 by Richard R. Carrillo
% $Revision: 1.5 $ $Date: 2/11/2016 $
% (adapted from noout2par from EDLUT repository)
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3 of the License, or
% (at your option) any later version.
function inr2avi(filename, fps, show_cb, title_str)
[images, read_dim_size] = inrload([filename '.inr']); % Load all data from file , 0,Inf, 0,Inf, 0,10
if ~isempty(images) % File successfully read
fprintf(1,'Dimensions of read data (X,Y,Z,V): %i x %i x %i x %i\n', arrayfun( @(dim) (size(images,dim)), 1:4));
images = permute(images,[2 1 4 3]); % for immovie image must be an M-by-N-by-1-by-K array, where K is the number of images
vid_obj = VideoWriter([filename '.avi']);
vid_obj.FrameRate = fps;
open(vid_obj);
for nframe=1:size(images,4)
imagesc(images(:,:,:,nframe))
axis off
if ~isempty(title_str)
hand_t=title(title_str);
set(hand_t,'FontName','Courier 10 Pitch')
set(hand_t,'FontSize',18)
end
if show_cb
hand_cb=colorbar;
set(hand_cb,'FontName','Courier 10 Pitch')
set(hand_cb,'FontSize',18)
else
colormap(gray)
end
curr_frame = getframe(gcf);
writeVideo(vid_obj,curr_frame);
end
close(vid_obj);
end