首页 > 解决方案 > AttributeError:“FileDataset”对象没有属性“SliceLocation”

问题描述

我正在使用从一些文章中获得的以下代码。

def load_patient(files):       
    slices = [pydicom.dcmread(s) for s in files]
    slices.sort(key = lambda x: int(x.InstanceNumber))

    try:
        ## actual property is ImagePositionPatient, shortened for screen width ##
        thickness = np.abs(slices[0].ImgPosPatient[2] - slices[1].ImgPosPatient[2])
    except:
        thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)

    for s in slices:
        s.SliceThickness = thickness

    return slices

得到以下错误

AttributeError:“FileDataset”对象没有属性“SliceLocation”

文件:C:\ProgramData\Anaconda3\lib\site-packages\pydicom\dataset.py

线路:524,

函数名称:getattr

消息:返回超级(数据集,自我)。获取属性(名称)

标签: pythonpydicom

解决方案


正如您在此处看到的: DICOM 标准
Slice Location 属性是可选的。抛出的错误意味着没有这样的属性。因此,就 DICOM 标准而言,可以预期会收到此错误。


推荐阅读