Slicer中的XYZ和UVW坐标系
XYZ和UVW坐标系概述
在Slicer的切片系统中,存在两种相互关联但用途不同的坐标系:
XYZ坐标系
- 用途:主要与2D切片视图相关,对应切片窗口的显示空间
- 特性:与用户界面上看到的切片视图尺寸、分辨率直接相关
- 相关参数:
Dimensions、FieldOfView、XYZOrigin
UVW坐标系
- 用途:主要用于3D纹理映射和高质量体数据渲染
- 特性:独立于2D视图,可以设置为不同的分辨率和范围
- 相关参数:
UVWDimensions、UVWExtents、UVWOrigin、UVWMaximumDimensions
SliceResolutionMode控制机制
Slicer通过SliceResolutionMode枚举来控制UVW坐标系如何设置,定义了5种模式:
SliceResolutionMatchVolumes (0):
- UVW空间匹配体数据的分辨率
- UVWOrigin被设置为(0,0,0)而不是XYZOrigin
SliceResolutionMatch2DView:
- UVW空间匹配2D视图
- UVWOrigin与XYZOrigin同步
SliceFOVMatch2DViewSpacingMatchVolumes:
- 视场(FOV)匹配2D视图
- 间距匹配体数据
SliceFOVMatchVolumesSpacingMatch2DView:
- 视场匹配体数据
- 间距匹配2D视图
SliceResolutionCustom:
- 完全自定义UVW空间设置
双管道实现
在vtkMRMLSliceLayerLogic中,存在两套独立的转换和处理管道:
XY管道:
- 使用
XYToIJKTransform进行坐标转换 - 通过
Reslice进行图像重采样
- 使用
UVW管道:
- 使用
UVWToIJKTransform进行坐标转换 - 通过
ResliceUVW进行图像重采样
- 使用
应用场景
- 当
SliceResolutionMode为SliceResolutionMatch2DView时,UVW管道可能不会被激活 - 在高质量渲染场景(如3D纹理映射)中,UVW坐标系允许设置独立于显示视图的分辨率
- 在性能优化场景中,可以通过不同的
SliceResolutionMode在渲染质量和性能之间取得平衡
矩阵转换
Slicer维护了多个转换矩阵来处理这些坐标系之间的关系:
XYToRAS:将XY坐标转换到解剖RAS坐标UVWToRAS:将UVW坐标转换到解剖RAS坐标SliceToRAS:将切片平面坐标转换到解剖RAS坐标
通过这种双坐标系设计,Slicer能够灵活地处理不同的渲染需求,在保证显示质量的同时优化性能。