使用 pydicom 处理 X 射线图像(.dcm 文件)

我是图像处理的新手,想知道如何使用 python 预处理 dicom 图像。我正在关注以下教程:python 中的 dicom我的数据中没有 SliceThickness 属性。我该如何计算?

这是我拥有的示例数据集:

http://img.mukewang.com/60c01510000165da07600526.jpg

这是我的代码:


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'


慕的地6264312
浏览 278回答 2
2回答

白衣染霜花

Tarmo R 的评论是正确的。查看您的数据,它以 CR(计算机放射成像)为模态,这是一张图片,因为它基本上是数字 X 射线。因此它永远不会有 SliceThickness 属性。在这种情况下,您可以立即获得一个包含像素数据的 numpy 数组:image_pixel_data = RefDs.pixel_array

扬帆大鱼

这对我有用:RefDs.pixel_array它将图像直接转换为 numpy 数组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python