以PNG格式保存DICOM图像

时间:2013-06-21 19:36:13

标签: matlab dicom

我有dicom图片,我在matlab中读到:

I=dicomread('xyz.dcm');

在显示它时,我使用了以下命令:

imshow(I,[])

我想问的是,如何通过imwrite来编写,以便我使用上面的imshow命令获取图像?

我试过这个:

imwrite(I,'xyz.png','png');

但是,获得深色图片。

有关于此的任何想法吗?

感谢。

3 个答案:

答案 0 :(得分:2)

似乎dicom图像的深度为16位,大于通常的8位深度 要确认这确实是案例类型

>> class( I )

我希望输出为uint16 如果是这样,请尝试:

imwrite( I, 'xyz.png', 'bitdepth', 16 );

答案 1 :(得分:1)

当您阅读图像时,也可以获取色彩图

[I, map]=dicomread('xyz.dcm');

现在当你保存它时,也要涂写色彩图。

imwrite(I,map,'xyz.png','png');

顺便说一下,通常不需要最后一个png。 MATLAB将看到.png扩展名并知道将其保存为png。

答案 2 :(得分:1)

嘿,我有同样的问题,似乎其中一个解决方案非常简单。 只需检查您是否将字符串作为目标文件的文件名传递。

我正在传递fullfile函数的输出(这个输出一个单元格)。 imwrite函数包含输入(vargins)并查找具有char类型的第一个变量会发生什么。它使用此索引查找指定数据类型的参数,从而定义颜色映射。如果您的文件路径是一个单元格,它将获得错误的索引并输出奇怪的错误。

我希望这会有所帮助