cornerstoneWADOImageLoader-加载DICOM文件

2024-03-25 01:08

本文主要是介绍cornerstoneWADOImageLoader-加载DICOM文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

cornerstoneWADOImageLoader-加载DICOM文件

  • 使用文档
    • 介绍
    • 主要特征
    • 示列
    • 安装
    • 用法
    • 完整示例代码
    • 每天免费领取外卖卷,点外卖更便宜!WX搜索:“一块吃外卖 ” 或 扫↓↓↓↓↓

使用文档

介绍

官方是这样子介绍简单概括的:用于通过HTTP请求WADO-URI或WADO-RS文件

WADO-URI与WADO-RS都是基于HTTP(或者HTTPS)协议之上的一种实现方式,WADO-URI采用的是HTTP的GET方法,通过URL配置参数的方式来完成DICOM数据的交互;WADO-RS同样采用HTTP的GET方法(当然后续扩展的数据上传采用的是HTTP的POST,这个后续会单独介绍);WADO-WS采用的是HTTP的POST方法,通过SOAP协议的方式来完成DICOM数据的交互操作。

主要特征

  • DICOM Part 10 images
  • 支持 WADO-URI 和 WADO-RS 文件
  • 支持多帧 DICOM 实例
  • 支持从 File 对象读取 DICOM 文件

示列

  1. git项目实例地址:cornerstoneWADOImageLoader/master/examples

  2. 与connerstone结合的示例地址:https://github.com/chafey/cornerstoneDemo

安装

有两种引入方式,可结合自己的实际情况引入即可。

  1. 静态资源引入,可根据自己的需要选择性引入即可。
    • 开发环境(不是最小化):cornerstoneWADOImageLoader.js
    • 生产环境(最小化):cornerstoneWADOImageLoader.bundle.min.js
  2. npm安装
  npm i cornerstone-wado-image-loaderimport cornerstoneWADOImageLoaderfrom 'cornerstone-wado-image-loader/dist/cornerstoneWADOImageLoaderNoWebWorkers.bundle.min'

用法

注意:cornerstoneWADOImageLoader依赖以下外部库,这些库应该在它之前加载:

  • dicomParser:用于解析DICOM图像
    npm i dicom-parser
    import dicomParser from 'dicom-parser/dist/dicomParser.min'
    注:对DICOM图像解析比较感兴趣的话,可以看看dcmjs
  • cornerstone
  • 为基石指定加载器:
  cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
  • 在代码中配置web work 框架

web workers 配置参数

var config = {maxWebWorkers: navigator.hardwareConcurrency || 1,startWebWorkersOnDemand: true,
};
cornerstoneWADOImageLoader.webWorkerManager.initialize(config);

完整示例代码


import * as  cornerstone from "cornerstone-core";
import dicomParser from 'dicom-parser/dist/dicomParser.min'
import cornerstoneWADOImageLoaderfrom 'cornerstone-wado-image-loader/dist/cornerstoneWADOImageLoaderNoWebWorkers.bundle.min'cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;cornerstoneWADOImageLoader.configure({beforeSend: function (xhr) {const apiKey = localStorage.getItem('token');if (apiKey) {xhr.setRequestHeader('token', apiKey);}}
});var config = {maxWebWorkers: navigator.hardwareConcurrency || 1,//创建web worker的最大数量,默认为1startWebWorkersOnDemand: true, //默认情况下在需要时才创建web worker,如果希望在项目初始化时创建可设置为:falsetaskConfiguration: {decodeTask: {initializeCodecsOnStartup: false,//默认情况下web worker 不会在启动时初始化图片解码器,如果希望开启设置为:true}},
};
cornerstoneWADOImageLoader.webWorkerManager.initialize(config);export default {name: "WADO-index",mounted() {const element = this.$refs.WADO_wrapcornerstone.enable(element);cornerstone.loadAndCacheImage('wadouri:https://assets.qiesou.com/data/DownloadImage.dcm').then(image => {const viewport = cornerstone.getDefaultViewportForImage(element, image);cornerstone.displayImage(element, image, viewport);})}
}

欢迎大家对我以上概述不准确地方及时作出指正,谢谢!

每天免费领取外卖卷,点外卖更便宜!WX搜索:“一块吃外卖 ” 或 扫↓↓↓↓↓

在这里插入图片描述

这篇关于cornerstoneWADOImageLoader-加载DICOM文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843390

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

gazebo 已加载模型但无法显示

目录 写在前面的话问题一:robot_state_publisher 发布机器人信息失败报错一 Error: Error document empty.报错二 .xcaro 文件中有多行注释成功启动 问题二:通过 ros2 启动 gazebo 失败成功启动 问题三:gazebo 崩溃和无法显示模型问题四: 缺少 robot_description 等话题正确的输出 写在前面的话

JVM类的加载器及加载过程

类的加载器及加载过程 文章目录 类的加载器及加载过程类的加载过程加载:链接(验证、准备、解析):初始化: 类加载器的分类引导类加载器:BootstrapClassLoader 启动类加载器( C/C++实现,嵌套在JVM内部)自定义类加载器(所有派生于抽象类ClassLoader的类加载器)获取ClassLoader的途径 双亲委派机制(重点)判断两个Class对象是否为同一个类

Unity Adressables 使用说明(六)加载(Load) Addressable Assets

【概述】Load Addressable Assets Addressables类提供了加载 Addressable assets 的方法。你可以一次加载一个资源或批量加载资源。为了识别要加载的资源,你需要向加载方法传递一个键或键列表。键可以是以下对象之一: Address:包含你分配给资源的地址的字符串。Label:包含分配给一个或多个资源的标签的字符串。AssetReference Obj

Eclipse发布Maven项目到tomcat,无法加载到lib文件夹下的jar包

BMS 解决方法: 当我们发布web项目到tomcat时,访问地址时会报一个classnotfound的错误,但是eclipse中的项目中都已经添加了相应的类,有一种比较容易犯的错误是,你没有把额外所需的jar包加到tomcat中的lib文件夹中,在这里介绍一种在项目中直接添加jar包到lib目录下:  右键已创建的web项目——properties属性——点击Deployment Assem

jupyter在加载pkl文件时报错ModuleNotFoundError: No module named 'pandas.core.internals.managers'; '的解决方法

笔者当看到这个错误的时候一脸懵逼,在pycharm上正常运行的code 放在jupyter就不成了,于是就研究一翻。 一开始以为自己的pkl文件有问题,研究重点放在这里,最后发现不是。 然后取搜索pycharm和jupyter下的python的\Lib\site-packages\pandas\core\internals有什么不同 发现jupyter下没有pandas\core\intern