使用matlab处理.nii图像

一、工具包准备

1. 下载 Tools for NIfTI and ANALYZE image 

(https://ww2.mathworks.cn/matlabcentral/fileexchange/8797-tools-for-nifti-and-analyze-image?s_tid=srchtitle)

2. 解压后整个移动到文件夹matlab->toolbox中

3. 添加路径

4.更新工具包缓存

二、读取.nii图像

使用load_nii

nii = load_nii( 'Brats17_2013_2_1_t1.nii.gz' );  % 装载.nii数据
img = nii.img;  %文件包含img和head,img是图像数据

因为nii一般包含多个slice,第i个slice的读取和显示:

Image = img(:,:,i);
imshow(Image,[]);

三、保存.nii图像为其他格式

根据imwrite的文档可知,不同格式对应要求的数据格式也不相同:

如果第i个slice的图片Image格式是int16,需要修改成符合要求的可imwrite的格式,即修改灰度值范围为0-255:

Image = mat2gray(Image);

再保存成任意希望的格式即可:

imwrite(Image,[savepath,int2str(i),'.bmp']);

保存当前.nii图像中所有的slice:

[n1,n2,n3] = size(img);
for i = 1:n3
    Image = img(:,:,i);
    %figure(i);
    %imshow(Image,[]);
    Image = mat2gray(Image);
    imwrite(Image,[savepath,int2str(i),'.bmp']);
end

对于groundtruth,是标记好的图像,一般不改变其灰度

可能需要改变图像格式从int16-int16:

[n1,n2,n3] = size(img);
for i = 1:n3
    Image = img(:,:,i);
    X = Image(1:end);
    Y = typecast(X,'uint16');
    [mm,nn] = size(Image);
    Image = reshape(Y,mm,nn);
    imwrite(Image,[savepath,int2str(i),'.png']);
end

可能需要改变图像格式为uint8:

Image = uint8(Image)

参考

https://www.cnblogs.com/glam/p/13712362.html

https://blog.csdn.net/wrj199421/article/details/84645844

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值