我正在將 DICOM 格式的手部 X 射線轉換為 PNG 格式。下面的代碼執行此操作:
import os
import cv2
import pydicom
import numpy as np
from PIL import Image
inputdir = "P:/BoneDataset/DICOM-File/0-RefinedDICOM/"
outdir = 'P:/BoneDataset/DICOM-File/1-ConvertedPics/'
test_list = [f for f in os.listdir(inputdir)]
for f in test_list[:10]:
ds = pydicom.read_file(inputdir f) # read dicom image
img = ds.pixel_array # get image array
scaled_img = (np.maximum(img,0) / img.max()) * 255.0
img = scaled_img.astype(np.uint8)
cv2.imwrite(outdir f.replace('.dcm','.png'),img)
下圖顯示了一些結果(輸入 (DICOM) --> 輸出 (PNG)):

上述示例代碼的輸出:

輸出img = lin_stretch_img(img, 0.01, 99.99)(可能會給出更好的結果):

更新
樣本 DICOM 影像的極性被反轉。
最小值旨在顯示為白色,最大值顯示為黑色。
為了校正極性,我們可以執行img = 255-img(轉換為 后uint8)。
檢查極性是否反轉:
根據
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514735.html
