[Medical Image] raw文件转mha文件
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
作者:芒果和小猫
出处:https://www.cnblogs.com/WAoyu/p/11846248.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律