Saving Cell Contents to Images in Loop for ImageJ

1 view (last 30 days)
Hi,
I have a 4D data set A(m,n,j,k). In a for loop the data is "squeezed" into a cell A_cell to make k 3D cell entries each A_cell{k} = A(m,n,j). Each cell entry is saved as a .mat in the home directory within the loop.
Now in the loop(or not), I need to open either each cell or each saved .mat file, generate j tif images for each of the cell/.mat entries/files, and then save these images as tiff with numbered names back into the home directory.
I am using this function to generate ImageJ-readable images from the 4D data sets.
Can somebody please help with this?
Thanks!

Answers (1)

Image Analyst
Image Analyst on 20 Nov 2014
Should be very easy with this http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F and this http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F. Inside the loop, create an outputfilename with sprintf() and fullfile (like the FAQ shows) and then get the image from the cell array with braces
thisImage = myCellArray{index};
Then call imwrite
baseFileName = sprintf('..........
fullFileName = fullfile(folder, baseFileName);
imwrite(thisImage, fullFileName);
  9 Comments
Image Analyst
Image Analyst on 20 Nov 2014
I would use sprintf but include the Step part:
file_name = sprintf('Frame_%d, Step_%d.tif', k, i);
It looks simpler to me and more like other languages you're familiar with like C and Java.
Avigdor
Avigdor on 20 Nov 2014
Thanks! I posted a question about saving 32-bit tiff images in this context. Please check it out if you have some insight.

Sign in to comment.

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!