一文詳解cornerstone?Tools?基礎(chǔ)概念
cornerstone Tools 基礎(chǔ)概念
Cornerstone Tools 是一個 JavaScript 庫,用于幫助注釋、分割和測量醫(yī)學(xué)圖像。該庫還提供了一個框架,用于創(chuàng)建新工具,以一致、連貫的方式管理所有工具,以及導(dǎo)入/導(dǎo)出工具度量數(shù)據(jù)。
下面將介紹 Cornerstone Tools 中的基本概念,以便后續(xù)了解 Cornerstone Tools 的用法。
工具類型
目前,Cornerstone Tools 所有的工具均為 class 類,都是通過繼承 class 類的方式實現(xiàn)統(tǒng)一的集成。根據(jù)工具的使用方式主要分為三個父類:BaseTool、BaseAnnotationTool、BaseBrushTool。
Base Tool
BaseTool 是 Cornerstone Tools 中所有工具的頂級父級。它負責初始化工具的配置,應(yīng)用 mixin,并為激活狀態(tài)工具的鼠標/觸摸交互提供 @virtual 函數(shù)。
繼承于 BaseTool 類的工具類:
| 工具類名 | 工具名稱 | 說明 |
|---|---|---|
| CrosshairsTool | 十字線 | 用于在與同步圖像序列中的圖像位置相對應(yīng)的另一元素中查找切片的工具。 |
| DragProbeTool | 探針 | 拖動時在輸入位置提供圖像數(shù)據(jù)探測的工具,主要用于測量 CT 值。 |
| MagnifyTool | 放大鏡 | 用于放大檢查區(qū)域的工具。 |
| OrientationMarkersTool | 方向標記 | 用于在圖像上顯示方向標記的工具,激活后無需操作自動顯示。 |
| PanTool | 平移 | 用于平移圖像的工具。 |
| RotateTool | 旋轉(zhuǎn) | 用于旋轉(zhuǎn)圖像的工具。 |
| ScaleOverlayTool | 比例尺 | 用于在圖像上顯示比例覆蓋的工具,激活后無需操作自動顯示。 |
| WWWCTool | 調(diào)窗 | 通過拖動設(shè)置窗寬窗位的工具。 |
| ZoomTool | 縮放 | 用于調(diào)整縮放比例的工具。 |
| StackScrollTool | 瀏覽序列 | 用于滾動系列的工具。 |
| StackScrollMouseWheelTool | 鼠標滾輪瀏覽序列 | 使用鼠標滾輪滾動序列的工具。 |
| OverlayTool | 覆蓋層 | 用于在圖像上顯示覆蓋信息或圖形的工具。 |
| ReferenceLinesTool | 參考線 | 用于顯示其他已啟用元素的參考線的工具。 |
| EraserTool | 橡皮擦 | 用于刪除其他注釋工具的數(shù)據(jù)的工具。 |
BaseAnnotationTool
BaseAnnotationTool 繼承于 BaseTool ,擴展了部分方法,主要用于創(chuàng)建和操作注釋數(shù)據(jù)。
繼承于 BaseAnnotationTool 類的工具類:
| 工具類名 | 工具名稱 | 說明 |
|---|---|---|
| AngleTool | 角度 | 通過放置三個連續(xù)點創(chuàng)建和定位角度。 |
| ArrowAnnotateTool | 箭頭標注 | 創(chuàng)建并定位箭頭和標簽。 |
| BidirectionalTool | 雙向 | 創(chuàng)建并定位測量區(qū)域長度和寬度的注釋。 |
| CircleRoiTool | 圓形 | 用于繪制感興趣的圓形區(qū)域并測量封閉像素的統(tǒng)計信息的工具。 |
| CobbAngleTool | cobb 角 | 用于測量兩條直線之間的角度的工具。 |
| EllipticalRoiTool | 橢圓 | 用于繪制感興趣的橢圓區(qū)域并測量封閉像素的統(tǒng)計信息的工具。 |
| FreehandRoiTool | 多邊形 | 用于繪制任意多邊形感興趣區(qū)域并測量封閉像素統(tǒng)計信息的工具。 |
| LengthTool | 長度 | 測量距離的工具。 |
| ProbeTool | 探針 | 在所需位置提供圖像數(shù)據(jù)探測的工具,與 DragProbeTool 使用方式一致,區(qū)別在于 ProbeTool 會保存測量數(shù)據(jù)。 |
| RectangleRoiTool | 矩形 | 用于繪制感興趣的矩形區(qū)域并測量封閉像素的統(tǒng)計信息的工具。 |
| TextMarkerTool | 文字標注 | 用于使用文本標記注釋圖像的工具。 |
工具模式
工具的模式?jīng)Q定了如何渲染工具,以及如何與其交互。包含四種標準模式,分別是:
| 工具類名 | 說明 |
|---|---|
| Active | 激活模式的工具將渲染并響應(yīng)用戶輸入,并且能夠創(chuàng)建新的注釋或測量。 |
| Passive | 被動模式的工具將渲染并被動響應(yīng)用戶輸入,數(shù)據(jù)可以被 操縱,但不能被創(chuàng)建。 |
| Enabled | 啟用模式的工具將渲染,但不會響應(yīng)輸入,本質(zhì)上是只讀狀態(tài)。 |
| Disabled | 工具的默認狀態(tài)。禁用模式的工具無法交互,也不會在啟用的元素上呈現(xiàn)。 |
事件
CornelstoneTools 事件將本地事件捕獲,并進行規(guī)范化,并使用 cornerstonetools 前綴重新觸發(fā),這樣在不同的瀏覽器中可以一致地處理事件。
| 事件分類 | 事件名稱 | 說明 |
|---|---|---|
| 鼠標事件 | cornerstonetoolsmousedown | 鼠標按下時觸發(fā) |
| cornerstonetoolsmouseup | 鼠標抬起時觸發(fā) | |
| cornerstonetoolsmousedownactivate | 鼠標按下 ,并且 cornerstonetoolsmousedown 事件回調(diào)函數(shù)不使用 stopPropagation 時觸發(fā)。此時觸發(fā) createNewMeasurement 函數(shù)。 | |
| cornerstonetoolsmousedrag | 鼠標拖拽時觸發(fā) | |
| cornerstonetoolsmousemove | 鼠標移動時觸發(fā) | |
| cornerstonetoolsmouseclick | 鼠標點擊時觸發(fā) | |
| cornerstonetoolsmousedoubleclick | 鼠標雙擊時觸發(fā) | |
| cornerstonetoolsmousewheel | 鼠標滾輪滾動時觸發(fā) | |
| 鍵盤事件 | cornerstonetoolskeydown | 鍵盤按下時觸發(fā) |
| cornerstonetoolskeyup | 鍵盤抬起時觸發(fā) | |
| cornerstonetoolskeypress | 鍵盤按下生字符值的鍵時觸發(fā) | |
| 自定義事件 | cornerstonetoolsmeasurementadded | 增加測量數(shù)據(jù)時觸發(fā) |
| cornerstonetoolsmeasurementmodified | 修改測量數(shù)據(jù)時觸發(fā) | |
| cornerstonetoolsmeasurementcompleted | 測量停止時觸發(fā) | |
| cornerstonetoolsmeasurementremoved | 移除測量數(shù)據(jù)時觸發(fā) | |
| cornerstonetoolstooldeactivated | 工具停用時觸發(fā),工具模式被修改為 passive | |
| cornerstonetoolsclipstopped | 播放工具停止時觸發(fā) | |
| cornerstonetoolsstackscroll | scroll stack 圖像時觸發(fā) | |
| cornerstonetoolsstackprefetchimageloaded | stack預(yù)加載圖像完成時觸發(fā) | |
| cornerstonetoolsstackprefetchdone | 全部完成 stack 預(yù)加載時觸發(fā) | |
| cornersontetoolslabelmapmodified | labelmap 修改時觸發(fā) |
全局配置項
在初始化 Cornerstone Tools 時,可以通過應(yīng)用合理的默認值,啟用/禁用不同的特性和功能。
cornerstoneTools.init({
// 當元素被啟用時,是否監(jiān)聽鼠標事件
mouseEnabled: true,
// 當元素被啟用時,是否監(jiān)聽觸摸事件
touchEnabled: true,
// 全局工具同步
globalToolSyncEnabled: true,
// 顯示svg光標
showSVGCursors: true,
// 自動調(diào)整視口大小
autoResizeViewports: true,
// 虛線樣式
lineDash: [4, 4]
});以上就是一文詳解cornerstone Tools 基礎(chǔ)概念的詳細內(nèi)容,更多關(guān)于cornerstone Tools基礎(chǔ)概念的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript中塊級作用域與函數(shù)作用域深入剖析
這篇文章主要為大家介紹了JavaScript中塊級作用域與函數(shù)作用域的實現(xiàn)原理深入剖析,2023-05-05
JavaScript 中for/of,for/in 的詳細介紹
這篇文章主要介紹了JavaScript 中的for/of, for/in,在 JavaScript中,for 循環(huán)有幾種常見的寫法,西阿棉文章有寫法的詳細內(nèi)容,需要的朋友可以參考一下2021-11-11
前端必會的package.json創(chuàng)建及常見屬性用法示例詳解
這篇文章主要為大家介紹了前端必會的package.json創(chuàng)建及常見屬性用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08

