三、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
相关推荐
慧都小项4 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
Quz5 天前
QML SwipeDelegate 滑动委托
qt
Quz5 天前
QML 列表中的四种委托:ItemDelegate、CheckDelegate、RadioDelegate、SwitchDelegate
qt
实心儿儿5 天前
Qt — 显示类控件
qt
江湖人称菠萝包5 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy5 天前
【QT android】环境安装及第一个QT项目
qt·andriod开发
江湖人称菠萝包5 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
Cx330❀6 天前
Qt 常用控件属性与底层机制详解:从窗口半透明、浮点数陷阱到 QSS 与焦点策略
qt·ui·图形渲染
Quz6 天前
QML DelegateChooser:多条件组合与按列选择委托
qt
Quz6 天前
QML DelegateChooser:按角色选择委托与按索引选择委托
qt