医学图像数据格式和格式转换

医学图像数据格式和格式转换

 

 

由于最近碰到了数据格式的问题,重建不出效果很是头疼,所以简单总结下数据格式相关内容,我的主要开发包是ITK+VTK+QT,所以要说的格式内容基本和VTK相关。

 

1.     Fileformats(几种数据格式介绍

 

Images

 

    dcm (DICOM Image,only Read): DICOM的 全 称 是 Digital Imaging and Communications in Medicine (DICOM),它是用于处理,存储,打印,和在医学成像发送信息的标准 ,它包括文件格式定义和一个网络通信协议。至于文件格式定义,可以参考其他资料。

 

mha/mhd(Meta Image): 它指定表示该元信息中关于像素数据的报头的一个标准化的方法;

 

 

vti (VTK XML Image Data): 可视化工具包(VTK)的图像格式;带有嵌入二进制数据的XML语法;非常灵活;可以代表在同一文件的多个标量/矢量/张量数据;不支持图像方向(尽管它可以包括表示方向矩阵的自定义数据。注意:是image data!

 

Surfaces

 

vtp (VTK XML): 可视化工具包(VTK)的表示表面的数据;带有嵌入二进制数据的XML语法; POLYDATA(VTP,在VTK的数据体系中就是:串行vtkPolyData(非结构化)

 

    stl (Stereolithography): STL(立体光刻)是一种文件格式,原产于通过3D系统创建的立体CAD软件。STL中也被称为标准的Tessellation语言。 STL文件描述三维物体的只是表面的几何形状没有颜色的任何声明,质地或其他常见的CAD模型属性。 STL的格式指定ASCII和二进制表示。二进制文件是比较常见的,因为他们更紧凑

 

Meshes

 

    vtu (VTK XML): 可视化工具包(VTK)为网格格式;带有嵌入二进制数据的XML语法; UnstructuredGrid(VTU)—在VTK的数据体系中就是:串行vtkUnstructuredGrid (非结构化)

 

    xda (libMesh, only Write): libMesh meshfiles consist of two sections, the header and the data. The header containsimportant size information. It defines the number of elements, number of nodes,etc… that are in the mesh. The data section contains the actual elementconnectivity, the nodal coordinates, and any boundary condition information

 

vtk: 可视化工具包(VTK)为网格格式;ASCII或二进制格式

 

具体可以参考:http://www.vmtk.org/documentation/getting-started.html

 

 

 

2.      Image formatconversion(图像格式转换)

 

我做的方向是点云重建这一块,刚刚起步,目前碰到的数据格式并不多。所以这里且当抛砖引玉好了。

 

1)     dicom格式到.vti格式:

 

Suppose youwant to write the image volume in vti format (the VTK XML format for images -it’s convenient because it’s internally gzip’d):

如果你装了VMTK,可以:

vmtkimagereader-f dicom -d dicom_directory_path --pipe vmtkimagewriter -ofile image_volume.vti

 

2)     polydata转到volumerepresentation (vtkImageData)

参考:http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataToImageData

里面附带了全部的源代码,编译后就可以运行的。

 

3)    Read vtp fileand write a ply file

 

参考:http://www.cmake.org/Wiki/VTK/Examples/Cxx/IO/ConvertFile

 

4)     一个开源包:gdcm2vtk(太强大了)

The gdcm2vtktakes as input any file supported by VTK (including DICOM file) and willgenerate as output a DICOM file.

http://manpages.ubuntu.com/manpages/oneiric/man1/gdcm2vtk.1.html

http://gdcm.sourceforge.net/html/gdcm2vtk.html

 

5)利用paraview软件(免费)

 

paraview支持的格式:

 

.boundary,.cas, .case, .cosmo, .cube, .csv, .dem, .d3plot, .e, .ex, .ex2v2, .exo, .exoii,.foam, .g, .gen, .gadget2, .hierarchy, .inp, .isdyna, .k, .mha, .mhd, .nc,.ncdf, .netcdf, .nhdr, .nrrd, .obj, .particles, .pdb, .pht, .ply, .png, .pop,.pvd, .pvti, .pvtk, .pvtp, .pvtr, .pvts, .pvtu, .raw, .res, .sesame, .sos,.spcth, .stl, .tec, .tiff, .tp, .vpc, .vrml, .vthb, .vti, .vtk, .vtm, .vtmb,.vtp, .vtr, .vts, .vtu, .wind, .wrl, .xdmf, .xmf, .xyz

 

还有一个好处就是这个软件是可视化的,有很多参数可以一目了然

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
LUNA16数据集是一个医学影像数据集,包含了用于肺癌检测的CT扫描影像。要将LUNA16数据集换为PNG格式,可以按照以下步骤进行: 1. 下载LUNA16数据集,包含了DICOM格式的CT扫描图像和CSV文件。 2. 安装Python的pydicom库,用于读取DICOM图像。 3. 编写Python脚本,读取DICOM图像并将其换为PNG格式。以下是一个示例脚本: ``` python import os import numpy as np import pydicom from PIL import Image # 设置数据集路径和输出路径 data_path = "path/to/LUNA16/data/" output_path = "path/to/output/folder/" # 读取CSV文件,获取需要换的图像ID列表 with open(os.path.join(data_path, "annotations.csv"), "r") as f: lines = f.readlines() ids = [line.split(",")[0] for line in lines[1:]] # 逐个读取DICOM图像换为PNG格式 for id in ids: # 读取DICOM图像 filename = os.path.join(data_path, "subset1", id + ".mhd") ds = pydicom.dcmread(filename) # 将DICOM图像换为numpy数组 img = ds.pixel_array # 将CT值归一化到0-255范围 img = (img - np.min(img)) / (np.max(img) - np.min(img)) * 255 img = img.astype(np.uint8) # 将numpy数组换为PIL图像 pil_img = Image.fromarray(img) # 保存为PNG格式 output_filename = os.path.join(output_path, id + ".png") pil_img.save(output_filename) ``` 4. 运行脚本,等待换完成。 需要注意的是,LUNA16数据集非常大,包含数千个图像文件,换过程可能比较耗时。建议使用GPU加速和多线程处理来提高换速度。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值