首页 > 其他分享 >reSpacing3D医学图像nii.gz

reSpacing3D医学图像nii.gz

时间:2024-03-27 13:31:01浏览次数:27  
标签:newSize nii reSpacing3D image spacing gz sitk resampler path

import numpy as np
import SimpleITK as sitk
from glob import glob
import nibabel as nib

def get_spacing(nifti_file_path):
    nifti_img = nib.load(nifti_file_path)
    spacing = nifti_img.header.get_zooms()  # 直接返回spacing元组
    return spacing

def resize_image_itk(image_file, resamplemethod=sitk.sitkNearestNeighbor):
    itkimage = sitk.ReadImage(image_file) 
    resampler = sitk.ResampleImageFilter()
    originSpacing = get_spacing(image_file)  # 获取原图spacing
    print("originSpacing:", originSpacing)
    newSpacing = (0.4, 0.4, 0.4)
    
    factor = [0,0,0]

    for i in range(3):
        factor[i]= newSpacing[i]/originSpacing[i]
    print("factor",factor)

    newSize =[0,0,0]
    for i in range(3):
        newSize[i] =itkimage.GetSize()[i]/factor[i]

    newSize = np.array(newSize)
    newSize = newSize.astype(np.int32)  # spacing格式转换
    resampler.SetReferenceImage(itkimage)
    resampler.SetSize(newSize.tolist())
    resampler.SetOutputSpacing(newSpacing)
    resampler.SetTransform(sitk.Transform(3, sitk.sitkIdentity))
    resampler.SetInterpolator(resamplemethod)
    itkimgResampled = resampler.Execute(itkimage)
    return itkimgResampled


image_path = r'文件夹'  
image_files = glob(image_path + "/*")  

for i in range(len(image_files)):
    itkimgResampled = resize_image_itk(image_files[i], resamplemethod=sitk.sitkLinear)
  
    output_path = '文件夹' + image_files[i][len(image_path):]  
    # 修改输出路径
    sitk.WriteImage(itkimgResampled, output_path)
    print("Resampled image saved to:", output_path)

该代码只能修改图像,因为标签没有spcing属性。

标签:newSize,nii,reSpacing3D,image,spacing,gz,sitk,resampler,path
From: https://blog.csdn.net/snowy_zhang/article/details/137074301

相关文章

  • C# 压缩文件 GZipStream
    //官方文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.io.compression.gzipstream?view=net-8.0/*GZipStream介绍*此类表示gzip数据格式,该格式使用行业标准算法进行无损文件压缩和解压缩。格式包括用于检测数据损坏的循环冗余检查值。gzip数据格式使用与......
  • 前端报错 request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0
    前端npminstall报错:npmERR!requesttohttps://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgzfailed,reason:certificatehasexpired解决方式://1.清空缓存npmcacheclean--force//2.切换新源:npmconfigsetregistry镜像源npmconfig......
  • Linux-tar、tar.gz、tgz文件批量解压方法
    由于linux的tar命令不支持批量解压,所以很多网友编写了好多支持批量解压的shell命令,收集了一下,供大家分享:第一:使用for遍历压缩文件,使用tar命令逐个解压fortarin*.tar.gz; dotarxvf$tar;donefortarin*.tar.bz2;dotarxvf$tar;done或者for i in $(ls *.tar.g......
  • Clickhouse TGZ安装方式的卸载(Clickhouse重装失败)
    1.停止ClickHouse服务sudoserviceclickhouse-serverstop2.删除所有的数据和日志文件sudorm -rf/var/lib/clickhouse/sudorm -rf/var/log/clickhouse-server/3.如果你使用的是systemd来管理服务,你可以通过以下命令来停止并删除服务sudosystemctlstopclickhouse-serv......
  • Vite+Vue3打包性能优化 Gzip压缩
    安装插件npmivite-plugin-compression-D配置文件//vite.config.tsimportviteCompressionfrom'vite-plugin-compression';exportdefault()=>{return{plugins:[viteCompression({threshold:10240,//设置只有大于10kb的......
  • P5304 [GXOI/GZOI2019] 旅行者
    Mikuuu准备投身于ACM的潮流中,失踪人口回归啦!这个题目的思路还是非常有趣的,因为我们可以注意到,两个可能成为答案兴趣点之间的最短路不应该经过了第三个点,如果经过了,显然和第三个点之间的最短路会更小,则原来的两个点之间不应该成为答案。考虑到这一点,我们可以想到建枚举每一条边,......
  • 错误:在 /tmp/easy_install-rad8_t5b/PyQt5-5.14.0.tar.gz #15 中找不到安装脚本
    thePyQt55.14.0isbrokenbecausecan'tnotinstallonresppi3.youcantoinstallaversionofPyQt5thatworkingfineonresp.followthesteps:PyQt55.14.0已损坏,因为无法无法安装在resppi3上。您可以安装一个在resp上运行良好的PyQt5版本,请按照以下......
  • 使用gzip命令解压gz日志文件报错:Permission denied[admin@test logs]
    【问题描述】 使用gzip命令解压gz日志文件报错:Permissiondenied[admin@testlogs] 使用sudochmode-R777给目录添加编辑权限,需要输入admin的密码,不是admin账号也添加不了。  【解决方法】使用sudogunzip命令就可以正常解压了。BYW:下载日志文件命令使用szinfo.......
  • Gzip压缩
    目的缩短响应时间做法情况一|springboot服务开启gzip压缩功能#开启Gzip压缩#server.compression.enabled=true#要压缩的类型#server.compression.mime-types=application/javascript,application/x-javascript,text/css,application/json,application/xml,text/html,text/......
  • Ubuntu安装zabbix,初始化数据库报没有这个文件 /usr/share/doc/zabbix-sql-scripts/mys
    报错信息如下: 解决方法:1、先查看是否安装了zabbix-server-mysql,我这里是已经安装过了,但是初始化还是报错找不到文件 2、去zabbix下载对应版本的源码,然后进行手动安装下载链接:https://www.zabbix.com/download_sources#60LTS 3、源码下载后解压,在database文件中找到m......