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

조회 수: 2 (최근 30일)
Harsha Yogeshappa
Harsha Yogeshappa 2021년 11월 10일
답변: Ayush Modi 2024년 3월 7일
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,

답변 (1개)

Ayush Modi
Ayush Modi 2024년 3월 7일
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!

카테고리

Help CenterFile Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by