Dicom全称是医学数字图像与通讯,这里讲java解析diocm格式文件变成jpg示例。 这里的代码只能解析普通的dicom文件成jpg图片,对于压缩的dicom文件是没有办法解析的! 先看效果: 解析到本地目录:
解析到本地电脑:
ImageJ解析代码很简单,但是要导入ImageJ的jar包。 从第一个图片可以看到lib中导入了ij.jar,这就是ImageJ的jar包,下面那个zip是source文件,这样就可以看到ImageJ里面的源码。
下面是调用ImageJ的代码:
import ij.plugin.DICOM; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; /** * dicom文件java解析,生成图片 * 不过这里不能解析压缩的dicom文件 */ public class ImageDemo { public static void main(String args[]) { // create("test1.dcm"); //在本地目录生成test1.dcm.jpg图片文件 create2("D:\\dicom\\test3.dcm"); //在电脑dicom文件夹下生成test1.dcm.jpg图片文件 } /** * 根据dicom文件生成jpg图片 * <p/> * 这里输入的是image文件夹的dicom文件名字, * 运行即可得到一个jpg图片,显示的是dicom里面的图形 */ private static void create(String fileName) { try { String projectPath = System.getProperty("user.dir"); //Check class DICOM DICOM dicom = new DICOM(); String imagePath = projectPath + "\\image\\" + fileName; dicom.run(imagePath); BufferedImage bi = (BufferedImage) dicom.getImage(); int width = bi.getWidth(); int height = dicom.getHeight(); System.out.println("width: " + width + "\n" + "height: " + height); imagePath = projectPath + "\\image\\" + fileName + ".jpg"; ImageIO.write(bi, "jpg", new File(imagePath)); System.out.println("Hehe,Game over!!!"); } catch (Exception e) { System.out.println("错误" + e.getMessage()); } } /** * 输入一个dicom文件的绝对路径和名字 * 获取一个jpg文件 */ private static void create2(String filePath) { try { DICOM dicom = new DICOM(); dicom.run(filePath); BufferedImage bi = (BufferedImage) dicom.getImage(); int width = bi.getWidth(); int height = dicom.getHeight(); System.out.println("width: " + width + "\n" + "height: " + height); String imagePath = filePath + ".jpg"; ImageIO.write(bi, "jpg", new File(imagePath)); System.out.println("Hehe,Game over!!!"); } catch (Exception e) { System.out.println("错误" + e.getMessage()); } } }ImageJ的jar包和dicom文件可以看我的项目。 我的项目资源地址:https://github.com/liwenzhi/ImageJDemo
其中我的dicom文件test2.dcm和test5.dcm是压缩的dicom文件,不能解析成jpg,运行代码会报空! 其他dicom文件都是能生成jpg图片的。
dicom传输的相关知识也只能介绍到这里,上面很多知识还没有理解透彻,只是把这些知识罗列出来,给大家参考一下!
http://blog.csdn.net/wenzhi20102321/article/details/75127362
http://blog.csdn.net/wenzhi20102321/article/details/75127140
http://blog.csdn.net/wenzhi20102321/article/details/75127101
http://blog.csdn.net/wenzhi20102321/article/details/75040225
http://blog.csdn.net/wenzhi20102321/article/details/74995084
前面5个是我自己写的,后面是一些我自己看过的相关资料:
http://blog.csdn.net/leaf6094189/article/details/8510325
http://blog.csdn.net/Kerrigeng/article/details/60866656
http://blog.csdn.net/Kerrigeng/article/details/53942846
http://blog.csdn.net/Kerrigeng/article/details/62215647
http://www.cnblogs.com/stephen2014/p/4579443.html
http://blog.csdn.net/zssureqh/article/category/1389985
http://download.csdn.net/detail/wenzhi20102321/9897014
http://download.csdn.net/detail/wenzhi20102321/9895616