一文详解cornerstone Tools 基础概念
cornerstone Tools 基础概念
Cornerstone Tools 是一个 JavaScript 库,用于帮助注释、分割和测量医学图像。该库还提供了一个框架,用于创建新工具,以一致、连贯的方式管理所有工具,以及导入/导出工具度量数据。
下面将介绍 Cornerstone Tools 中的基本概念,以便后续了解 Cornerstone Tools 的用法。
工具类型
目前,Cornerstone Tools 所有的工具均为 class 类,都是通过继承 class 类的方式实现统一的集成。根据工具的使用方式主要分为三个父类:BaseTool、BaseAnnotationTool、BaseBrushTool。
Base Tool
BaseTool 是 Cornerstone Tools 中所有工具的顶级父级。它负责初始化工具的配置,应用 mixin,并为激活状态工具的鼠标/触摸交互提供 @virtual 函数。
继承于 BaseTool 类的工具类:
工具类名 | 工具名称 | 说明 |
---|---|---|
CrosshairsTool | 十字线 | 用于在与同步图像序列中的图像位置相对应的另一元素中查找切片的工具。 |
DragProbeTool | 探针 | 拖动时在输入位置提供图像数据探测的工具,主要用于测量 CT 值。 |
MagnifyTool | 放大镜 | 用于放大检查区域的工具。 |
OrientationMarkersTool | 方向标记 | 用于在图像上显示方向标记的工具,激活后无需操作自动显示。 |
PanTool | 平移 | 用于平移图像的工具。 |
RotateTool | 旋转 | 用于旋转图像的工具。 |
ScaleOverlayTool | 比例尺 | 用于在图像上显示比例覆盖的工具,激活后无需操作自动显示。 |
WWWCTool | 调窗 | 通过拖动设置窗宽窗位的工具。 |
ZoomTool | 缩放 | 用于调整缩放比例的工具。 |
StackScrollTool | 浏览序列 | 用于滚动系列的工具。 |
StackScrollMouseWheelTool | 鼠标滚轮浏览序列 | 使用鼠标滚轮滚动序列的工具。 |
OverlayTool | 覆盖层 | 用于在图像上显示覆盖信息或图形的工具。 |
ReferenceLinesTool | 参考线 | 用于显示其他已启用元素的参考线的工具。 |
EraserTool | 橡皮擦 | 用于删除其他注释工具的数据的工具。 |
BaseAnnotationTool
BaseAnnotationTool 继承于 BaseTool ,扩展了部分方法,主要用于创建和操作注释数据。
继承于 BaseAnnotationTool 类的工具类:
工具类名 | 工具名称 | 说明 |
---|---|---|
AngleTool | 角度 | 通过放置三个连续点创建和定位角度。 |
ArrowAnnotateTool | 箭头标注 | 创建并定位箭头和标签。 |
BidirectionalTool | 双向 | 创建并定位测量区域长度和宽度的注释。 |
CircleRoiTool | 圆形 | 用于绘制感兴趣的圆形区域并测量封闭像素的统计信息的工具。 |
CobbAngleTool | cobb 角 | 用于测量两条直线之间的角度的工具。 |
EllipticalRoiTool | 椭圆 | 用于绘制感兴趣的椭圆区域并测量封闭像素的统计信息的工具。 |
FreehandRoiTool | 多边形 | 用于绘制任意多边形感兴趣区域并测量封闭像素统计信息的工具。 |
LengthTool | 长度 | 测量距离的工具。 |
ProbeTool | 探针 | 在所需位置提供图像数据探测的工具,与 DragProbeTool 使用方式一致,区别在于 ProbeTool 会保存测量数据。 |
RectangleRoiTool | 矩形 | 用于绘制感兴趣的矩形区域并测量封闭像素的统计信息的工具。 |
TextMarkerTool | 文字标注 | 用于使用文本标记注释图像的工具。 |
工具模式
工具的模式决定了如何渲染工具,以及如何与其交互。包含四种标准模式,分别是:
工具类名 | 说明 |
---|---|
Active | 激活模式的工具将渲染并响应用户输入,并且能够创建新的注释或测量。 |
Passive | 被动模式的工具将渲染并被动响应用户输入,数据可以被 操纵,但不能被创建。 |
Enabled | 启用模式的工具将渲染,但不会响应输入,本质上是只读状态。 |
Disabled | 工具的默认状态。禁用模式的工具无法交互,也不会在启用的元素上呈现。 |
事件
CornelstoneTools 事件将本地事件捕获,并进行规范化,并使用 cornerstonetools 前缀重新触发,这样在不同的浏览器中可以一致地处理事件。
事件分类 | 事件名称 | 说明 |
---|---|---|
鼠标事件 | cornerstonetoolsmousedown | 鼠标按下时触发 |
cornerstonetoolsmouseup | 鼠标抬起时触发 | |
cornerstonetoolsmousedownactivate | 鼠标按下 ,并且 cornerstonetoolsmousedown 事件回调函数不使用 stopPropagation 时触发。此时触发 createNewMeasurement 函数。 | |
cornerstonetoolsmousedrag | 鼠标拖拽时触发 | |
cornerstonetoolsmousemove | 鼠标移动时触发 | |
cornerstonetoolsmouseclick | 鼠标点击时触发 | |
cornerstonetoolsmousedoubleclick | 鼠标双击时触发 | |
cornerstonetoolsmousewheel | 鼠标滚轮滚动时触发 | |
键盘事件 | cornerstonetoolskeydown | 键盘按下时触发 |
cornerstonetoolskeyup | 键盘抬起时触发 | |
cornerstonetoolskeypress | 键盘按下生字符值的键时触发 | |
自定义事件 | cornerstonetoolsmeasurementadded | 增加测量数据时触发 |
cornerstonetoolsmeasurementmodified | 修改测量数据时触发 | |
cornerstonetoolsmeasurementcompleted | 测量停止时触发 | |
cornerstonetoolsmeasurementremoved | 移除测量数据时触发 | |
cornerstonetoolstooldeactivated | 工具停用时触发,工具模式被修改为 passive | |
cornerstonetoolsclipstopped | 播放工具停止时触发 | |
cornerstonetoolsstackscroll | scroll stack 图像时触发 | |
cornerstonetoolsstackprefetchimageloaded | stack预加载图像完成时触发 | |
cornerstonetoolsstackprefetchdone | 全部完成 stack 预加载时触发 | |
cornersontetoolslabelmapmodified | labelmap 修改时触发 |
全局配置项
在初始化 Cornerstone Tools 时,可以通过应用合理的默认值,启用/禁用不同的特性和功能。
cornerstoneTools.init({ // 当元素被启用时,是否监听鼠标事件 mouseEnabled: true, // 当元素被启用时,是否监听触摸事件 touchEnabled: true, // 全局工具同步 globalToolSyncEnabled: true, // 显示svg光标 showSVGCursors: true, // 自动调整视口大小 autoResizeViewports: true, // 虚线样式 lineDash: [4, 4] });
以上就是一文详解cornerstone Tools 基础概念的详细内容,更多关于cornerstone Tools基础概念的资料请关注脚本之家其它相关文章!
最新评论