【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之工具介绍

简单介绍一下在Cornerstone中什么是工具,工具是一个未实例化的类,它至少实现了BaseTool接口。

如果我们想要在我们的代码中使用一个工具,则必须实现以下两个步骤:

  1. 使用Cornerstone的顶层addTool函数添加未实例化的工具

  2. 将工具添加到工具组中

支持的工具类型

我们在使用工具时,主要会涉及到对图像的原始操作(缩放、平移等等)、注释操作(在图像的上层圈定一定的区域查看信息)、分割操作等等。

所以介绍的工具主要分为以下三大类:

  • 操作类工具

  • 注释类工具

  • 分割类工具

操作类工具

Cornerstone3DTools提供了一组工具,可用于在视口中操作图像。主要包括

  • 放大和缩小图像(ZoomTool)

  • 平移图像(PanTool)

  • 滚动图像的instance(StackScrollMouseWheelTool)

  • 操作图像的windowLevel (WindowLevelTool)

注释类工具

Cornerstone3DTools提供了一套注释工具。可以用来创建和编辑注释

  • 测量两点距离(Length Tool)

  • 测量宽度和长度(Bidirectional Tool)

  • 矩形面积的测量和统计(RectangleRoi Tool)

  • 测量椭球体的体积和统计信息(EllipseRoi Tool)

  • 获取体素的底层值(Probe Tool)

分割类工具

Cornerstone3D还提供了分割工具。这包括3D SegmentationDisplay和3D分割编辑工具,如画笔,矩形和圆形剪刀,以及3D球体工具。

工具的模式

我们注册的工具(在对应的toolGroup中)可以处于以下四种模式之一,每种模式都会影响工具对交互的响应方式。📢 注意:在同一种绑定方式下有且仅有一种工具被激活,不会有两个工具被激活

模式对应的交互效果
Active(激活模式)1. Active模式下的工具将响应交互 2. 如果该工具是注释工具,则单击未覆盖现有注释的事件将创建新注释,覆盖现在注释将选中注释
Passive (default)(消极模式)1. 如果工具是注释工具,如果它可以被选中,它可以被移动和重新定位。2. 不响应交互
Enabled(可用模式)1. 工具可以呈现,但不能进行交互响应
Disabled(禁用模式)1. 工具既不渲染,也不会响应交互

总结回顾

在这里插入图片描述

工具组

ToolGroup是Cornerstone3D中的一个新概念。

ToolGroup的目标是定义一种简单的方法,以每个视口方式定义工具的行为。 除此之外,绑定了同一个TooGroup的Viewport可以共享工具组相同的配置、模式及组内的工具。

Viewport 和 ToolGroup 的关系

Viewport 和 ToolGroup 是一对一的关系,同一个ToolGroup可以绑定多个Viewport,但是一个Viewport只能绑定一个ToolGroup

创建及使用工具组

toolGroup由ToolGroupManager管理。ToolGroupManager用于创建、搜索和销毁工具组

初始化工具组

import { ToolGroupManager } from '@cornerstonejs/tools';

const toolGroupId = 'ctToolGroup';
const ctToolGroup = ToolGroupManager.createToolGroup(toolGroupId);

工具组添加工具

ctToolGroup.addTool(PanTool.toolName);
ctToolGroup.addTool(ZoomTool.toolName);
ctToolGroup.addTool(ProbeTool.toolName);

工具组与视图进行绑定

ctToolGroup.addViewport(viewportId, renderingEngineId);

激活一个工具

ctToolGroup.setToolActive(LengthTool.toolName, {
  bindings: [{ mouseButton: MouseBindings.Primary }],
});
ctToolGroup.setToolActive(PanTool.toolName, {
  bindings: [{ mouseButton: MouseBindings.Auxiliary }],
});
ctToolGroup.setToolActive(ZoomTool.toolName, {
  bindings: [{ mouseButton: MouseBindings.Secondary }],
});
ctToolGroup.setToolActive(StackScrollMouseWheelTool.toolName);

总结回顾

在这里插入图片描述

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Cornerstone3D,一个体积(volume)通常由以下变量组成: 1. pixelData:一个一维数组,包含体积每个像素的数值。 2. rows:体积每个二维图像的行数。 3. columns:体积每个二维图像的列数。 4. height:体积图像的数量,也就是体积的深度。 5. spacing:一个包含三个数字的数组,分别代表体积相邻像素在x、y、z轴方向上的物理距离。 6. bitsAllocated:每个像素所占的位数。 7. bitsStored:每个像素实际存储的位数。 8. pixelRepresentation:像素数值的编码方式,0表示无符号整数,1表示有符号整数。 9. lut:一个查找表,将像素数值映射到RGB颜色值,用于可视化体积数据。 ### 回答2: 在Cornerstone3D,Valume是一个用于管理和控制3D模型的类。它由多个变量组成,包括: 1. transform:用于表示3D模型的变换信息,包括位置、旋转和缩放。通过修改transform的值,可以对模型进行平移、旋转和缩放操作。 2. material:用于定义3D模型的材质属性,包括颜色、纹理、透明度等。可以通过更改material的值,改变模型的外观效果。 3. mesh:用于描述3D模型的顶点、面和UV坐标等几何信息。mesh包含顶点的坐标、面的连接信息以及纹理坐标等数据,用于绘制模型的外观。 4. collider:用于检测模型与其他物体的碰撞。collider可以是简单的几何形状(如球体、立方体),也可以是更复杂的网格碰撞器(mesh collider),用于模拟真实的物理碰撞效果。 5. animation:用于控制模型的动画。可以定义模型的骨骼动画或关键帧动画,通过修改animation的值,可以播放、停止或暂停模型的动画效果。 6. light:用于模拟光照效果。可以定义不同类型的光源,如平行光、点光源等,通过修改light的参数,可以改变模型的明暗效果。 7. camera:用于观察模型的视角。camera可以定义相机的位置、旋转和虚拟焦距等,通过修改camera的值,可以改变模型的观察角度。 这些变量共同组成了Valume类,通过对它们的操作和调整,可以实现对3D模型的精确控制和渲染。 ### 回答3: Cornerstone3D是一个用于虚拟现实和增强现实应用程序开发的软件开发套件。在Cornerstone3D,valume是一个用于表示虚拟对象的类,并由几个变量组成。 首先,valume的一个重要变量是position。这个变量定义了虚拟对象在虚拟世界的位置。通过改变position的值,我们可以控制虚拟对象在三维空间的位置,使其出现在我们想要的位置。 其次,valume还包含一个scale变量。这个变量决定了虚拟对象的大小。通过调整scale的值,我们可以控制虚拟对象在虚拟世界的尺寸,使其变得更大或更小。 另一个变量是rotation。这个变量定义了虚拟对象的旋转角度。通过改变rotation的值,我们可以使虚拟对象在虚拟世界发生旋转,使其在不同的角度展示给用户。 此外,valume还可能包含一些其他的变量,例如颜色、纹理等,具体的变量会根据开发者的需求和应用程序的需求而有所不同。 总之,Cornerstone3D的valume通过position、scale、rotation等变量来定义和控制虚拟对象在虚拟世界的位置、大小和旋转角度,使开发者可以灵活地创建和编辑虚拟现实和增强现实应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值