如何将DICOM图像保存为JPEG而不会丢失信息

时间:2016-09-19 15:59:27

标签: matlab image-processing dicom

我有一个dicom图像,当我在MATLAB中打开它时,它是这样的:

enter image description here

然而,当我通过dicomviewer看到它时,就像这样:

enter image description here

如何在不因压缩过程而丢失.jpeg格式的信息的情况下保存这些dicom图像? 我想保存图像,以便我可以从相应的dicom图像中检索相同的信息。 有可能吗?

1 个答案:

答案 0 :(得分: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;