一文详解cornerstone Tools 基础概念

 更新时间:2023年03月09日 17:19:51   作者:jimpeo  
这篇文章主要为大家介绍了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圆形用于绘制感兴趣的圆形区域并测量封闭像素的统计信息的工具。
CobbAngleToolcobb 角用于测量两条直线之间的角度的工具。
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播放工具停止时触发
cornerstonetoolsstackscrollscroll stack 图像时触发
cornerstonetoolsstackprefetchimageloadedstack预加载图像完成时触发
cornerstonetoolsstackprefetchdone全部完成 stack 预加载时触发
cornersontetoolslabelmapmodifiedlabelmap 修改时触发

全局配置项

在初始化 Cornerstone Tools 时,可以通过应用合理的默认值,启用/禁用不同的特性和功能。

cornerstoneTools.init({
  // 当元素被启用时,是否监听鼠标事件
  mouseEnabled: true,
  // 当元素被启用时,是否监听触摸事件
  touchEnabled: true,
  // 全局工具同步
  globalToolSyncEnabled: true,
  // 显示svg光标
  showSVGCursors: true,
  // 自动调整视口大小
  autoResizeViewports: true,
  // 虚线样式
  lineDash: [4, 4]
});

以上就是一文详解cornerstone Tools 基础概念的详细内容,更多关于cornerstone Tools基础概念的资料请关注脚本之家其它相关文章!

相关文章

  • 微信小程序实现拖拽 image 触摸事件监听的实例

    微信小程序实现拖拽 image 触摸事件监听的实例

    这篇文章主要介绍了微信小程序实现拖拽 image 触摸事件监听的实例的相关资料,这里提供image触摸并监听的简单实例,需要的朋友可以参考下
    2017-08-08
  • JavaScript中fetch方法的使用示例全面详解

    JavaScript中fetch方法的使用示例全面详解

    这篇文章主要为大家介绍了JavaScript中fetch方法的使用示例全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 2023年了该了解下WebComponent使用教程

    2023年了该了解下WebComponent使用教程

    这篇文章主要为大家介绍了2023年了该了解下WebComponent使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • open 打开浏览器的过程原理示例解析

    open 打开浏览器的过程原理示例解析

    这篇文章主要为大家介绍了open 打开浏览器的过程原理示例解析,
    有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 不可变数据方案之immer.js原理解析

    不可变数据方案之immer.js原理解析

    这篇文章主要为大家介绍了不可变数据方案之immer.js原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 关于C++ TpeScript系列的泛型

    关于C++ TpeScript系列的泛型

    这篇文章将从C++模版要解决的问题出发,引出TS泛型要解决的问题,并简答介绍一些稍微高级的使用场景的相关资料,需要的朋友可以参考一下
    2021-10-10
  • WebWorker 封装 JavaScript 沙箱详情

    WebWorker 封装 JavaScript 沙箱详情

    这篇文章主要介绍了WebWorker 封装 JavaScript 沙箱,在前文 quickjs 封装 JavaScript 沙箱详情 已经基于 quickjs 实现了一个沙箱,今天这篇文章再基于 web worker 实现备用方案,需要的朋友可以参考一下
    2021-10-10
  • 微信小程序 WXML、WXSS 和JS介绍及详解

    微信小程序 WXML、WXSS 和JS介绍及详解

    这篇文章主要介绍了微信小程序 WXML、WXSS 和JS介绍及详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • 详解JavaScript实现简单的词法分析器示例

    详解JavaScript实现简单的词法分析器示例

    这篇文章主要为大家介绍了详解JavaScript实现简单的词法分析器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 10分钟内讲解Npm脚本使用教程

    10分钟内讲解Npm脚本使用教程

    这篇文章主要为大家介绍了10分钟内讲解Npm脚本使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论