2016-09-19 168 views
1

我有一個DICOM圖像,當我在MATLAB打開它,它是這樣的:如何DICOM圖像保存爲JPEG格式,而不會丟失信息

enter image description here

然而,當我看到通過dicomviewer就是這個樣子:

enter image description here

我如何保存這些DICOM圖像沒有失去他們的.jpeg格式的信息,由於壓縮過程? 我想保存圖像,以便我可以檢索相同的信息,因爲我從相應的dicom圖像中獲取。 這可能嗎?

+0

執行內自動縮放顯示的灰度值的數據在MATLAB上,這是目前不可用(黑色圖像)? – Jeon

+0

您在Matlab中看到的圖像顯示全部灰度值。如果您調整對比度(例如通過使用imshow(圖像,[])),那麼您將看到與使用dicom查看器相同的結果 – Dave

回答

10

DICOM圖像數據通常存儲爲16位無符號整數,因此您需要確保在保存之前將圖像保存在uint16矩陣中,以便MATLAB知道將其保存。另外,對於某些圖像格式,MATLAB要求我們明確說明比特深度。

% Save as a 16-bit Baseline JPEG with the highest quality 
imwrite(uint16(data), 'image.jpg', 'Quality', 100, 'BitDepth', 16); 

% Save as a 16-bit Lossless JPEG 
imwrite(uint16(data), 'image.jpg', 'Mode', 'lossless', 'BitDepth', 16) 

% Save as a 16-bit JPEG 2000 Image 
imwrite(uint16(data), 'image.jp2', 'Mode', 'lossless') 

如果因爲任何特定原因不需要JPEG,我會推薦一個PNG(無損)。

% Save as 16-bit PNG 
imwrite(uint16(data), 'image.png') 

查看可用16位格式的完整列表here

對於MATLAB可視化,可以指定所述第二輸入到imshow(或使用imagesc)將圖像要看到相同的圖像

imshow(data, []) % or imagesc(data); axis image; 
+0

您能澄清一下您的16位JPEG格式嗎? JPEGXR? JPEG2000? –

+1

@MarkSetchell我已經添加了一個文檔鏈接,它解釋了更多的細節以及添加了創建無損和JPEG2000圖像的命令。 – Suever