nii格式matlab,如何将nii格式文件转换为二维图像

是的,你可以像操作任何数组一样操纵图像/序列。

下面是NIH here提供的一个简单数据示例。

数据集在4D中,名为“filtered_func_data.nii”。

让我们加载数据集并访问所产生的结构img领域:

S = load_nii('filtered_func_data.nii')

这里,S是具有以下字段的结构:

S =

hdr: [1x1 struct]

filetype: 2

fileprefix: 'filtered_func_data'

machine: 'ieee-be'

img: [4-D int16]

original: [1x1 struct]

我们还可以访问图像数据与领域img(你已经想通了):

A = S.img

如果我们检查的大小,我们得到:

size(A)

ans =

64 64 21 180

因此该数据集包括与21片的深度/数字和数量的180

帧此时64×64的图像我们可以操纵A,因为我们喜欢重塑,调整大小或任何东西。

下面是一个简单的代码(动画GIF),以循环通过4D数组中的第一时间点的每个切片:

NumSlices = size(A,3)

figure(1)

filename = 'MRI_GIF.gif';

for k = 1:NumSlices

imshow(A(:,:,k,1),[])

drawnow

frame = getframe(1);

im = frame2im(frame);

[imind,cm] = rgb2ind(im,256);

if k == 1;

imwrite(imind,cm,filename,'gif', 'Loopcount',inf);

else

imwrite(imind,cm,filename,'gif','WriteMode','append');

end

pause(.1)

end

输出:

f1422d5b804383855c39970f8a17409f.gif

哪个看起来相当不错我。

所以在你的情况下,你得到的大小为[39 305 305],你可以使用我用过的相同操作来处理3D数据集。

编辑 与您的数据是相同的:

S = load_nii('Subject01.nii');

A = S.img;

NumSlices = size(A,3);

然后,如果你想有一个2D图像,你需要选择3D阵列中分得一杯羹。

例如,第一切片进行访问,像这样:

A(:,:,1)

等了休息。

c77bc426a59971433d7cde15ce6201c9.gif

将图像保存为PNG,使用imwrite。

希望有帮助!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值