MATLAB Answers

0

speeding up tiff writing

Asked by Jeff Spector on 30 Jul 2019
Latest activity Commented on by Walter Roberson
on 31 Jul 2019
I'm trying to write a large (~18,000) frame image stack to a tiff file. See code below :
imgname=[SubDataFolder,...
'/_BG_',num2str(0),'_BGstd_',num2str(0),'_kappa',num2str(kappa),'_run_',num2str(runNum),'.tiff']; % 0 just sets the image name
imwrite(uint16(BgIm160(:, :,1)),imgname); % - writes the first image
disp(['Starting Image Writing Loop for ',imgname]) % - for trouble shooting
for(k=2:num_images) % - writes the rest of the images
imwrite(uint16(BgIm160(:, :, k)),imgname,'WriteMode','append');
fracdone=round((k./num_images)*100) % - shows hoe much is done
%
end
This is taking a REALLY long time, is it just becuase 18k slices is a lot to write in a file (each slice is 200x500), and I just need to be patient, or is there a better/faster way to write this to a .tif file (for later analysis in ImageJ)
thanks

  5 Comments

I haven't tried the Tiff() class. Will look into that. It may just be that it takes a long time to write that many images. If your SSD took 26 seconds for 1800 frames and I've got 18,000 that could make sense, but I still think it is taking longer than it should, maybe I need to invest in some SSD's :)
I've looked but can't find a good example of using TIff to write a multipage tiff file. I've got several CPUs on this machine, could I do this with the parallel computing toolbox's parfor loop to speed it up, or will it write the images in the wrong order?
Walter Roberson
on 31 Jul 2019
https://www.mathworks.com/help/matlab/ref/tiff.writedirectory.html

Sign in to comment.

0 Answers