资讯动态

cornerstoneTools解剖学揭秘:modes、strategies与mixins六大核心概念图解

发布时间:2026/8/22 14:21:45 来源:尧图企业网站定制
cornerstoneTools解剖学揭秘modes、strategies与mixins六大核心概念图解【免费下载链接】cornerstoneToolsA framework for tools built on top of Cornerstone.项目地址: https://gitcode.com/gh_mirrors/co/cornerstoneToolscornerstoneTools是构建在 Cornerstone 之上的医学影像工具框架专为医学图像的标注、分割与测量而生。想快速玩转它只需吃透六个核心概念modes模式、strategies策略、mixins混入外加configuration配置、interaction types交互类型、measurement data测量数据。本文用图解表格的方式带你一次看懂新手 10 分钟即可建立完整认知 一图看懂cornerstoneTools 是什么简单来说它解决三个问题医学影像操作在 CT/MRI 等影像上画标注、做测量、做分割工具开发框架提供基类、混入和策略机制让你快速开发新工具统一的状态管理一致地管理所有工具的启用、激活与数据六大核心概念速览概念一句话解释类比Modes工具的四种运行状态电灯的 开/半亮/只通电/关Strategies同一工具的不同操作策略一把瑞士军刀的不同刀具Mixins按需附加的行为片段给工具贴技能贴纸Configuration控制工具行为的参数工具的设置面板Interaction Types鼠标/触摸等输入方式工具的操作通道Measurement Data工具产生的标注数据工具留下的作品 官方文档把这六部分统称为Anatomy of a Tool工具解剖学对应文档目录docs/latest/anatomy-of-a-tool/。Modes工具的四种状态如何切换Modes工具模式决定工具画不画、能不能动。这是新手最先要搞懂的概念工具添加后默认处于 Disabled 状态不激活就隐身。四种标准模式对照表模式渲染响应输入能否创建新标注Active激活✅✅✅Passive被动✅✅仅操作已有数据❌Enabled启用✅❌只读展示❌Disabled禁用默认❌❌❌切换模式的常用方法针对所有已启用元素setToolActive(工具名)→ 激活setToolPassive(工具名)→ 被动setToolEnabled(工具名)→ 只读setToolDisabled(工具名)→ 禁用小提醒并非所有工具都支持全部四种模式。比如标尺覆盖工具Scale Overlay Tool只能在 Enabled 和 Disabled 之间切换强行激活会被自动降级为 Enabled。Strategies一个工具多种操作策略Strategies策略让同一个工具具备多种操作方式。所有工具继承自BaseTool源码见src/tools/base/BaseTool.js它接收两个与策略相关的参数参数类型说明strategies对象一组接收事件配置、执行操作的函数集合defaultStrategy字符串默认策略名须与strategies中的属性名一致工作机制非常直观工具实例化时activeStrategy被设为默认策略未指定时取第一个策略函数工具内部调用applyActiveStrategy(evt, configuration)执行当前策略随时把tool.activeStrategy改成新值即可切换策略调setDefaultStrategy()可复位 官方给出的范例是旋转工具RotateTool源码路径src/tools/RotateTool.js。整套策略机制完全可选简单工具可以不用。Mixins像拼图一样给工具附加行为Mixins混入是在工具实例化时动态贴上去的一组成员函数让工具获得额外行为。所有混入都存放在src/mixins/目录下。两个最实用的混入混入名效果activeOrDisabledBinaryTool工具只能在 激活/禁用 之间二选一enabledOrDisabledBinaryTool工具只能在 启用/禁用 之间二选一设置 Active 时自动转为 Enabled使用方式在工具构造函数中把混入名以字符串数组形式传入mixins参数即可例如mixins [enabledOrDisabledBinaryTool]。如果你想开发自己的混入在src/mixins/目录新建文件export default一个包含目标函数的对象到src/mixins/index.js中注册工具即可通过构造函数的mixins参数使用它实战参考分割工具的矩形/圆形/自由手等分割行为就来自src/mixins/segmentation/目录下的系列混入如rectangleSegmentationMixin.js、freehandSegmentationMixin.js。另外三大概念配置、交互与测量数据Configuration工具的设置面板切换模式的同时还能更新工具的内部配置。最常用的参数参数适用场景mouseButtonMask鼠标输入决定哪个鼠标键触发工具1左键2右键3中键isTouchActive触摸输入是否响应触摸preventHandleOutsideImage标注工具手柄是否禁止拖出图像范围比如setToolActive(LengthTool, { mouseButtonMask: 1 })就是激活长度工具并绑定左键。Interaction Types交互类型描述工具如何响应用户输入鼠标、触摸等是连接输入事件与工具行为的桥梁官方文档章节位于docs/latest/anatomy-of-a-tool/interaction-types.md。Measurement Data测量数据工具操作产生的标注/测量数据长度值、区域、分割结果等可导入导出、可序列化存储详见docs/latest/anatomy-of-a-tool/measurement-data.md。新手上手路径按这份源码索引逛一圈建议按下面的顺序阅读源码30 分钟建立全局感 ⏱️步骤看什么路径1工具基类含策略机制src/tools/base/BaseTool.js2注解工具基类src/tools/base/BaseAnnotationTool.js3混入注册中心src/mixins/index.js4分割策略集合src/tools/segmentation/strategies/index.js5具体工具范例如长度工具src/tools/annotation/LengthTool.js6官方示例站点examples/、netlify-example/一句话总结Modes管开不开Strategies管怎么用Mixins管加什么配置调细节交互接输入测量数据留结果——六个概念拼起来就是一个完整的 cornerstoneTools 工具想动手从官方示例netlify-example/里的 brush、stack 两个页面开始试起 ✨【免费下载链接】cornerstoneToolsA framework for tools built on top of Cornerstone.项目地址: https://gitcode.com/gh_mirrors/co/cornerstoneTools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价