恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
用 Rerun 可视化 DICOM MRI 体数据:一行代码实现 3D 张量切片与语义轴命名
首页
资讯中心
/
用 Rerun 可视化 DICOM MRI 体数据:一行代码实现 3D 张量切片与语义轴命名
用 Rerun 可视化 DICOM MRI 体数据:一行代码实现 3D 张量切片与语义轴命名
发布时间:2026/9/17 3:23:53
用 Rerun 可视化 DICOM MRI 体数据一行代码实现 3D 张量切片与语义轴命名【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun导读本文基于 examples/python/dicom_mri 官方示例讲解如何把一份 512×512×512 的 DICOM MRI 体数据通过 Rerun SDK 的Tensor类型可视化成交互式 3D 张量并利用dim_names语义轴命名配合 Viewer 的张量切片工具完成多平面观察。读完本文你将掌握 DICOM 序列的体素提取流程pydicom dicom_numpy、rr.Tensor的构造与参数语义以及rr.script_*命令行助手带来的--save、--headless、--connect等实用能力。DICOM 与 MRI数字医学影像的背景Digital Imaging and Communications in MedicineDICOM是医学影像数字存储与传输的技术标准广泛应用于 CT、MRI、超声等设备的影像交换。MRI磁共振成像扫描仪产出的断层序列通常以一组.dcm文件存放每个文件记录一个 2D 切片需要按空间位置堆叠成 3D 体数据voxel volume后才能进行立体观察。本示例正是这样一条完整链路读取一组 DICOM 切片 → 合并为 3D 体素数组 → 以张量形式记录到 Rerun再由 Viewer 的灵活张量切片能力完成任意切面的交互查看。示例总览用到的 Rerun 类型本示例只用到两个 Rerun 类型Tensor任意 N 维数值数组承载 MRI 体素数据TextDocument在场景中展示一段 Markdown 格式的示例说明文字。这两行日志分别对应tensor实体与description实体全部记录工作集中在 read_and_log_dicom_dataset 这一个函数里。核心一行把 MRI 体数据记录为语义化张量README 强调整个可视化的日志代码只有一行rr.log(tensor, rr.Tensor(voxels_volume_u16, dim_names[right, back, up]))其中voxels_volume_u16是一个形状为(512, 512, 512)的numpy.array表示 MRI 体素强度。将该数组直接作为rr.Tensor记录到tensor实体即可完成可视化。关键在于dim_names参数它为三个维度分别赋予了right、back、up的语义名称。从 SDK 实现看TensorExt.init会接收data、dim_names、value_range三个参数其中dim_names用于「从数组生成 shape 时给各维度命名」最终内部转换为TensorData组件该 Archetype 内部只包含TensorData一个组件。命名之后Viewer 的轴显示会使用这些语义名称而不是无意义的 0/1/2选择张量视图后Blueprint 右侧面板中你可以明确指定「哪些维度作为图像显示、哪些维度作为可选切片维度」。此外Tensor还支持value_range参数用于指定颜色映射的数值范围未指定时会自动从数据估计例如全为正且最大值小于 255 的数据会被 Viewer 推断为类似 8bit 图像从而默认采用 0–255 的范围见 tensor.py 中的 value_range 说明。源码剖析从 .dcm 切片到 3D 体素数组示例的数据处理管线dicom_mri.py分为三步1. 收集 DICOM 文件list_dicom_files递归遍历数据集目录筛选所有.dcm后缀文件。2. 合并切片为体数据extract_voxel_dataslices [dicom.read_file(f) for f in dicom_files] voxel_ndarray, ijk_to_xyz dicom_numpy.combine_slices(slices)这里pydicom负责解析每个.dcm文件dicom_numpy.combine_slices依据切片的位置信息把它们对齐成三维voxel_ndarray同时返回ijk_to_xyz变换矩阵体素索引坐标系到物理 XYZ 坐标系的映射。本示例目前只消费体素数组变换矩阵暂未用于记录。3. 类型归一化read_and_log_dicom_datasetvoxels_volume, _ extract_voxel_data(dicom_files) # the data is i16, but in range [0, 536]. voxels_volume_u16 np.require(voxels_volume, np.uint16)源码注释指出原始数据是int16类型但数值范围只在[0, 536]因此用np.require无损转成uint16便于张量视图按无符号整数语义做颜色映射。示例还在记录张量之前用staticTrue方式记录了一段 Markdown 描述文本rr.log(description, rr.TextDocument(DESCRIPTION, media_typerr.MediaType.MARKDOWN), staticTrue)数据集自动下载首次运行无需手动准备数据ensure_dataset_downloaded 会先检查本地dataset/目录是否已有.dcm文件若没有则通过requests流式下载预置的dicom.zip解压到本地后返回文件列表。这意味着示例可开箱即用依赖清单见 pyproject.toml也固定了关键版本dicom_numpy0.6.2、pydicom2.4.5、requests2.31,3以及rerun-sdk与numpy。在 Viewer 中切片观察 MRI 体数据张量记录完成后在 Rerun Viewer 中选中tensor实体进入张量视图即可通过 Blueprint 右侧面板做以下调整Color map颜色映射为体素强度选择合适的伪彩色方案Brightness亮度调节整体明暗维度显示方式指定哪些维度作为图像平面展示、哪些维度作为可选切片索引由于 MRI 是三维体数据Viewer 会呈现二维切片视图并允许沿第三个维度拖动浏览借助dim_names的语义名称切片轴会显示为 right/back/up方便与解剖方位对应。整个过程完全交互、无需预先导出特定切面这正是 README 所强调的「灵活的 tensor slicing capabilities」。运行示例1. 安装环境确保已安装最新 Rerun SDK并检出本仓库代码pip install --upgrade rerun-sdk # install the latest Rerun SDK git clone https://gitcode.com/GitHub_Trending/re/rerun.git # Clone the repository cd rerun git checkout latest # Check out the commit matching the latest SDK release2. 安装示例依赖pip install -e examples/python/dicom_mripip install -e会按 pyproject.toml 安装上述依赖同时注册dicom_mri可执行命令dicom_mri dicom_mri:main。3. 运行示例python -m dicom_mri # run the example第一次运行会自动下载 DICOM 数据集随后弹出 Viewer 展示 MRI 体数据。4. CLI 参数与自定义示例通过rr.script_add_args(parser)注入了 Rerun 标准命令行参数实现见 _script_helpers.py可用--help查看全部选项python -m dicom_mri --help其中常用的包括参数说明--headless不显示 GUI适合无界面环境运行--connect连接到一个外部已启动的 Viewer--serve启动 gRPC 与 Web 服务器并打开 Web Viewer 连接--url URL连接到指定的 Rerun URL--save path将数据保存为.rrd文件便于离线回放--stdout将日志数据输出到标准输出可管道传给 Viewer结合 pyproject.toml 注册的入口也可以直接调用dicom_mri命令替代python -m dicom_mri。小结本示例以最小化的日志代码一行rr.log展示了 Rerun 处理医学影像体数据的能力pydicomdicom_numpy负责数据解码与体素重建rr.Tensor配合dim_names完成语义化张量记录Viewer 的张量切片面板则提供了颜色映射、亮度与维度选择等全部交互手段。参考完整源码 dicom_mri.py你可以把同样的模式套用到 CT、超声等其他以张量形式组织的体数据场景。【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考