标签:文件 itk spacing mha raw data size
raw格式
在体数据(volume)中,经常会遇到raw文件,raw文件就是其实就是所有体素组成的文件,raw文件必须还有一些描信息才能用(因为得知道数据的size,type,spacing等),就像.mhd文件是对raw文件的一个描述。在医学数据处理中,经常使用mha文件格式来对数据进行处理,因为mha文件格式比较简单,而且包含了所有的基本图像信息(之前一篇有简单介绍)。所以本文要介绍将raw格式的文件转为mha格式。其实也不一定是raw文件,因为不论是什么后缀名,数据的内容都不会变化。
代码
import SimpleITK as itk
import numpy as np
import os
def raw2mha(inpath,outpath,size,spacing,intype='uint16',outtype='uint16'):
"""
parameter:
inpath:raw file path
outpath:raw out file path
size:raw file size(z,y,x) such as (94,256,256)
spacing:raw file pixel spacing.
intype:raw file data type,default is uint16
"""
#利用np从文件读取文件
data = np.fromfile(inpath,dtype=intype)
#reshape数据,这里要注意读入numpy的时候,对应是(z,y,x)
data = data.reshape(size)
#设置输出时的数据类型
data = data.astype(outtype)
#转成itk的image
img:itk.Image = itk.GetImageFromArray(data)
#设置pixel spacing
img.SetSpacing(spacing)
#输出文件
s = itk.ImageFileWriter()
s.SetFileName(outpath)
s.Execute(img)
def main():
filepath = "test.raw"
datatype = 'uint16'
size = (94,256,256)
spacing = (0.97,0.97,2.5)
outname = "test.mha"
raw2mha(filepath,outname,size,spacing,datatype)
if __name__ == "__main__":
main()
git
博主建立了一个git库,会把平时用的,觉得可以复用的医学数据处理的代码放进去,现在还很空,慢慢积累吧。https://github.com/MangoWAY/medicalImageScriptDemo
标签:文件,itk,spacing,mha,raw,data,size 来源: https://www.cnblogs.com/WAoyu/p/11846248.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。