码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 医学图像数据增强-重采样itk


     resample_augmentations.py

    1. def resample_image_itk(
    2. ori_img,
    3. new_spacing=[1.0,1.0,1.0],
    4. new_size=[0,0,0],
    5. resamplemethod=sitk.sitkNearestNeighbor):
    6. """
    7. @Args:
    8. :param ori_img: 原始需要对齐的itk图像
    9. :param new_spacing: 111
    10. :param new_size: 默认000, 注意非零则自动裁剪
    11. :param resamplemethod:
    12. sitk.sitkLinear-线性 - image
    13. sitk.sitkNearestNeighbor-最近邻 -mask
    14. @Return:
    15. 重采样好的itk图像
    16. """
    17. ori_size = ori_img.GetSize() # 原始图像大小 [x,y,z]
    18. ori_spacing = ori_img.GetSpacing() # 原始的体素块尺寸 [x,y,z]
    19. ori_origin = ori_img.GetOrigin() # 原始的起点 [x,y,z]
    20. ori_direction = ori_img.GetDirection() # 原始的方向 [冠,矢,横]=[z,y,x]
    21. # 计算改变spacing后的size,用物理尺寸/体素的大小
    22. if new_size==[0,0,0]:
    23. new_size[0] = int(ori_size[0]*ori_spacing[0]/new_spacing[0] + 0.5)
    24. new_size[1] = int(ori_size[1]*ori_spacing[1]/new_spacing[1] + 0.5)
    25. new_size[2] = int(ori_size[2]*ori_spacing[2]/new_spacing[2] + 0.5)
    26. # itk的方法进行resample
    27. resampler = sitk.ResampleImageFilter()
    28. resampler.SetReferenceImage(ori_img) # 需要重新采样的目标图像
    29. # 设置目标图像的信息
    30. resampler.SetSize(new_size) # 目标图像大小
    31. resampler.SetOutputOrigin(ori_origin)
    32. resampler.SetOutputDirection(ori_direction)
    33. resampler.SetOutputSpacing(new_spacing)
    34. # 根据需要重采样图像的情况设置不同的dype
    35. if resamplemethod == sitk.sitkNearestNeighbor:
    36. resampler.SetOutputPixelType(sitk.sitkUInt16) # 近邻插值用于mask的,保存uint16
    37. else:
    38. resampler.SetOutputPixelType(sitk.sitkFloat32) # 线性插值用于PET/CT/MRI之类的,保存float32
    39. resampler.SetTransform(sitk.Transform(3, sitk.sitkIdentity))
    40. resampler.SetInterpolator(resamplemethod)
    41. return resampler.Execute(ori_img) # 得到重新采样后的图像

  • 相关阅读:
    机器学习模型结果可信度基础理论
    一本通2073;三角形面积
    Mysql索引原理
    毕设-基于SpringBoot学生住宿管理系统
    Linux进程上下文切换:理解特权模式和进程切换
    Linux操作系统 - 进程控制
    SSM整合框架(相关依赖)
    单元测试系统化讲解之Mockito
    【JavaEE---作业】对外提供密码学算法服务器软件系统
    《永劫无间》找不到ffmpeg.dll无法继续执行怎么办,永劫无间找不到ffmpeg.dll解决方案
  • 原文地址:https://blog.csdn.net/weixin_41275726/article/details/126214695
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号