如何屏蔽 DICOM 图像?

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

我只想分析从头部 CT 中提取的“骨骼”区域。

为此,我读取了 DICOM 文件和像素值小于 200 的屏蔽区域,并填入“0”。

但是,因为“0”在DICOM图像中是“水”的意思,所以我不知道这种方式是否合适。

import pydicom
import numpy as np

dcm_img = pydicom.dcmread("0000200.dcm")
dcm_arr = dcm_img.pixel_array
masked_arr = np.where(dcm_arr < 200, 0, dcm_arr)
python mask dicom pydicom
1个回答
0
投票

从您的问题中您不太清楚您希望如何准确分析您的 CT 图像中的骨骼区域,因此很难提供量身定制的答案。不过,一般来说,我会 not 将图像中的值设置为零,因为——正如你所说的——CT 图像中的每个值都与特定的组织特性相关联。

相反,我可能会使用 masked 数组,屏蔽掉所有低于骨骼阈值的值,如下所示:

from numpy.ma import masked_array
...
masked_arr = masked_array(data=dcm_arr, mask=dcm_arr < 200)

或者,我可能会简单地创建一个布尔掩码,保留所有高于骨骼阈值的值(例如

is_bone = dcm_arr >= 200
),稍后我将在分析中使用它来过滤值。

在任何情况下,我都会尝试将掩码值和实际 CT 体素值分开。

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