一文详解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基础概念的资料请关注脚本之家其它相关文章!

相关文章

  • Three.js概述和基础知识学习

    Three.js概述和基础知识学习

    这篇文章主要为大家介绍了Three.js概述和基础知识学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • JS前端宏任务微任务及Event Loop使用详解

    JS前端宏任务微任务及Event Loop使用详解

    这篇文章主要为大家介绍了JS前端宏任务微任务及Event Loop使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Tree Shaking实现方法指南

    Tree Shaking实现方法指南

    这篇文章主要为大家介绍了Tree Shaking实现方法指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 微信小程序 转发功能的实现

    微信小程序 转发功能的实现

    这篇文章主要介绍了微信小程序 转发功能的实现的相关资料,这里提供实现方法及实例帮助大家学习理解,需要的朋友可以参考下
    2017-08-08
  • 微信小程序 wxapp导航 navigator详解

    微信小程序 wxapp导航 navigator详解

    这篇文章主要介绍了微信小程序 wxapp导航 navigator详解的相关资料,并附简单实例代码,需要的朋友可以参考下
    2016-10-10
  • 微信小程序 实例应用(记账)详解

    微信小程序 实例应用(记账)详解

    这篇文章主要介绍了微信小程序 实例应用(记账)详解的相关资料,需要的朋友可以参考下
    2016-09-09
  • 微信小程序 省市区选择器实例详解(附源码下载)

    微信小程序 省市区选择器实例详解(附源码下载)

    这篇文章主要介绍了微信小程序 省市区选择器实例详解的相关资料,区域间手势滑动切换,标题栏高亮随之切换,反之亦然;当前选中标题红色高亮;回到前一级点击某区域后,清空子代的区域,需要的朋友可以参考下
    2017-01-01
  • JavaScript原型Prototype详情

    JavaScript原型Prototype详情

    这篇文章主要介绍了JavaScript原型Prototype,在JavaScript中,函数是一个包含属性和方法的Function类型的对象。而原型(Prototype )就是Function类型对象的一个属性。具体内容需要的朋友可以参考下面文章的介绍
    2021-12-12
  • JavaScript 对象详细整理总结

    JavaScript 对象详细整理总结

    这篇文章主要介绍了JavaScript 对象详细整理总结的相关资料,需要的朋友可以参考下
    2016-09-09
  • JS前端使用canvas实现扩展物体类和事件派发

    JS前端使用canvas实现扩展物体类和事件派发

    这篇文章主要为大家介绍了JS前端使用canvas实现扩展物体类和事件派发示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论