恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

simpleitk和numpy的转化问题

  • 首页
  • 资讯中心
  • /
  • simpleitk和numpy的转化问题

相关资讯

3分钟学会正态性检验(含直方图、P-P图、Q-Q图) 2026/8/26 14:22:08
语音识别总结系统 2026/8/26 14:22:08
2026 Temperature 采样温度:同一个 AI,为什么一会儿靠谱一会儿“放飞自我“?MonkeyCode 免费上手 2026/8/26 14:17:08

最新资讯

【嵌入式AI学习 Day1】RK3568开发板上手实录:串口连接、启动日志解读、SSH网络打通(新手避坑)
文心大模型 LeetCode 5.最长回文子串 TypeScript实现
微服务基座
OpenClaw一键配置教程,TopClaw三分钟免代码开箱即用
Loop macOS 窗口管理完整指南:5 分钟跑通径向菜单与预览
Allure2 报告中添加用例步骤 :@allure.step

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

simpleitk和numpy的转化问题

发布时间:2026/8/26 14:22:08
simpleitk和numpy的转化问题 SimpleITK 读取 NIfTI 后数组默认是zhw顺序(z, y, x)若需(x, y, z)顺序需手动转置np.transpose(array, (2, 1, 0))。元数据如GetSize()仍遵循 NIfTI 的(x, y, z)约定需注意区分数组顺序和元数据顺序。1 simpleitk和numpy的维度问题NumPy 数组始终使用(D, H, W)顺序3D或(H, W)顺序2D。SimpleITK 图像GetImageFromArray和GetArrayFromImage会自动处理 DHW ↔ WHD 的转换无需手动转置。# 正确用法示例 arr_dhw np.random.rand(64, 256, 256) # (D, H, W) itk_img sitk.GetImageFromArray(arr_dhw) # 自动转为 ITK (W, H, D) arr_back sitk.GetArrayFromImage(itk_img) # 自动转回 (D, H, W)GetImageFromArray会丢失原始图像的物理坐标信息如像素间距、原点。解决手动设置元数据itk_img sitk.GetImageFromArray(arr_dhw) itk_img.SetSpacing([1.0, 1.0, 1.0]) # 设置体素间距 (x, y, z) itk_img.SetOrigin([0, 0, 0]) # 设置原点验证交互正确性的方法# 检查 NumPy 和 ITK 的维度一致性 arr_dhw np.random.rand(64, 256, 256) itk_img sitk.GetImageFromArray(arr_dhw) # 验证转换无失真 assert arr_dhw.shape (64, 256, 256) # NumPy (D, H, W) assert itk_img.GetSize() (256, 256, 64) # ITK (W, H, D) assert np.allclose(arr_dhw, sitk.GetArrayFromImage(itk_img))坚持使用(D, H, W)顺序的 NumPy 数组与 SimpleITK 交互可避免维度错误。2 SetDirection()和GetDirection()的矛盾性使用过程发现读取nii后GetDirection得到实施一个一维16个元素的元组直接SetDirection失败。原因如下direction src.GetDirection() # 如果是 3D 图像9 个元素 if len(direction) 9: direction_matrix tuple(direction) # 直接传入 9 个元素的元组 # 或者构造 3x3 矩阵可选 # direction_matrix ( # direction[0], direction[1], direction[2], # direction[3], direction[4], direction[5], # direction[6], direction[7], direction[8] # ) # 如果是 2D 图像4 个元素 elif len(direction) 4: direction_matrix tuple(direction) # 直接传入 4 个元素的元组 # 或者构造 2x2 矩阵可选 # direction_matrix ( # direction[0], direction[1], # direction[2], direction[3] # ) # 如果是 16 个元素4x4 矩阵需要提取前 9 个3x3 elif len(direction) 16: direction_matrix ( direction[0], direction[1], direction[2], direction[4], direction[5], direction[6], direction[8], direction[9], direction[10] ) else: raise ValueError(Unsupported direction format!) # 设置方向 target_img sitk.GetImageFromArray(arr) # 你的目标图像 target_img.SetDirection(direction_matrix) # 正确设置方向import SimpleITK as sitk import numpy as np # 读取源图像 src sitk.ReadImage(source.nii) direction src.GetDirection() # 检查方向矩阵的形状 if len(direction) 9: # 3D 图像 direction_matrix direction elif len(direction) 4: # 2D 图像 direction_matrix direction elif len(direction) 16: # 4x4 矩阵提取 3x3 direction_matrix ( direction[0], direction[1], direction[2], direction[4], direction[5], direction[6], direction[8], direction[9], direction[10] ) else: raise ValueError(Unsupported direction format!) # 创建目标图像并设置方向 arr sitk.GetArrayFromImage(src) # 获取 NumPy 数组 target_img sitk.GetImageFromArray(arr) target_img.SetDirection(direction_matrix) # 正确设置方向 # 保存 sitk.WriteImage(target_img, output.nii)如果是9个元素直接target_img.SetDirection(src.GetDirection())如果是 16 个元素4x4 矩阵提取前 9 个构造 3x3 方向矩阵

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号