MATLAB Answers

How can I use 3d interpolation on Dicom images to resize them?

23 views (last 30 days)
elham
elham on 1 Nov 2018
Edited: elham on 1 Nov 2018
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
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.
elham
elham on 1 Nov 2018
@Bruno Luong: Yes, That's right. The 'nearest' interpolation is suitable. Thanks.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by