How can I use 3d interpolation on Dicom images to resize them?
4 views (last 30 days)
Show older comments
I have used interpolation for 3D-matrix of the images. Because I want to resize the images with the size of 512x512 to 288x288 and the slices from 133 to 265. As an example in the below code:
% 3D interpolation
d = size(volume_image);
X = 1:1/scaleCoeff(1):d(1);
Y = 1:1/scaleCoeff(2):d(2);
zi= 1:1/scaleCoeff(3):d(3);
[Xn, Yn, Zin] = ndgrid(X, Y, zi);
MFinal = interpn(volume_image, Xn, Yn, Zin);
Example:
volume_image = (rows=512, columns=512, slices in 3rd dimenson=133)
scaleCoeff = [0.56250, 0.56250, 2]
X = 1x288
Y = 1x288
zi = 1x265
Xn = 288x288x265
Yn = 288x288x265
Zin = 288x288x265
MFinal = 288x288x265 , so that, (rows=288, columns=288, slices in 3rd dimenson=265)
However, there is a problem with it. When the new slices create, they are not as good as the original slices. So that, They look like a combination of their previous and next slices. Does everyone have an idea to apply 3D interpolation on Dicom images to resize them (to unification)?
2 Comments
Bruno Luong
on 1 Nov 2018
'When the new slices create, they are not as good as the original slices. So that, They look like a combination of their previous and next slices'
Hmm that exactly a (linear) interpolation supposes to do.
If you don't want that effect, might by 'nearest' interpolation s suitable, it's just like replicate you images denser, but then it will have to jump to the next image at some point.
Answers (1)
John Kearns
on 14 Jun 2021
Hey Mate,
Don't know if this is still an issue for you. But if you're limiting yourself to 3D data, you may also try to resize it using the image toolbox. Specifically, try the function imresize3().
Cheers,
0 Comments
See Also
Categories
Find more on Interpolation 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!