三、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
相关推荐
BroNekoX1 天前
我将基于 QtQuick 框架开发的音乐播放器性能做到顶级
qt
小小晓.2 天前
Qt 对话框、QLineEdit 与布局管理实战详解
开发语言·qt
扶尔魔ocy3 天前
【QT入门到晋级】用开源的自定义控件开发
c++·qt·自定义控件
lhbweilai3 天前
QT项目(串口助手)
开发语言·qt
小鱼仙官3 天前
Qt 主界面弹出分界面
开发语言·qt
誰能久伴不乏4 天前
用 UDP 做一条“可靠“的控制通道
c++·qt·网络协议·udp
Bczheng14 天前
VS2022 安装MFC和QT
c++·qt·mfc
会编程的小孩4 天前
8.19号函数
qt
蓝祁子yoky5 天前
Qt学习日记 Day15:网络编程(二)- UDP基础
网络·qt·学习
读书札记20225 天前
Qt UTF-8和UTF-8(BOM)
开发语言·qt