Yay*_*tcm 3 java dicom dcm4che
DICOM文件包含一系列CAT扫描图像.Java中是否有DICOM库的实现可以读取文件并提取存储在其中的图像?我想将这些图像存储到BufferedImage数据类型中.
您可以使用dcm4che-3.3.X.这个神奇框架的新改写带有完全集成的jai-imageio库,您不再需要下载和配置它了.
读取Dicom文件的元信息是创建一个org.dcm4che3.io.DicomInputStreamfrom dicom文件并使用实现org.dcm4che3.io.DicomInputHandler接口的类解析流的一个主要部分.您必须实现此方法:
void readValue(DicomInputStream dis, Attributes attrs) throws IOException;
void readValue(DicomInputStream dis, Sequence seq) throws IOException;
void readValue(DicomInputStream dis, Fragments frags) throws IOException;
void startDataset(DicomInputStream dis) throws IOException;
void endDataset(DicomInputStream dis) throws IOException;
Run Code Online (Sandbox Code Playgroud)
startDatasetendDataset流打开/关闭时启动和方法.在找到属性,序列或片段时调用read方法.您可以在dcm4che/dcm4che-tool/dcm4che-tool-dcmdump中看到完整的示例实现.
要阅读DICOM图像到java.awt.image.BufferedImage你需要得到一个javax.imageio.stream.ImageInputStream从DICOM文件这样javax.imageio.ImageIO.createImageInputStream(dicomFile)哪里dicomFile是一个java.io.File.
如果您想知道这个简单代码是如何工作的,那是因为dcm4che-imageio插件.
您再次可以在dcm4che/dcm4che-tool/dcm4che-tool-dcm2jpg中看到完整的示例实现.
显然,您需要一个正确配置的maven,pom.xml其中包含您需要的所有依赖项,至少:
<dependencies>
<dependency>
<groupId>org.dcm4che</groupId>
<artifactId>dcm4che-imageio</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.dcm4che</groupId>
<artifactId>dcm4che-imageio-rle</artifactId>
<version>3.3.7</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.sun.media</groupId>
<artifactId>jai_imageio</artifactId>
<version>1.2-pre-dr-b04</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.dcm4che.tool</groupId>
<artifactId>dcm4che-tool-common</artifactId>
<version>3.3.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
还有dcm4che maven repo
<repositories>
<repository>
<id>www.dcm4che.org</id>
<name>dcm4che Repository</name>
<url>http://www.dcm4che.org/maven2</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.