2011-04-14 80 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