ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

cornerstoneTools自定义工具开发教程:4步从选择基类到添加Mixin

cornerstoneTools自定义工具开发教程:4步从选择基类到添加Mixin cornerstoneTools自定义工具开发教程4步从选择基类到添加Mixin【免费下载链接】cornerstoneToolsA framework for tools built on top of Cornerstone.项目地址: https://gitcode.com/gh_mirrors/co/cornerstoneToolscornerstoneTools 是构建在 CornerstoneJS 之上的医学影像工具框架为开发者提供了标注、测量、分割等丰富工具的底层能力。本文将带你快速掌握cornerstoneTools 自定义工具开发的完整流程——只需 4 步从选择基类、定义工具类到添加 Mixin 和注册启用即使是新手也能轻松写出属于自己的第一个影像交互工具。 先认识一下工具是怎么工作的在 cornerstoneTools 中每个工具Tool都继承自一个基类通过**模式Mode**决定如何响应用户操作。四种标准模式分别是模式行为说明Active激活渲染并响应用户输入可创建新标注/测量Passive被动渲染并被动响应可修改但不能创建数据Enabled启用只渲染不响应输入类似只读状态Disabled禁用默认不渲染、不可交互理解了模式再来看 4 步开发流程就顺理成章了。第 1 步选择工具基类3 选 1cornerstoneTools 提供 3 个基类供你选择选对基类是自定义工具开发的第一步也是最重要的一步BaseTool最基础的基类。适合本身不产生标注数据的工具如放大镜 MagnifyTool或者需要操作分割标签数据labelmap的分割工具Segmentation Tools。BaseAnnotationTool继承自 BaseTool。适合会在画布上创建、修改并显示自己的标注数据的工具如标尺工具 LengthTool。BaseBrushTool继承自 BaseTool。专为创建/修改/删除分割数据的工具设计如画笔工具 BrushTool也可扩展为自适应画笔、区域生长等工具。 简单判断法要画标注选BaseAnnotationTool要画分割选BaseBrushTool其余情况选BaseTool。详细对比可参考官方文档 choosing-a-base-class.md。第 2 步定义工具类并调用 super选好基类后用 PascalCase 命名类名并加Tool后缀例如HelloWorldTool然后继承基类。构造函数必须调用super()传入一个配置对象import csTools from cornerstone-tools; const BaseTool csTools.importInternal(base/BaseTool); export default class HelloWorldTool extends BaseTool { constructor(name HelloWorld) { super({ name, supportedInteractionTypes: [Mouse], // 支持 Mouse / Touch }); } }super()接收的配置项中name和supportedInteractionTypes是必填的另外还可以按需传入strategies多种操作策略的函数数组参考项目内置的 RotateTooldefaultStrategy多策略时的默认策略configuration灵敏度、标注渲染样式等可配置项mixins要混入的可复用行为下一步重点基类实现源码位于 BaseTool.js所有鼠标/触摸交互的虚拟方法如preMouseDownCallback、postMouseDownCallback都由它调度——你只需在类里定义对应方法事件分发器会在合适时机自动调用。第 3 步为工具添加 Mixin组合复用行为Mixin 是 cornerstoneTools 的核心设计通过组合而非继承把可复用的行为混入工具中。你只需在super()的mixins数组里按名称注册即可无需手动 importBaseTool 内部会自动处理super({ name, supportedInteractionTypes: [Mouse], mixins: [activeOrDisabledBinaryTool], });常用的内置 Mixin 有两种Mixin适用场景activeOrDisabledBinaryTool工具只在激活或禁用两种模式间切换没有自己的数据时enabledOrDisabledBinaryTool工具只在启用或禁用两种模式间切换如缩放比例尺工具此外工具还可以定义模式切换回调activeCallback、passiveCallback、enabledCallback、disabledCallback在模式变化时执行初始化或清理逻辑。内置 Mixin 源码在 src/mixins/ 目录下例如 activeOrDisabledBinaryTool.js。第 4 步注册工具并启用工具类写好、Mixin 加好后最后一步是把它注册到 cornerstoneTools 中再切换模式即可使用// 注册为 tool 类型 cornerstoneTools.register(tool, HelloWorld, HelloWorldTool); // 切换模式 cornerstoneTools.setToolActive(HelloWorld); cornerstoneTools.setToolDisabled(HelloWorld);register是统一的注册入口也支持注册模块module、Mixinmixin、第三方标注项等若一次注册多项可用registerSome。注册相关实现见 register.js 与 registerSome.js。⚠️ 小提示若同名工具已存在重复注册会输出警告并取消如需覆盖在register调用末尾追加参数true。 延伸阅读与关键文件到这里你已经走完了 cornerstoneTools 自定义工具开发的完整 4 步选基类 → 定义类 → 加 Mixin → 注册启用。想深入工具内部结构推荐按顺序阅读这些文档和源码自定义工具完整指南custom-tools/index.md工具解剖模式/策略/交互类型anatomy-of-a-tool/index.md基类介绍tool-types/index.mdMixin 说明tool-mixins/index.md模式切换 APIsrc/store/setToolMode.js动手试试吧从最小的工具开始逐步叠加标注数据、渲染与分割能力你就能在 cornerstoneTools 之上构建出功能完整的医学影像应用。【免费下载链接】cornerstoneToolsA framework for tools built on top of Cornerstone.项目地址: https://gitcode.com/gh_mirrors/co/cornerstoneTools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表