How can I use 3d interpolation on Dicom images to resize them?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Bruno Luong
2018-11-1
'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.
回答(1 个)
John Kearns
2021-6-14
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!