我试图将bmp图像转换为dicom,但似乎很难转换 .
使用jpg2dcm实用程序我已成功将jpeg文件转换为dicom但是对于bmp和其他格式我需要解决方案 .
请指导我转换 .
首先,您需要将图像格式转换为JPEG格式!这可以使用 ImageIO 来完成 . 例如 .
ImageIO
import java.awt.*; import java.awt.image.BufferedImage; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.*; import java.io.*; class ConvertPngToJpeg { public static void main(String[] args) throws Exception { URL url = new URL("http://i.stack.imgur.com/gJmeJ.png"); final BufferedImage image = ImageIO.read(url); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "jpg", baos); final BufferedImage imageJpeg = ImageIO.read( new ByteArrayInputStream(baos.toByteArray())); Runnable r = new Runnable() { @Override public void run() { JPanel gui = new JPanel(new GridLayout()); gui.add(new JLabel(new ImageIcon(image))); gui.add(new JLabel(new ImageIcon(imageJpeg))); JOptionPane.showMessageDialog(null, gui); } }; // Swing GUIs should be created and updated on the EDT // http://docs.oracle.com/javase/tutorial/uiswing/concurrency SwingUtilities.invokeLater(r); } }
看看dicom4j或dcm4che,后者更强大,并在Java开源Dicom服务器“DCM4CHEE”中使用 . 这些框架提供了DICOM标准的类模型,以便创建首选IOD的实例 . 因此,您可以使用这些API构建标头和图像数据部件,并使用它们将具体的dicom对象模型实例保存到标准的符合DICOM文件中 .
它们提供了通过为它们分配属性 - 值对来创建dicom对象的方法 . 这些框架支持您创建序列并提供DICOM数据和通信模型的类型安全类 .
当然,它们提供了特殊的图像类型,使您可以分配像素数据及其所有相关属性,以便以适当的方式存储位图信息 .
UPDATE
认为这是你想要的工具 . 但是看看文档,并不是所有的bmp文件都受支持 . http://support.dcmtk.org/docs/img2dcm.html希望它有所帮助 .
您可以直接将BMP文件转换为Dicom文件,而不会丢失任何类型的信息 . 不要将图像转换为JPG,因为您不必要地使用有损格式 .
看看dcmtk工具包中的img2dcm .
3 回答
首先,您需要将图像格式转换为JPEG格式!这可以使用
ImageIO
来完成 . 例如 .看看dicom4j或dcm4che,后者更强大,并在Java开源Dicom服务器“DCM4CHEE”中使用 . 这些框架提供了DICOM标准的类模型,以便创建首选IOD的实例 . 因此,您可以使用这些API构建标头和图像数据部件,并使用它们将具体的dicom对象模型实例保存到标准的符合DICOM文件中 .
它们提供了通过为它们分配属性 - 值对来创建dicom对象的方法 . 这些框架支持您创建序列并提供DICOM数据和通信模型的类型安全类 .
当然,它们提供了特殊的图像类型,使您可以分配像素数据及其所有相关属性,以便以适当的方式存储位图信息 .
UPDATE
认为这是你想要的工具 . 但是看看文档,并不是所有的bmp文件都受支持 . http://support.dcmtk.org/docs/img2dcm.html希望它有所帮助 .
您可以直接将BMP文件转换为Dicom文件,而不会丢失任何类型的信息 . 不要将图像转换为JPG,因为您不必要地使用有损格式 .
看看dcmtk工具包中的img2dcm .