如何使用 OHIF Viewer 工具栏?测量、窗宽窗位与一键导出完整指南
如何使用 OHIF Viewer 工具栏测量、窗宽窗位与一键导出完整指南【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers拿到一叠 CT 切片想做的第一件事往往不是放大而是量个尺寸——病灶到底是 2 厘米还是 5 厘米。OHIF Viewer 的工具栏toolbar就是为这类高频小动作准备的量尺寸、调窗宽窗位、换视口布局、截图留档全都摆在屏幕顶部一步可达。下面先带你把每个动作走一遍最短路径再拆开代码看看每个按钮究竟是怎么被定义、又何时才会点亮的。先跑通3 分钟装好并打开 OHIF仓库 clone 下来执行几条命令即可要求 Node 18git clone https://gitcode.com/GitHub_Trending/vi/Viewers cd Viewers pnpm install pnpm start服务起来后打开浏览器连上一个 DICOMweb 影像源进入 Basic 模式。顶栏即工具栏左侧是测量工具组中间依次是缩放、平移、窗宽窗位、截图、布局按钮右侧是 More Tools 菜单入口。 三步量出病灶大小操作本身非常直接点击工具栏里的Length图标默认激活的测量工具在图像上点下两个端点两点间的 mm 数值立刻标出想换量具点工具旁的小箭头caret展开下拉列表在默认排布的九件测量工具中任选一件工具干什么用结果单位Length两点线性距离mmBidirectional最长径 LD × 最长垂直径 LPDmmAnnotation带自由文本的定性标记—Ellipse椭圆面积 平均 CT 值mm² / HURectangle矩形面积 平均 CT 值mm² / HUCircle圆形面积mm²Freehand ROI自由手绘轮廓取面积mm²Spline ROI样条绘制轮廓取面积mm²Livewire沿组织边缘吸附勾画mm²另有Calibration按钮专门修正 DICOM 的 Pixel Spacing相邻像素间的物理距离。元数据里这个值缺失或错了所有长度类测量都会跟着偏——在已知尺寸的参照物上画一条线、输入真实长度后续测量就都以它为基准了。往实现里看一层这九件量具点击时走的都是同一个setToolActiveToolbar命令它会把激活该工具的事件同时广播给default、mpr、SRToolGroup、volume3d四个工具组定义见 toolbarButtonsCustomization.ts。所以无论当前是 2D 堆栈、MPR 重建还是 SR 报告视口选完工具立刻生效无需逐类视口配置。拖一拖窗宽窗位或直接用预设对齐图像偏暗、发白、层次糊成一团时用 Window/Level 工具点Window/Level按钮进入自由调整模式在视口上按住拖拽——横向拖动改窗宽、纵向改窗位对比度实时变化不想手调的话点 caret 展开预设列表肺窗、纵隔窗这类常见成像场景的标准化 W/L 设置点一下即套。代码里这条线其实不止一条主栏的WindowLevel是按钮形态视口左下角挂着windowLevelMenu底部中间的 AdvancedRenderingControls 区里还有内嵌式windowLevelMenuEmbedded和带手动滑杆的voiManualControlMenu。位置与形态不同改的都是同一组渲染参数。平移、缩放、3D 旋转图像导航三件套Zoom选中后在图上按住拖拽即缩放当前放大倍数实时显示在视口角上Pan拖拽平移图像位置看偏了的病灶不用翻片3D Rotate在容积视口上把三维重建体随手旋转到位。三者与测量工具走的是同一条命令通道setToolActiveToolbar只是激活的工具名不同——这也是 OHIF 工具栏按钮皆数据的直观体现。一键换布局1x1 到 3x4 网格任选点Layout按钮画面切换为网格选择器点选想要的行数列数即可1x1、2x2、3x3 都能覆盖。定义端只有两行参数Layout按钮声明为ohif.layoutSelector类型rows: 3, columns: 4划定了可选网格的上限。 一键导出当前视口文件名、尺寸、格式可配留档时点工具栏右侧的相机图标弹出下载配置弹窗三个参数都能定参数说明filename下载后的文件名width / height输出图像的尺寸filetypepng、jpg 等常用格式确认后当前视口就以高清图片落到本地。按钮背后绑的是showDownloadViewportModal命令职责只是打开弹窗它的可用状态求值同时排除了video与wholeSlide两类视口——视频帧和全切片 WSI 不做静态截图所以这两种视图下按钮保持置灰。进阶More Tools 里藏着的工具箱主栏那几个按钮不够用时More Tools 就是备料区。从菜单里选中的工具会成为当前激活工具直到被其他选择替换工具效果绑定命令自动置灰的视口Reset View位置、缩放、窗宽窗位一键还原resetViewport—Rotate Right顺时针旋转 90°rotateViewportCWvideoFlip Horizontal水平翻转flipViewportHorizontalvideo、volume3dImage Slice Sync多视口切片位置联动toggleSynchronizerimageSlicevideo、volume3dStack Scroll所有图像视口同步翻页setToolActiveToolbar—Invert灰度反转invertViewportvideoCine逐帧电影式播放toggleCinevolume3dMagnify点击放大局部细节setToolActiveToolbarvideoAngle测量可调节角度setToolActiveToolbar—Cobb Angle测量 Cobb 角setToolActiveToolbar—Probe拖拽读取像素值setToolActiveToolbar—Calibration覆盖像素间距setToolActiveToolbarvideo注意自动置灰那一列置灰不是坏了而是代码在替你把关。这套机制的核心在 ToolbarService——每个按钮的evaluate字段存的是求值器名字服务从注册表里按名取出检查函数执行evaluate写成数组时则串联全部检查任一报 disabled 即整体禁用。正因如此同一个按钮定义才能安全地活在 2D 堆栈、MPR、3D 容积、视频、WSI 五种视口之上而不必为每种视图各写一套逻辑。换个角度看代码按钮是数据对象工具栏是分区清单读到这儿可以把工具栏翻个面看——界面上其实没有写死任何一个按钮。按钮即数据对象。在 toolbarButtonsCustomization.ts 中每个按钮就是一个条目id是它的住址uiType决定长什么样渲染哪个组件props.commands决定点击后做什么props.evaluate决定何时点亮。点击发生时ToolbarService 的recordInteraction把命令扔进命令总线执行随后refreshToolbarState对所有按钮重跑一遍可用状态求值——你在屏幕上看到的自动置灰就是这一步的产物。能力包即插槽。该文件最终只对外给出两个能力包capability packcornerstone.toolbarButtons全部按钮定义和cornerstone.toolbarSections分区到按钮 ID 清单的映射见 L719-L785。Basic 模式不复制这两份清单只在 index.tsx 里用{ $reference: cornerstone.toolbarButtons }引用进入模式时registerModeToolbar 依次调用toolbarService.register()与updateSection()完成注册和落位。渲染端更轻Toolbar.tsx 用useToolbarhook 拉取当前分区默认primary的数据给每个按钮注入展开、锁定、点击等交互状态后直接映射成组件。插槽设计的红利是想给某个模式加一个按钮不用动任何界面组件——写一个定制模块用?customization加载$push一个新按钮进列表那个模式的工具栏立刻变了。收尾一句口诀 三个定制入口记法如下量尺寸点选即激活、拖拽即标值 窗宽窗位按钮进、拖拽调、预设齐 留档导出一个弹窗定文件名、尺寸、格式 定制扩展按钮是数据工具栏是清单。三个定制入口调按钮排布改 toolbarSections改某按钮的命令或可用条件改同文件toolbarButtons列表里对应条目的props不想动代码则用?customizationURL 参数动态追加。更多背景可对照 官方 toolbar 文档 与 ToolbarService 源码。【免费下载链接】ViewersOHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画

Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画

Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 是一款把全屏…

2026/10/19 1:26:17 阅读更多 →
FinFIRST切片分析:任务难度、多信源与中英市场差异如何影响金融Agent表现?

FinFIRST切片分析:任务难度、多信源与中英市场差异如何影响金融Agent表现?

【免费下载链接】FinFIRST 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/FinFIRST 点击查看 免费下载 如果你正在评测或构建金融搜索Agent,FinFIRST 的切片分析(Slice Analysis)值得仔细研读:这个由蚂蚁…

2026/10/19 1:26:17 阅读更多 →
如何 30 分钟跑通 BepInEx:Unity 游戏插件框架新手完整指南

如何 30 分钟跑通 BepInEx:Unity 游戏插件框架新手完整指南

如何 30 分钟跑通 BepInEx:Unity 游戏插件框架新手完整指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx 是面向 Unity 游戏的插件(Mod&#xff…

2026/10/19 1:26:17 阅读更多 →

最新新闻

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:02:29 阅读更多 →
deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

1. 从"手搓轮子"到"搭积木":Agent 基建的痛点到底在哪如果你最近半年在折腾 AI Agent,大概率经历过这样一个阶段:一开始兴致勃勃地写了个 ReAct 循环,觉得"不过如此";等到真正要把它做成…

2026/10/19 2:02:29 阅读更多 →
Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

1. 从“能聊天”到“能干活”:企业级AI编排的真实分水岭很多团队做AI应用,第一步都是接个大模型,写个对话接口,跑通“你问我答”就以为大功告成。但真正落到企业业务里,你会发现单轮问答根本撑不起一个完整流程。比如一…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding落地成本与端云协同选型实战

移动端AIcoding落地成本与端云协同选型实战

1. 移动端 AIcoding 落地,为什么大家都在算这笔账移动端 AIcoding 这个词,最近半年在圈子里被反复提起。我最早接触这个概念是在一个跨平台工具链项目里,当时团队想把代码补全和自然语言生成代码的能力塞进手机和平板端,让开发者在…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding真实成本账:端侧适配与上下文管理占大头

移动端AIcoding真实成本账:端侧适配与上下文管理占大头

1. 这笔账为什么值得算移动端接入 AIcoding,前两年大家聊的都是“能不能做”,现在聊的是“划不划算”。我所在的团队从去年下半年开始,把一个内部代码辅助工具从桌面端往移动端搬,前后折腾了差不多两个季度,踩过的坑、…

2026/10/19 2:02:29 阅读更多 →
1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc 有一场会要开…

2026/10/19 2:01:28 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →