我正在尝试使用Python对DICOM格式的CT图像进行分割任务。
主要问题是,当我尝试使用pydicom库读取DICOM文件(https://www.dicomlibrary.com/meddream/md5/index.html?study=1.2.826.0.1.3680043.8.1055.1.20111102150758591.92402465.76095170)并使用属性显示图像时,得到的图像比原始图像质量差得多(请参见下面的代码和截图)。
1.像素数组属性代表什么?我看到它的取值范围在[0,2250]之间。
观察结果:
我也尝试通过乘以斜率并加上偏差来获取Hounsfield单位(HU)值,如下所示:
可视化方面的结果与从pixel_array中获取原始值的结果几乎相同。此外,数值范围在[-1000, 1250]之间(考虑到HU通常在-1000和1000之间,我认为这是不错的)。
主要问题是,当我尝试使用pydicom库读取DICOM文件(https://www.dicomlibrary.com/meddream/md5/index.html?study=1.2.826.0.1.3680043.8.1055.1.20111102150758591.92402465.76095170)并使用属性显示图像时,得到的图像比原始图像质量差得多(请参见下面的代码和截图)。
dicom_file = pydicom.read_file('Anonymized20191102.dcm')
plt.imshow(dicom_file.pixel_array, cmap='gray')
plt.show()
我的问题是为了更好地理解问题:1.像素数组属性代表什么?我看到它的取值范围在[0,2250]之间。
观察结果:
我也尝试通过乘以斜率并加上偏差来获取Hounsfield单位(HU)值,如下所示:
def convert_to_hu(dicom_file):
bias = dicom_file.RescaleIntercept
slope = dicom_file.RescaleSlope
pixel_values = dicom_file.pixel_array
new_pixel_values = (pixel_values * slope) + bias
return new_pixel_values
hu_pixels = convert_to_hu(dicom_file)
plt.imshow(hu_pixels, cmap='gray')
plt.show()
可视化方面的结果与从pixel_array中获取原始值的结果几乎相同。此外,数值范围在[-1000, 1250]之间(考虑到HU通常在-1000和1000之间,我认为这是不错的)。
convert input.dcm output.jpg
。 - Mark Setchell