在上面的例子中工作,但會導致許多工具抱怨DICOMs,他們甚至不能在所有使用ITK/SimpleITK作爲堆棧讀。我發現從numpy製作DICOM的最好方法是使用SimpleITK工具並逐片生成DICOM。一個基本的例子(https://github.com/zivy/SimpleITK/blob/8e94451e4c0e90bcc6a1ffdd7bc3d56c81f58d80/Examples/DicomSeriesReadModifyWrite/DicomSeriesReadModifySeriesWrite.py)示出如何在一個堆棧加載,執行變換,然後重新保存該文件,但可以很容易地通過使用最終在輸出圖像的標籤
import SimpleITK as sitk
filtered_image = sitk.GetImageFromArray(my_numpy_array)
數量進行修改是相當大的所以手動創建它們都很乏味。此外,SimpleITK支持8,16,32位圖像以及RGB,因此比在pydicom中更容易。
(0008, 0008) Image Type CS: ['DERIVED', 'SECONDARY']
(0008, 0016) SOP Class UID UI: Secondary Capture Image Storage
(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.2.1125.1.35596048796922805578234000521866725
(0008, 0020) Study Date DA: '20170803'
(0008, 0021) Series Date DA: '20170803'
(0008, 0023) Content Date DA: 0
(0008, 0030) Study Time TM: '080429.171808'
(0008, 0031) Series Time TM: '080429'
(0008, 0033) Content Time TM: 0
(0008, 0050) Accession Number SH: ''
(0008, 0060) Modality CS: 'OT'
(0008, 0064) Conversion Type CS: 'WSD'
(0008, 0090) Referring Physician's Name PN: ''
(0010, 0010) Patient's Name PN: ''
(0010, 0020) Patient ID LO: ''
(0010, 0030) Patient's Birth Date DA: ''
(0010, 0040) Patient's Sex CS: ''
(0018, 2010) Nominal Scanned Pixel Spacing DS: ['1', '3']
(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.2.1125.1.33389357207068897066210100430826006
(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.2.1125.1.51488923827429438625199681257282809
(0020, 0010) Study ID SH: ''
(0020, 0011) Series Number IS: ''
(0020, 0013) Instance Number IS: ''
(0020, 0020) Patient Orientation CS: ''
(0020, 0052) Frame of Reference UID UI: 1.2.826.0.1.3680043.2.1125.1.35696880630664441938326682384062489
(0028, 0002) Samples per Pixel US: 1
(0028, 0004) Photometric Interpretation CS: 'MONOCHROME2'
(0028, 0010) Rows US: 40
(0028, 0011) Columns US: 50
(0028, 0100) Bits Allocated US: 32
(0028, 0101) Bits Stored US: 32
(0028, 0102) High Bit US: 31
(0028, 0103) Pixel Representation US: 1
(0028, 1052) Rescale Intercept DS: "0"
(0028, 1053) Rescale Slope DS: "1"
(0028, 1054) Rescale Type LO: 'US'
(7fe0, 0010) Pixel Data OW: Array of 8000 bytes
您的'write_dicom'函數是否包含比您在此顯示的操作更多的操作?否則,你似乎只創建一個只有像素數據的文件,而這不會是一個有效的DICOM文件。您需要輸入學習,系列,實例UID:s,圖像形態,患者數據等,才能使文件符合DICOM標準。 –
您能否提供文件中DICOM標題信息的轉儲(當然有患者姓名和此類編輯)?以下是華盛頓大學非常實用(免費)工具的鏈接,可讓您查看DICOM文件的這些信息:http://nrg.wustl.edu/software/dicom-browser/ – Matt
GDCM的FAQ包含一些關於爲什麼創建從隨機光柵圖像格式的法律DICOM是困難的:http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=General_questions#How_do_I_convert_my_raster_image_format_X_into_DICOM_.3F – timday