How can I control the voxel size using 'imwrite'?

6 visualizaciones (últimos 30 días)
Harsha Yogeshappa
Harsha Yogeshappa el 10 de Nov. de 2021
Respondida: Ayush Modi el 7 de Mzo. de 2024
Hello All,
I have an input tiff file image that has 342 slices, and I would like to extract each slice individually and save as a separate file.
% x = imread("inputTiffFile.tif", 100);
% imwrite(x, "slice_100.tif");
% x = imread("inputTiffFile.tif", 163);
% imwrite(x, "slice_163.tif");
However, I have one problem: The voxel spacing in the input image is [1, 1, 1], but the voxel spacing after using 'imwrite' is changed to [0.352778, 0.352778, 1]. I require the voxel spacing to be same as input.
Any inputs on how to avoid this change in voxel size would be very helpful.
Thanks,

Respuestas (1)

Ayush Modi
Ayush Modi el 7 de Mzo. de 2024
Hi Harsha,
To avoid the change in voxel size when using the "imwrite" function in MATLAB, you can specify the resolution of the output image using the 'Resolution' name-value pair argument. Here's an example:
imwrite(x, "slice_100.tif", 'Resolution', [1, 1, 1]);
% Note - [1, 1, 1] specifies that the voxel spacing should be the same as the input image.
Please refer to the following MathWorks documentation for more information on the “imwrite” function and 'Resolution' name-value pair argument:
Hope this helps!

Community Treasure Hunt

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

Start Hunting!

Translated by