2011-04-14 83 views
2

我正在使用GDCM读取DICOM图像。有没有简单的方法来读取GDCM的dicom文件,然后将其转换为Java BufferedImage?到目前为止,我有以下内容将GDCM图像转换为Java BufferedImage

String filename = "C:\\test.dcm"; 
    gdcm.ImageReader reader = new gdcm.ImageReader(); 
    reader.SetFileName(filename); 
    reader.Read(); 
    gdcm.Image image = reader.GetImage(); 
    BufferedImage bufferedImage = new BufferedImage((int)image.GetRows(, (int)image.GetColumns(), BufferedImage.TYPE_USHORT_GRAY); 
    // How do I populate bufferedImage?; 

任何人都可以告诉我,如果我在正确的轨道上,以及如何完成此示例。

感谢

回答

1

可以使用检索像素的原始缓冲区:

byte[] str1 = new byte[ image.GetBufferLength()]; 
    image.GetBuffer(str1); 

看到完整的例子:

甚至

+0

对于我来说,image.GetBuffer(STR1)被抛出异常。具体来说,image.GetBuffer()需要gdcm.SWIGTYPE_p_ 其中 = short,float,byte,double等。如何将gdcm.SWIGTYPE_p_ 转换为Java数组? – Jon 2011-04-14 14:39:14

+0

链接已死,你可以在http://gdcm.sourceforge.net/html/ScanDirectory_8java-example.html找到完整的示例。 – Arash 2015-12-01 04:00:02