cornerstoneTools 作用,用法,api使用心得
一、cornerstoneTools的用途
1、作用可以响应一些事件,例如鼠标按下的事件,鼠标滚轮的事件或按键或触摸事件
2、可以对视口进行缩放平移
3、可以在图像上绘制图形
4、可以在图像上绘制文本
二、外部依赖库
1、jquery
2、cornerstone
3、hammer
三、api
1、addToolState(element, toolType, data) element当前元素,toolType唯一标识,data元素总集,把所有元素绑定到tools工具中,element为当前挂载元素,主要功能影响切换下一张,不能切换下一张,下一张图片tools工具自然就不能对他操作,我的理解是这个api的意思是把所有元素都挂载tools工具。
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="utf-8">
- <link href="./css/bootstrap.min.css" rel="stylesheet">
- <link href="./css/cornerstone.min.css" rel="stylesheet">
- <style>
- body{width: 100%;height: 100%;margin: 0;padding: 0;max-width: 750px;}
- .container{position: absolute;width: 100%;height: 100%;left: 0;top: 0;}
- </style>
- </head>
- <body>
- <div class="container">
- <div id="dicomImagebox">
- <div class="dicomImage" id="dicomImage0" style="width:100%;height:100%;top:0px;left:0px; position:absolute">
- </div>
- </div>
- </div>
- </body>
- <script src="./js/jquery.min.js"></script>
- <!-- 引入 cornerstone 库 -->
- <script src="./js/cornerstone.min.js"></script>
- <script src="./js/dicomParser.min.js"></script>
- <script src="../ImageLoader/cornerstoneWADOImageLoader.js"></script>
- <script src="js/cornerstoneMath.min.js"></script>
- <script src="js/hammer.js"></script>
- <script src="js/cornerstoneTools.min.js"></script>
- <script>
- cornerstoneTools.external.Hammer = Hammer;
- cornerstoneTools.external.cornerstone = cornerstone;
- cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
- cornerstoneWADOImageLoader.external.cornerstoneMath = cornerstoneMath;
- //指定要注册加载程序的基石实例
- cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
- cornerstone.registerImageLoader("http", cornerstoneWADOImageLoader.loadImage);
- cornerstone.registerImageLoader("https", cornerstoneWADOImageLoader.loadImage);
- var config = {
- webWorkerPath: "../ImageLoader/cornerstoneWADOImageLoaderWebWorker.js",
- taskConfiguration: {
- decodeTask: {
- codecsPath: "../ImageLoader/cornerstoneWADOImageLoaderCodecs.js"
- }
- }
- };
- cornerstoneWADOImageLoader.webWorkerManager.initialize(config);
- var baseUrl="";
- var exampleStudyImageIds="";
- var isInitLoad=true;
- var isShow=true;
- window.onload=function show(){
- if (isShow === true) {
- isShow = false;
- var arr=["MR000000.dcm","MR000001.dcm"];
- baseUrl = "http://localhost/testDICOM/CTStudy/";
- exampleStudyImageIds = arr;
- // 找到要渲染的元素
- var canvas = document.getElementById("dicomImage0");
- canvas.width=document.documentElement.clientWidth;
- canvas.height=document.documentElement.clientHeight;
- // 在 DOM 中将 canvas 元素注册到 cornerstone
- cornerstone.enable(canvas);
- // 拼接 url : cornerstoneWADOImageLoader 需要 wadouri 路径头
- var imageUrl = baseUrl + exampleStudyImageIds[0];
- var imageId = "wadouri:" + imageUrl;
- // Load & Display
- cornerstone.loadAndCacheImage(imageId).then(
- function(image) {
- // 设置元素视口
- var viewport = cornerstone.getDefaultViewportForImage(canvas, image);
- // 显示图像
- var datacorne=cornerstone.displayImage(canvas, image, viewport);
- // 激活工具
- initCanvasTools();
- }
- );
- }else{
- isShow = true;
- }
- }
- function initCanvasTools(){
- var canvas = document.getElementById("dicomImage0");
- console.log(canvas)
- isInitLoad = false;
- // 为 canvasStack 找到 imageIds
- var allImageIds = [];
- console.log(allImageIds)
- $.each(exampleStudyImageIds,function(k,v) {
- let imageUrl = "wadouri:" + baseUrl + v;
- allImageIds.push(imageUrl);
- });
- console.log(allImageIds)
- // Create canvasStack
- var canvasStack = {
- currentImageIdIndex: 0,
- imageIds: allImageIds
- };
- // Enable Inputs
- cornerstoneTools.mouseInput.enable(canvas);//鼠标按下事件
- cornerstoneTools.mouseWheelInput.enable(canvas);//鼠标滚轮事件
- cornerstoneTools.touchInput.enable(canvas);//手势事件
- // Set the stack as tool state
- cornerstoneTools.addStackStateManager(canvas, ["stack"]);
- cornerstoneTools.addToolState(canvas, "stack", canvasStack);//将工具状态添加到toolStateManager,这由工具以及恢复已保存状态的模块完成。addToolState(element, toolType, measurementData)
- cornerstoneTools.stackScrollWheel.activate(canvas); // Mouse wheel
- // cornerstoneTools.scrollIndicator.enable(canvas); // Position indicator
- // Mouse
- cornerstoneTools.wwwc.activate(canvas, 1); // left click
- cornerstoneTools.pan.activate(canvas, 2); // middle click
- cornerstoneTools.zoom.activate(canvas, 4); // right click
- // Touch / Gesture
- cornerstoneTools.wwwcTouchDrag.activate(canvas); // - Drag
- cornerstoneTools.zoomTouchPinch.activate(canvas); // - Pinch
- cornerstoneTools.panMultiTouch.activate(canvas); // - Multi (x2)
- // cornerstoneTools.zoomWheel.activate(canvas);
- }
- </script>
- </html>
cornerstoneTools 作用,用法,api使用心得的更多相关文章
- c++用法的学习心得
关于C++这门课,是我在大一的时候开始学习的,那时候接触的就是单纯的一些C++的基本语法规则,基本的编程规则.但是我们都有这样的困惑:课堂和教材的 内容基本上都能接受和理解,但真要实际动手编写程序又感 ...
- asp.net mvc短信接口调用——阿里大于API开发心得
互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...
- 百度api使用心得体会
最近项目中在使用百度地图api,对于其中的一些有用的点做一些归纳整理,如有不对的地方,欢迎各位大神纠正指出. 一定要学会查找百度地图api提供的类参考网站:http://lbsyun.baidu.co ...
- 关于C++用法的学习心得
通过大一一学期对C++语言的学习,我感觉c++是一门有一定难度并且很有挑战性的科目,在c++学习过程中,我们懂得了其有很多的用法. 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确. ...
- Object,String,StringBuffer,StringBuilder,System,Runtime,Date,Math介绍及用法(API)
1 Object对象 面向对象的核心思想:“找合适的对象,做适合的事情”. 合适的对象: 自己描述类,自己创建对象. sun已经描述了好多常用的类,可以使用这些类创建对象. API(App ...
- Android Camera Api的心得
(一) 前言最近看Camera的api,觉得写的真的不错.现在翻译过来,给大家分享分享,译文可能不太好,大家将就着看哈. (二) 正文1. CameraCamera是Android framework ...
- 乐卡上海网点地图制作心得 | 百度地图API使用心得
前言 事情的起因是我的爱人喜欢收集一些美丽的乐卡(明信片的一种,正面是美丽壮阔的风景照).作为一个坚实的后盾自然要支持她!于是我经常借着午休穿梭在大街小巷,凭借乐卡官方提供的乐卡网点地址进行寻找并取卡 ...
- odoo 装饰器用法@api
摘自:blog.csdn.net/cmzhuang/article/details/52932883 @api.one one装饰符自动遍历记录集,把self重新定义成当前记录.注意,返回值是一个li ...
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...
随机推荐
- Flask+MySQL+Redis的Docker配置
Docker配置了好多天,昨天晚上终于把碎遮项目的Docker打包完成了,后面会继续完善项目代码,把稳定版本打包后推送到DockerHub上. 网上关于Docker配置的文章很多,但大部分都是复制粘贴 ...
- 1、pytorch写的第一个Linear模型(原始版,不调用nn.Modules模块)
参考: https://github.com/Iallen520/lhy_DL_Hw/blob/master/PyTorch_Introduction.ipynb 模拟一个回归模型,y = X * w ...
- 百度网盘下载器:SpeedPan2.3.8
SpeedPan是款百度网盘资源下载工具,下载速度还行(至少比百度网盘快太多了),支持登录百度账号,也支持免登录下载.官网免费版的取消分享了,我从油管上看到了这个软件,分享给大家. 天翼云:https ...
- Scrum 冲刺第六天
一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:学习如何编写用户手册 今日工作计划:编写测试计划 工作中遇到的困难:文档不知如何动手 张润柏: 昨天已完成的工作:完 ...
- 剑指offer二刷——数组专题——构建乘积数组
构建乘积数组 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A ...
- 如何实现OSM地图本地发布并自定义配图
目录 1.缘起 2.准备环境 2.1.安装linux系统 2.2.安装docker 2.3.安装Docker Compose 2.4.安装git 3.发布地图 3.1.拉取代码 3.2.测试网络 3. ...
- NOI2020网上同步赛 游记
Day1 预计得分:\(32pts\)(我裂开了--) T1 美食家 表示考试的时候想到了关于矩阵快速幂的想法,甚至连分段后怎么处理都想好了,但是没有想到拆点,还有不知道怎么处理重边(这个考虑是多余的 ...
- 你必须要知道的HTTP协议原理
1 基本概念 HTTP协议:基于TCP协议之上实现的无状态.全文本的标准通信协议. 客户端:例如pc浏览器,移动应用端,第三方服务器等能发起http访问的设备. 服务器:能够接受HTTP协议请求,并且 ...
- FreeSql.Repository (一)什么是仓储
欢迎来到<FreeSql.Repository 仓储模式>系列文档,完整文档请前往 wiki 中心:https://github.com/dotnetcore/FreeSql/wiki F ...
- php curl的使用心得
php的curl有很多参数,整理一下其中的常用参数的作用 1.CURLOPT_SSL_VERIFYHOST 设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name).译者注:公 ...