我有一个dicom图像,当我在MATLAB中打开它时,它是这样的:
然而,当我通过dicomviewer看到它时,就像这样:
如何在不因压缩过程而丢失.jpeg格式的信息的情况下保存这些dicom图像? 我想保存图像,以便我可以从相应的dicom图像中检索相同的信息。 有可能吗?
答案 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;