3
我尝试访问DICOM文件的RGB未知压缩(也许没有)的像素阵列。提取灰度像素数组工作得很好。如何使用pydicom从DICOM文件访问RGB像素阵列?
但是,使用
import dicom
import numpy as np
data_set = dicom.read_file(path)
pixel_array = data_set.pixel_array
size_of_array = pixel_array.shape
if len(size_of_array) == 3:
chanR = pixel_array[0][0:size_of_array[1], 0:size_of_array[2]]
chanG = pixel_array[1][0:size_of_array[1], 0:size_of_array[2]]
chanB = pixel_array[2][0:size_of_array[1], 0:size_of_array[2]]
output_array = (0.299 ** chanR) + (0.587 ** chanG) + (0.114 ** chanB)
与目标,将它转化成一个共同的灰度阵列。不幸的是结果数组output_array
没有包含正确的像素数据。内容不是虚假缩放的,它们在空间上受到干扰。问题在哪里?
也许它BGR而不是RGB? – Divakar
不,相应的DICOM标签显示“RGB”,其他模式是“OT”,其患者报告转换为图像格式。 结果图像的分辨率和图像大小确实很合适。但是每个频道似乎只包含部分空间信息。 –
什么是'pixel_array.shape'? –