三、MPR(三平面重建)和三视图

MPR(三维重建中的 Multi-Planar Reconstruction,多平面重建)里的"三视图",是医学影像软件(CT、MRI、PET-CT 等)中的核心。

一、核心三视图解析

1、横断面(Axial)

相当于把人体水平切开。观察方向:从下往上看。常用于脑 CT、胸部 CT、腹部 CT.

2、冠状面(Coronal)

相当于把人体从正面切开。观察方向:面对病人。常用于鼻窦、脊柱、肺部上下关系.

3、矢状面(Sagittal)

相当于把人体左右切开。观察方向:从身体侧面看。常用于脊柱、膝关节、大脑中线结构.

4、示例图

5、三视图核心思想

在三个正交切面(轴状、冠状、矢状)之间共享同一个空间坐标点(x,y,z),用户在任意一个视图里的操作,会同步影响另外两个视图。所以三个视图其实只是同一体数据的不同切片投影。

二、为什么需要三视图

因为单个方向无法完整描述空间关系。例如某个肿瘤,在横断面里能看到左右位置,但不知道上下深度。加入冠状面、矢状面后才能真正定位。

三、三视图的核心价值

  • 医生能快速知道病灶在人体哪个空间位置。

  • 观察器官关系。例如:肿瘤是否侵犯血管、骨折是否穿透关节、病灶与神经距离。

  • 提高手术规划能力。例如:穿刺路径、切除范围、导航定位。

四、什么是MPR(Multi-Planar Reconstruction)

Multi-Planar Reconstruction翻译过来就是多平面重建。因为原始 CT 实际只直接采集了某个方向的数据。比如CT 常以 axial 为主采集,coronal/sagittal 是后处理重新生成,因此叫多平面重建。

五、MPR本质和三视图

CT/MRI 原始数据本质上是一个三维标量场,每个 voxel(体素)都有灰度值,可以理解成 3D 数组。

例如:512 × 512 × 400;表示512×512 的单层图像,共 400 层。

MPR 本质从三维体数据中重新取样(resampling)得到任意平面切片。三视图其实就是三个互相垂直的二维采样面。可以理解为三维数组在三个维度上的"切片操作"。

六、VTK中的MPR三视图

在 VTK 中实现 MPR 的核心通常是:

  • vtkImageData:读取 DICOM/CT 数据。

  • vtkImageReslice:做任意切面重建(核心)。

  • vtkResliceCursorWidget:三视图联动十字线。

  • vtkImageViewer2:显示二维切片。

  • 多个 vtkRenderer:同时显示三个方向。

1、经典MPR架构

DICOM 数据

Volume Builder

(体数据构建)

3D Volume Cache

(体缓存)

┌─────────┼─────────┐

▼ ▼ ▼

Axial Coronal Sagittal

Renderer Renderer Renderer

│ │ │

└─────────┼─────────┘

MPR Controller

(同步控制)

UI显示

2、简单实现流程

cpp 复制代码
//读取 DICOM
vtkNew<vtkDICOMImageReader> reader;
reader->SetDirectoryName("dicom/");
reader->Update();
//得到vtkImageData*
//创建三个 Viewer
vtkNew<vtkImageViewer2> axialViewer;
vtkNew<vtkImageViewer2> coronalViewer;
vtkNew<vtkImageViewer2> sagittalViewer;

/*设置方向*/
//1.Axial
viewer->SetSliceOrientationToXY();
//2.Coronal
viewer->SetSliceOrientationToXZ();
//3.Sagittal
viewer->SetSliceOrientationToYZ();

3、医院系统中的完整功能

真正临床 MPR 通常包括:

功能 VTK组件
三视图 vtkResliceCursorWidget
十字线 ResliceCursorActor
斜切 vtkImageReslice
厚层MPR SlabMode
VR三维 vtkGPUVolumeRayCastMapper
窗宽窗位 vtkImageMapToWindowLevelColors
测量 vtkDistanceWidget
ROI vtkContourWidget
相关推荐
Hua-Jay10 小时前
OpenCV联合C++/Qt 学习笔记(二十二)----相机模型与投影及单目相机标定
c++·笔记·qt·opencv·学习·计算机视觉
小短腿的代码世界11 小时前
QCefView架构深度解析:从Chromium嵌入到Qt信号槽集成的完整技术链路
qt·架构
byxdaz12 小时前
Qt修改操作系统的日期与时间
qt
小短腿的代码世界12 小时前
Qt属性系统揭秘:从Q_PROPERTY宏到动态元对象系统的完整架构解析
开发语言·qt·架构
丁劲犇12 小时前
QodeAssist:为msys2 ucrt64 Qt Creator 注入 AI 灵魂的开源插件
开发语言·人工智能·qt
listhi52013 小时前
基于QT的串口心电波形实时显示系统
开发语言·qt
charlie1145141911 天前
现代Qt开发教程(新手篇)2.3——QImage、QPixmap、QIcon 图像处理基础
开发语言·图像处理·qt
AoDeLuo1 天前
SOEM2.0编译与Qt调用
qt·机器视觉
大树学长1 天前
【QT开发】Windows 10 + Qt 5.15.2 手动编译安装 Qt OPC UA 模块完整记录
开发语言·windows·qt