使用pydicom处理Xray图像(.dcm文件)(找不到SliceThickness属性)

问题描述 投票:0回答:2

我是Image Processing的新手,想知道如何使用python预处理dicom图像。我遵循以下教程:dicom in python我的数据中没有SliceThickness属性。我怎么计算呢?

这是我的样本数据集:

Dataset

这是我的代码:

import pydicom
import os
import numpy
from matplotlib import pyplot, cm

PathDicom = "xyz\images"
lstFilesDCM = []  # creating an empty list
for dirName, subdirList, fileList in os.walk(PathDicom):
    for filename in fileList:
        if ".dcm" in filename.lower():  # checking whether the file's DICOM
            lstFilesDCM.append(os.path.join(dirName,filename))

RefDs = pydicom.read_file(lstFilesDCM[0])
ConstPixelDims = (int(RefDs.Rows), int(RefDs.Columns), len(lstFilesDCM)) #Load dimensions based on the number of rows, columns, and slices (along the Z axis)
ConstPixelSpacing = (float(RefDs.PixelSpacing[0]), float(RefDs.PixelSpacing[1]), float(RefDs.SliceThickness)) # Load spacing values (in mm)

这是我得到的错误:

'FileDataset' object has no attribute 'SliceThickness'
python image-processing dicom pydicom
2个回答
3
投票

Tarmo R的评论是对的。看你的数据,它有CR(计算机射线照相术)作为模态,这是一张图片,因为它基本上是一个数字X射线。因此它永远不会有SliceThickness属性。

在这种情况下,您可以立即获得包含像素数据的numpy数组:

image_pixel_data = RefDs.pixel_array

0
投票

这对我有用:

RefDs.pixel_array

它将图像直接转换为numpy数组。

© www.soinside.com 2019 - 2024. All rights reserved.