重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前言
创新互联是一家专注于网站设计制作、成都网站建设与策划设计,西山网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:西山等地区。西山做网站价格咨询:028-86922220在最近的一个项目需要用JAVA来解析DICOM图片,DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用,在实现中遇到一些问题下面做一些记录。
首先找一个*.dcm文件。用编辑器打开可以看到如下界面。我是用的编辑器是UltraEdit
红字标注的是字节码的标注,前面8行代码是文件的头信息一般没用。从第九行开始的四个十六进制数“44,49,43,4D”是很重要的。用ASCll码解释就是DICM。表示这是一个DICOM文件,这四个16进制数如果丢失或损坏,这个DICOM图片就无法打开了。
下面用java来读取这些十六进制数
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class My_DICOM { static FileInputStream input; static byte[] b; public static void main(String[] args) { try { File file = new File("G:/zzz.dcm"); input = new FileInputStream(file); b = new byte[(int) file.length()]; input.read(b); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } init(); } public static void init(){ System.out.println("b.length="+b.length); for (int i =0;i<10000;i++) { System.out.print(Integer.toHexString(b[i])); if (i%16==15) { System.out.println(); }else{ System.out.print(", "); } } } }