医学图像概述
引言
研究方向是医学图像分割,具体是肿瘤分割。文章记录一下学习的过程,整理一下碰到的问题和解决方案
文章内容为全网的收罗整理,博主方向为计算机方向,因此可能内容不全,望谅解!
医学图像成像技术
基础知识
CT(computed tomography,计算机断层扫描)
原理: CT 利用 X 射线穿过人体组织,根据不同组织对 X 射线的吸收程度不同,经过计算机处理生成人体 内部的横断面图像。
特点
成像速度快,适合急诊检查。
对骨骼、肺部、腹部等组织成像效果较好。
由于使用 X 射线,存在一定的辐射风险。
MRI(Magnetic Resonance Imaging,磁共振成像)
原理: MRI 利用强磁场和射频波激发人体内的氢原子核,检测其信号并通过计算机重建成像。
特点
无辐射,对人体更安全。
对软组织(如脑、脊髓、肌肉、韧带等)成像效果优于 CT。
成像时间较长,对患者配合度要求较高。
X射线(X-ray Imaging)
原理: 利用 X 射线穿透人体组织,根据组织密度的不同,产生影像。
特点:
成像速度快,成本低。
对骨骼和肺部成像效果好。
存在辐射风险。
超声成像(Ultrasound Imaging)
原理: 利用高频声波穿透人体组织,检测声波反射信号生成图像。
特点:
无辐射,对人体安全。
实时动态成像。
对软组织成像效果好,但对骨骼和气体不适用。
光学成像
原理: 利用光(如红外光、近红外光)与人体组织的相互作用生成图像。
特点:
无辐射,对人体安全。
适合浅表组织成像,如皮肤。
除了上面列举的外,还有一些成像技术,如MRI的拓展技术(fMRI、CMR、MRS)、内窥镜成像等不再一 一列举,读者可自行翻看相关资料。
医学图像格式
DICOM(Digital Imaging and Communications in Medicine)
- 定义:国际医学影像领域的金标准,由美国国家电气制造商协会(NEMA)制定。
- 核心特点:
- 数据整合:包含图像数据和元数据(患者信息、设备参数等)。
- 多模态支持:兼容 CT、MRI、超声、X 射线、PET 等。
- 网络传输协议:支持通过 DICOM 协议传输(如 PACS 系统)。
- 文件结构:
- 单文件对应单张图像(如 CT 的一个切片)。
- 复杂检查由多个 DICOM 文件组成。
- 优点:
- 标准化程度高,跨设备兼容性强。
- 支持三维重建和后处理。
- 缺点:
- 文件体积较大。
- 非医学软件难以直接读取。
- 适用场景:
- 医院影像存档与传输系统(PACS)。
- 临床诊断(如 OsiriX、RadiAnt)。
NIfTI(Neuroimaging Informatics Technology Initiative)
- 定义:专为神经影像设计的格式,常用于 fMRI、DTI 等研究。
- 核心特点:
- 四维数据支持:存储时间序列或三维空间数据。
- 坐标系统:包含空间方向信息(如 RAS 坐标系)。
- 扩展名:
.nii
(合并格式)或.hdr
/.img
(分离格式)。
- 优点:
- 简化神经影像处理流程。
- 支持复杂数学运算(如 SPM、FSL)。
- 缺点:
- 不存储患者隐私信息。
- 主要用于研究。
- 适用场景:
- 脑功能成像(fMRI)、弥散张量成像(DTI)。
MINC(Medical Imaging NetCDF)
- 定义:基于 NetCDF 的开源格式。
- 核心特点:
- 支持多维数据和动态数据。
- 适用场景:脑影像研究(如蒙特利尔神经研究所)。
NRRD(Nearly Raw Raster Data)
- 定义:轻量级格式,支持多维数据。
- 核心特点:
- 文本头文件(
.nrrd
) + 原始数据(.raw
)。
- 文本头文件(
- 优点:易于读写和跨平台处理。
- 适用场景:快速数据交换(如 ITK、VTK)。
MHD/RAW(MetaImage 格式)
- 定义:由 ITK 推广的格式。
- 核心特点:
.mhd
(元数据头文件) +.raw
(原始数据)。
- 适用场景:算法开发(如 3D Slicer)。
JPEG/PNG/BMP
- 定义:通用图像格式,非医学专用。
- 特点:
- 有损/无损压缩,无元数据。
- 适用场景:临床报告示意图、非诊断用途。
医学图像软件
3DSlicier(目前只会用这个)、DICOM VIEWER、小赛看看
用python处理医学图像数据
此处列举两种,DICOM和MHA格式
1.DICOM
**DICOM**只是一种格式,医学成像设备(如 CT、MRI、X 射线等)通过物理原理获取患者数据后,将数据标准化转化为DICOM格式。
对于CT和MRI,其成像原理不同,但都是通仪器探测信号,CT是X射线,MRI是磁场,然后在进行数据的采集,最后将投影或者空间数据转化为横断面图像。
DICOM文件:由图像数据+元数据绑定而成,标准DICOM文件(.dcm)
用python代码读取DICOM文件信息
import pydicom
def print_dicom_info(file_path):
# 读取DICOM文件
ds = pydicom.dcmread(file_path)
# 打印文件的元数据
print(f"File path........: {file_path}")
print(f"SOP Class UID....: {ds.SOPClassUID}")
print(f"Patient's Name...: {ds.PatientName}")
print(f"Patient ID.......: {ds.PatientID}")
print(f"Modality.........: {ds.Modality}")
print(f"Study Date.......: {ds.StudyDate}")
print(f"Image dimensions..: {ds.Rows} x {ds.Columns}")
print(f"Pixel Spacing....: {ds.PixelSpacing}")
# 打印所有DICOM元数据
print("\nComplete DICOM file content:")
print(ds)
# 替换为你的DICOM文件路径
file_path = 'xxx.dcm'
print_dicom_info(file_path)
DICOM保存的信息比较多,这里因为隐私问题,输出结果不在展示
注:下面还有很多关于此DICOM文件的信息,不再截图展示了。
2.MHA
上面提到了MHD文件,一般MHD文件还会有一个同步记录的.raw文件,而.mha文件是将MHD文件和RAW文件合并到一起组成的一个文件。下面是.MHA和.MHD文件的区别
.mha
与 .mhd
的核心区别
特征 | .mha | .mhd + .raw |
---|---|---|
文件数量 | 单文件(头+数据合并) | 双文件(头与数据分离) |
数据存储 | 二进制数据嵌入头文件末尾 | 原始数据独立存储(.raw ) |
压缩支持 | 支持 GZIP 压缩 | 通常不压缩,需手动处理 |
内存占用 | 适合小文件(压缩后更小) | 适合大文件(避免内存瓶颈) |
修改便捷性 | 需整体读写,修改不便 | 可单独编辑头文件或替换数据文件 |
常见工具支持 | ITK、3D Slicer、ParaView | 同左 |
我们用记事本打开.mha文件格式如下
这里解释一下上图中的参数
1. ObjectType = Image
说明文件存储的是图像数据。
2. NDims = 3
图像的维度是三维(通常表示体数据,例如 CT 或 MRI 扫描)。
3. BinaryData = True
图像数据是以二进制形式存储的,而不是文本形式。
4. BinaryDataByteOrderMSB = False
- 图像数据的字节序是 **小端序**(Little Endian)。这是计算机存储数据的一种方式,表示最低有效字节存储在最低地址。
5. CompressedData = True
图像数据是压缩的,通常为了节省存储空间。
6. CompressedDataSize = 487430
压缩后的数据大小为 487430 字节。
7. TransformMatrix = 1 0 0 0 1 0 0 0 1
这是一个 3×3 的单位矩阵,用于描述图像坐标系的方向。
该矩阵表示图像的坐标轴没有旋转或变换,默认方向为标准坐标系。
8. Offset = 0 0 0
图像的原点(起始位置)在坐标系中的偏移量为 `(0, 0, 0)`,即没有偏移。
9. CenterOfRotation = 0 0 0
图像旋转的中心点为 `(0, 0, 0)`。对于没有旋转的图像,这通常是默认值。
10. ElementSpacing = 0.623046875 0.623046875 0.5
每个像素或体素(体积像素)的间距,单位通常是毫米。
第一维(X方向):间距为 0.623046875 mm。
第二维(Y方向):间距为 0.623046875 mm。
第三维(Z方向):间距为 0.5 mm。
这定义了图像的空间分辨率。
11. DimSize = 512 512 419
图像的尺寸(体素数量):
第一维(X方向):512 个体素。
第二维(Y方向):512 个体素。
第三维(Z方向):419 个体素。
总体积大小为 512 × 512 × 419。
12. AnatomicalOrientation = ???
图像的解剖学方向(例如 RAI 表示右-前-下)。
在这里,方向未定义。
13. ElementType = MET_UCHAR
图像数据的类型为 无符号字符(unsigned char),通常表示每个像素的值范围是 0 到 255(8位灰度值)。
14. ElementDataFile = LOCAL
图像数据存储在文件的本地部分,而不是引用外部文件。
关于坐标系
的知识,我是学习下面这篇文章的,写的很好,有学习的可以去原文看
医学图像坐标系
处理部分待定