4 回答
TA贡献1804条经验 获得超2个赞
一些 DICOM 数据集需要对原始像素强度进行窗口中心/宽度重新缩放(通过VOI LUT 模块中的 (0028,1050)窗口中心和 (0028,1051)窗口宽度元素),以便重现它们“查看”的方式.
pydicom有一个函数apply_voi_lut()用于应用此窗口:
from pydicom import dcmread
from pydicom.pixel_data_handlers.util import apply_voi_lut
ds = dcmread(file)
if 'WindowWidth' in ds:
print('Dataset has windowing')
windowed = apply_voi_lut(ds.pixel_array, ds)
# Add code for rescaling to 8-bit...
根据数据集类型,您可能需要事先使用apply_modality_lut()。
TA贡献1796条经验 获得超10个赞
分析.dcm特定图像时,图像似乎具有一定范围的亮度和对比度。在您的情况下它可能看起来有点亮的原因是您只选择了图像的特定视图。
为了使图像更暗,看起来你只需要增加你的分母值:
threshold = 500 # Adjust as needed
image_2d_scaled = (np.maximum(image_2d, 0) / (np.amax(image_2d) + threshold)) * 255.0
这将确保某些像素不会太亮。
TA贡献1804条经验 获得超3个赞
那么我也有同样的问题,你可以使用Scikit Image library 中的exposure.equalize_adapthist()。
filename = "sample.dcm"
ds = pydicom.read_file(filename)
image = ds.pixel_array
image = exposure.equalize_adapthist(image)
cv2.imshow("dicom", image)
cv2.waitKey(0)
TA贡献1744条经验 获得超4个赞
你可以试试下面的方法
image = image - np.min(image)
image = (image/np.max(image))*255
在这种方法中,您在从 dicom 转换为 png/jpg 时会丢失最少的信息
添加回答
举报