Matlab将DCM转换为BMP

时间:2013-11-09 05:05:39

标签: matlab image-processing

如何将.dcm(dicom)图片转换为.bmp格式。

我试过这个,但它不适合我。

000000.dcm是医学肺部图像(大小6 MB)

 dcmimg = dicomread('000000.dcm');
>> imshow(dcmimg);

dcmimg

中读取DCM图片
imwrite(dcmimg, 'myfile.bmp');

获取错误:

Error using writebmp (line 15)
Expected X to be one of these types:

  logical, uint8, single, double

Instead its type was uint16.

Error in imwrite (line 477)
        feval(fmt_s.write, data, map, filename, paramPairs{:});

我不理解这些错误,出了什么问题。帮助我,谢谢你。

1 个答案:

答案 0 :(得分:1)

Dicom使用无符号16位整数。写入.bmp文件的函数需要不同的数据类型,如错误消息所述。这表明以下内容应该有效:

imwrite(double(dcmimg), 'myFile.bmp');

通过将数据类型显式转换为double,您应该摆脱错误。实际上single可能就够了......它也可以代表16位整数而不会损失精度。