NIFT和BMP批量互相转换(matlab)

前言:最近在做数据集,需要进行NIFT和BMP的批量互相转换。之前都是一张一张转换的,用Image J就能完成,但是最近数据太多了,所以得研究一下如何批量转换。

NIFT和BMP介绍

NIFT

NIFT(Neuroimaging Informatics Technology)是一种常用的医学图片保存格式,通常用来保存三维的数据信息,能够通过ITK-SNAP软件进行数据的标注。

文件后缀为nii和nii.gz,这两个其实是一个东西,nii.gz是nii的扩展名。

BMP

BMP(Bitmap-File)是一种在Windows系统中广泛使用的图像文件格式,其可以不做任何变换地保存图像像素域的数据,基本不压缩从而能够完全无损保存图片信息,经常作为RAW数据的重要来源。

为什么要转换

采集得到的医学图像通常是BMP格式,因为其不压缩且无损。但是标注数据时候,会使用到ITK-SNAP软件,需要传入NIFTI文件,最后标记得到的label数据也是NIFTI文件。由于深度学习需要用的是BMP格式,所以还需要把label数据的NIFTI文件转为BMP。在数据量比较大的时候,有一个批量BMP互转NIFT的工具代码是非常有必要的。

虽然用ImageJ能进行bmp和NIFT的转换,但是批量转换会把多张bmp图像放在一张NIFT中构成三维的数据。这并不是我想要的,我需要的只是对二维图像数据进行标注处理。

Matlab进行NIFT和BMP批量互相转换

BMP转NIFTI

把file_path文件夹中的bmp批量转换为二维的nii到file_save_path中。

file_path='';
file_save_path='';
img_path_list=dir(strcat(file_path,'*.bmp'));
img_num=length(img_path_list);
for i=1:img_num
    img=imread(strcat(file_path,img_path_list(i).name));
    % 如果直接转换成nii会出现图像旋转和翻转的问题
    img_rot=imrotate(img,90);% 将图像A围绕其中心点进行angle角度的逆时针旋转。
    img_flip=flip(img_rot,1);% 翻转上下对称,如果是2就是左右翻转
    niftiwrite(img_flip,strcat(file_save_path,img_path_list(i).name));
end

主要是注意NIFT和BMP互转的时候,需要做一个旋转和翻转,不然转的图像不太对。

NIFTI转BMP

把file_path文件夹中的二维nii批量转换为bmp到file_save_path中。

file_path='';
file save path='';
img_path_list=dir(stract(file_path,'*.nii'));
img_num=length(img_path_list);
for i=1:img_num
    img=niftiread(strcat(file_path,img_path_list(i).name));
    img_rot=imrotate(img,90);
    img_flip=flip(img_rot,1);
    imwrite(img_flip,strcat(file_save_path,img_path_list(i).name(1:end-4),'.bmp'),'bmp');
end

补充其它编译语言

可以调用SimpleITK库来实现,它是专门处理医学影像的工具,使用起来非常便捷。
SimpleITK 支持 8 种编程语言,包括c++、Python、R、Java、c#、Lua、Ruby 和 TCL。

本来想用python实现的,但是本地没有安装python,服务器那边不太熟悉,就没有用Python实现了。

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值