微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RTSTRUCT 和 RTDOSE 文件的尺寸不匹配Python

如何解决RTSTRUCT 和 RTDOSE 文件的尺寸不匹配Python

我在一个生物医学项目中为同一患者提供 3 种输入:RTDOSE 文件 (RD)、RTSTRUCT 文件 (RS) 和 CT。所有这些文件都应该协同工作,而且我确实可以在 Slicer 上以 3D 形式正确地将它们可视化。

但是,我必须使用 Python 来完成这个项目,所以我编写了以下 Python 脚本:

import pydicom
from dcmrtstruct2nii import dcmrtstruct2nii
import nibabel as nib 

list_ct_names = []

for r,d,f in os.walk(DATADIR):
    for file in f:
        if "RD." in file:
            RD_NAME = os.path.join(r,file)
            RD = pydicom.dcmread(RD_NAME)
            print("Shape RD =",RD.pixel_array.shape)

for r,f in os.walk(DATADIR):
    for file in f:
        if "RS." in file:
            RS_NAME = os.path.join(r,file)
            dcmrtstruct2nii(RS_NAME,r,r)
            NII_RS = nib.load(os.path.join(r+"image.nii.gz")).get_fdata()
            print("Shape RS = ",NII_RS.shape)

LoadOneCT = True
for r,f in os.walk(DATADIR):
    for file in f:
        if "CT." in file:
            if LoadOneCT:
                print("CT shape = ",pydicom.dcmread(os.path.join(r,file)).pixel_array.shape)
                LoadOneCT = False
            list_ct_names.append(os.path.join(r,file))

print("Number of CT's = ",len(list_ct_names))

我获得的输出如下:

Shape RD = (71,74,71)
Shape RS =  (512,512,80)
CT shape =  (512,512)
Number of CT's =  80

因此我的问题是: 我如何才能获得相同尺寸的 RD 和 RS 输入?

非常感谢您的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。