当前位置: 首页 > 面试题库 >

如何使用dcm4che-3.2.1将JPG图像转换为DICOM文件?

樊运乾
2023-03-14
问题内容

我可以设置属性并创建dicom文件,但是不能将图像写入dicom文件吗?


问题答案:

我已经尝试过使用拥有的图像并且它可以工作,但是我希望它不适用于RGB图像。像这样的东西

    BufferedImage jpg = ImageIO.read(new File("myjpg.jpg"));

    //Convert the image to a byte array 
    DataBufferUShort buff = (DataBufferUShort) jpg.getData().getDataBuffer();
    short[] data = buff.getData();
    ByteBuffer byteBuf = ByteBuffer.allocate(2*data.length);
    int i = 0;
    while (data.length > i) {
        byteBuf.putShort(data[i]);
        i++;
    }

    //Copy a header 
    DicomInputStream dis = new DicomInputStream(new File("fileToCopyheaderFrom.dcm"));
    Attributes meta = dis.readFileMetaInformation();
    Attributes attribs = dis.readDataset(-1, Tag.PixelData);
    dis.close();

    //Change the rows and columns
    attribs.setInt(Tag.Rows, VR.US, jpg.getHeight());
    attribs.setInt(Tag.Columns, VR.US, jpg.getWidth());
    System.out.println(byteBuf.array().length);
    //Attributes attribs = new Attributes();

    //Write the file
    attribs.setBytes(Tag.PixelData, VR.OW, byteBuf.array());
    DicomOutputStream dcmo = new DicomOutputStream(new File("myDicom.dcm"));
    dcmo.writeFileMetaInformation(meta);
    attribs.writeTo(dcmo);
    dcmo.close();

编辑1

我假设您的图片在这里有一个无符号的短数据缓冲区。

DataBufferUShort buff = (DataBufferUShort) jpg.getData().getDataBuffer();

要处理其他数据缓冲区,应检查type,相应地进行强制转换,然后转换为字节数组。对于字节缓冲区,应该很容易

DataBufferByte buff = (DataBufferByte) jpg.getData().getDataBuffer();

然后

buff.getData(numOfBank)

numOfBank您的图片在哪里0

应该返回一个字节数组



 类似资料:
  • 问题内容: 如何使用Java将Dicom文件(.dcm)转换为jpeg图像?这是我的代码: 我在运行项目时遇到以下错误 请帮助并提前感谢 问题答案: 这是使用dcm4che 2将DICOM转换为JPEG的链接 以下是我的代码,效果很好,我将其与导入一起放置,因此可能用完了。 用于运行它的罐子 dcm4che-imageio-2.0.28.jar dcm4che-image-2.0.28.jar j

  • 问题内容: 我环顾四周,阅读文档,没有找到任何方法或解决方案,所以我在这里问。是否有可用的软件包可用于使用Python将JPG图像转换为PNG图像? 问题答案: 为此,您始终可以使用Python图像库(PIL)。可能还会有其他包/库,但是我之前曾用过它来在格式之间进行转换。 这适用于Windows下的Python 2.7(适用于Python 2.7的Python Imaging Library 1

  • 本文向大家介绍python 将dicom图片转换成jpg图片的实例,包括了python 将dicom图片转换成jpg图片的实例的使用技巧和注意事项,需要的朋友参考一下 主要原理:调整dicom的窗宽,使之各个像素点上的灰度值缩放至[0,255]范围内。 使用到的python库:SimpleITK 下面是一个将dicom(.dcm)图片转换成jpg图片的demo: 以上这篇python 将dicom

  • 我正在尝试在一个新的DICOM项目中使用dcm4che(最近的版本2.0.29)。我在尝试将DICOM文件转换为JPEG时出现以下错误。我找不到包含com.sun.medialib.codec.jpeg.decoder类的jar文件。谁能给我一个主意在哪能找到它? 这里是我的代码: 和控制台输出:

  • 我试图从我的python GUI脚本中创建一个可执行文件,该脚本使用tkinter显示单个图像。 我的目标是得到的图像和可执行文件是一个文件与中的选项。 不幸的是,这是不工作,我需要通过图像文件在相同的文件夹作为最终可执行的工作。有什么解决办法吗?

  • 问题内容: 使用PHP将jpg图像转换为gif,png和bmp格式的可能重复项 我有一个PHP表单,该表单允许图像上传和检查以确保图像有效。 但是,我希望所有格式(PNG,JPG,JPEG和GIF)最终在提交后都是PNG。 我该怎么做呢? 问题答案: 然后,您只需要。实际上,它几乎变成了单线: 您将使用文件名,并且显然使用不同的输出文件名。但是图像格式探测本身将变得多余。