Converting Tiff files into 4D array containing the raw image data with 8 bit integer encoding.

11 views (last 30 days)
Dear all,
I have started learning programming only 2 weeks ago and I am fresh in this field. Nonetheless, I need to convert tiff files to 4D array with approprite parameters which indicated below. I am going to use the converted images in further analysis. I would be grateful for any help with coding!
  • MATLAB® formatted binary file (MAT-file; file-extension: .mat).MAT-files have to contain two variables:
  • img: 4D array containing the raw image data with 8 bit integer encoding; dimensions should correspond to X/Y/Z directions and the color channels.
  • hdr: structure with two fields, describing dimensionality and resolution (given as scaling factors) of the raw data in the array "img":
  • hdr.dim: vector of length 4, with values specifying the number of dimensions in array "img" and the size of each dimension.For example, hdr.dim=[4,1024,1024,132,2] specifies that the array "img" has 4 dimensions with the size of dimensions being respectively 1024, 1024, 132 and 2.
  • hdr.pixdim: vector of length 4, with values specifying the number of dimensions in array "img" and the factors to scale each dimension to micrometer. The forth dimension corresponds to the color channels and therefore has no scaling applied to it. Therefore, set its scaling factor to 1.For example, hdr.pixdim=[4,0.2076,0.2076,0.4,1] specifies that the array "img" has 4 dimensions and the X/Y dimension has to be scaled by 0.2076 and the Z dimension by 0.4.
  4 Comments
Rik
Rik on 6 Sep 2022
@Shubham why don't you try the links I posted as well? Apparently it worked for Nikita, otherwise they would have posted a follow-up.

Sign in to comment.

Accepted Answer

Udit06
Udit06 on 12 Sep 2023
Hi Nikita,
I understand that you want to create a MAT-file containing the 4D raw image data and a structure containing information about image dimensions and scaling factors.
You can follow the following steps along with code snippets to achieve the same:
1) Read the image stored in .tiff format.
% Specify the input TIFF file path
tiffFilePath = 'sample.tiff';
% Read the TIFF file
tiffData = imread(tiffFilePath);
2) Create the 4D array containing the raw image data.
% Create the img 4D array
img = uint8(tiffData);
3) Create the required hdr structure.
% Create the hdr structure
hdr.dim = [4, size(img, 1), size(img, 2), size(img, 3), size(img, 4)];
hdr.pixdim = [4, 0.2076, 0.2076, 0.4, 1];
4) Save both raw image and hdr structure to a MAT-file.
% Save the img and hdr variables to a MAT-file
matFilePath = 'output.mat';
save(matFilePath, 'img', 'hdr');
You can refer to the below MathWorks documentations to understand more about “imread” and “save” functions respectively.
I hope this helps.

More Answers (0)

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!