2 回答

TA貢獻1886條經驗 獲得超2個贊
還有另一種使用 OpenCV 和 pydicom 庫將 Dicom 圖像轉換為 JPEG 或 PNG 格式的有效方法。下面的代碼在一次運行中將所有 dicom 圖像集轉換為 jpeg/png(使用 for 循環)。
import pydicom as dicom
import os
import cv2
# make it True if you want in PNG format
PNG = False
# Specify the .dcm folder path
folder_path = "/Image"
# Specify the output .jpg/png folder path
jpg_folder_path = "/JPGImage"
images_path = os.listdir(folder_path)
for n, image in enumerate(sorted(images_path)):
print(os.path.join(folder_path, image))
ds = dicom.dcmread(os.path.join(folder_path, image), force=True)
ds.file_meta.TransferSyntaxUID = dicom.uid.ImplicitVRLittleEndian
pixel_array_numpy = ds.pixel_array
if PNG == False:
image = image.replace('.dcm', '.jpg')
else:
image = image.replace('.dcm', '.png')
pixel_array_numpy2 = cv2.flip(pixel_array_numpy, 0)
cv2.imwrite(os.path.join(jpg_folder_path, image), pixel_array_numpy2)

TA貢獻1780條經驗 獲得超1個贊
丟失信息的問題取決于像素深度,而不是圖像壓縮。您的 DICOM 圖像可能每像素大約 11 位(從 -1024 到 1023),甚至可能更多。您無需設置強度窗口即可將其轉換為 8 位圖像。
這意味著值 -1024 的原始像素變為黑色,+1023 的像素變為白色,但圖像最重要的部分,從 -100 到 +300 左右變為平均灰色。如果你對肺感興趣,那么重要的值就低,如果你想看到骨頭,那么它們就更高等等。最重要的是,你不能在單個 png/jpg/bmp 圖像上看到 DICOM 圖像的所有部分。您需要一個特殊的查看器,它允許設置灰度級??梢蕴幚砣袼厣疃鹊淖畛R姷姆轻t學格式是 TIFF,但您仍然需要一個特殊的查看器。
添加回答
舉報