基于cornerstone3D的dicom影像浏览器 第二十三章 mpr预设窗值与vr preset

文章目录

  • 前言
  • 一、mpr窗口预设窗值
  • 二、vr preset
  • 三、调用流程


前言

实现mpr窗口预设窗值,vr窗口预设配色
效果如下:

在这里插入图片描述


一、mpr窗口预设窗值

可参考 第十五章 预设窗值
逻辑一样的,把windowWidth, windowCenter值转换为voiRange值,再调用viewport.setProperties设置。
在MPR类中增加函数setWindow

const presetWindow = [{id: "wwwl-default",text: "默认",tooltip: "默认窗宽窗位",icon: "icon-tiaochuang",wwwl: {wl: 0,ww: 0,}},{id: "wwwl-ct-bone",text: "骨窗",tooltip: "CT骨窗 [300/1500]",icon: "icon-jawbone",wwwl: {wl: 300,ww: 1500,}},{id: "wwwl-ct-lung",text: "肺窗",tooltip: "CT肺窗 [-600/1500]",icon: "icon-lungs-line",wwwl: {wl: -600,ww: 1500,}},{id: "wwwl-ct-abdomen",text: "腹部",tooltip: "CT腹部 [60/400]",icon: "icon-fubu",wwwl: {wl: 60,ww: 400,}},{id: "wwwl-ct-angio",text: "血管",tooltip: "CT血管 [300/600]",icon: "icon-xinxieguan1",wwwl: {wl: 300,ww: 600,}},{id: "wwwl-ct-brain",text: "颅脑",tooltip: "CT颅脑 [40/80]",icon: "icon-xinxieguan",wwwl: {wl: 40,ww: 80,}},{id: "wwwl-ct-chest",text: "胸腔",tooltip: "CT胸腔 [40/400]",icon: "icon-Frightn",wwwl: {wl: 40,ww: 400,}},
];setWindow(ww, wl) {if (!this.loaded) {return;}const viewports = this.renderingEngine.getViewports();for (let i = 0; i < viewports.length; i++) {const viewport = viewports[i];if (viewport.id !== idVolume) {const voiLutFunction = viewport.getProperties().VOILUTFunction;const newRange = csUtils.windowLevel.toLowHighRange(ww, wl, voiLutFunction);viewport.setProperties({voiRange: newRange});viewport.render();}}}

二、vr preset

cornerstone3D中预设22种viewport preset。保存在CONSTANTS.VIEWPORT_PRESETS中。
在MPR类中添加setVRColor函数,同时把CONSTANTS.VIEWPORT_PRESETS.name导出,以便Toolbar3d.vue中使用

import {RenderingEngine,Enums,...CONSTANTS
} from "@cornerstonejs/core";const presetColors = CONSTANTS.VIEWPORT_PRESETS.map(preset => preset.name);setVRColor(presetName) {if (!this.loaded) {return;}const viewport = this.renderingEngine.getViewport(idVolume);const volumeActor = viewport.getDefaultActor().actor;csUtils.applyPreset(volumeActor,CONSTANTS.VIEWPORT_PRESETS.find(preset => preset.name === presetName));viewport.render();
}

三、调用流程

基本流程:

    1. Toolbar3d.vue中添加操作按钮或其他元素
    1. View3d.vue中响应操作
    1. DisplayerArea3d.vue调用MPR类中的函数

可参考前面章节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell之通配符及正则表达式

通配符与正则表达式 通配符&#xff08;Globbing&#xff09; 通配符是由 Shell 处理的特殊字符&#xff0c;用于路径或文件名匹配。当 Shell 在命令参数中遇到通配符时&#xff0c;会将其扩展为匹配的文件路径&#xff1b;若没有匹配项&#xff0c;则作为普通字符传递给命令…

继电保护与安全自动装置:电力系统安全的守护神

电力系统是现代社会赖以生存的基础设施&#xff0c;而继电保护和安全自动装置则是保障电力系统安全稳定运行的守护神。 它们默默无闻地工作着&#xff0c;在电力系统出现异常时&#xff0c;能够迅速准确地切除故障&#xff0c;防止事故扩大&#xff0c;保障电力供应。 那么&…

Flink流处理基础概论

文章目录 引言Flink基本概述传统数据架构的不足Dataflow中的几大基本概念Dataflow流式处理宏观流程数据并行和任务并行的区别Flink中几种数据传播策略Flink中事件的延迟和吞吐事件延迟事件的吞吐如何更好的理解事件的延迟和吞吐flink数据流的几种操作输入输出转换操作滚动聚合窗…

Tomcat 使用与配置全解

一、 Tomcat简介 Tomcat服务器是Apache的一个开源免费的Web容器。它实现了JavaEE平台下部分技术规范&#xff0c;属于轻量级应用服务器。 1. Tomcat版本 Tomcat版本 JDK版本 Servlet版本 JSP版本 10.0.X 8 and later 5.0 3.0 9.0.x 8 and later 4.0 2.3 8.0.x 7…

Unity3D仿星露谷物语开发52之菜单页面

1、目标 创建菜单页面&#xff0c;可通过Esc键开启或关闭。 当把鼠标悬停在上面时它会高亮&#xff0c;然后当点击按钮时标签页会被选择。 2、 创建PauseMenuCanvas &#xff08;1&#xff09;创建Canvas 在Hierarchy -> PersistentScene -> UI下创建新的Cavans命名为…

Spring Boot 调优的 12 个关键节点

数据库连接池调优&#xff1a;精准匹配系统资源 症状&#xff1a; 默认配置下&#xff0c;连接池资源使用不当&#xff0c;高并发时连接耗尽或排队。 常见误区&#xff1a; spring:datasource:hikari:maximum-pool-size: 1000 # 设置过大connection-timeout: 30000 # 设置…

前端流行框架Vue3教程:28. Vue应用

28. Vue应用 应用实例 每个 Vue 应用都是通过 createApp函数创建一个新的 应用实例 main.js import {createApp} from vue import App from ./App.vue// app:Vue的实例对象 // 在一个Vue项目中&#xff0c;有且只有一个Vue的实例对象 const app createApp(App)/* 根组件选项…

MongoDB 数据库迁移:完整指南与最佳实践

在现代数据驱动的应用中&#xff0c;数据库迁移是一项常见的任务&#xff0c;无论是升级 MongoDB 版本、更换服务器硬件&#xff0c;还是迁移到云环境&#xff08;如 MongoDB Atlas&#xff09;&#xff0c;都需要一个可靠的迁移策略。错误的迁移方式可能导致数据丢失、应用停机…

MQTT-Vue整合

Vue整合 依赖环境 nodejs 版本 > 18安装 element plus npm install element-plus安装 mqtt npm install mqtt初始化Vue项目 使用 vite 创建项目 执行命令 npm create vitelatest输入项目名称 vue-mqtt-demo MQTT连接 连接组件代码 components/MqttDemo.vue <script…

IP 地址反向解析(IP反查域名)原理与应用

一、IP 地址反向解析的原理与技术细节 IP 地址反向解析&#xff08;Reverse IP Lookup&#xff09;是一种将 IP 地址映射回其关联域名或主机名的网络技术&#xff0c;与常见的正向 DNS 解析&#xff08;将域名解析为 IP 地址&#xff09;形成互补。这一过程在网络安全研究、漏…

Mermaid 文件支持的图表

Mermaid 文件后缀支持多种类型的图表&#xff0c;包括但不限于&#xff1a; 流程图&#xff1a;用于描述流程和决策的图表&#xff0c;常用于业务流程的表示和分析。 时序图&#xff1a;用于描述事件发生的顺序和时序关系的图表&#xff0c;常用于系统交互和消息传递的分析。 …

用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来!

用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来! 自动驾驶技术正加速变革全球交通体系,它不仅是机器学习与计算机视觉的胜利,更是一场 高效通信架构的革命。自动驾驶汽车需要实时交换信息,比如: 传感器数据(雷达、激光雷达、摄像头)V2V(车与车通信)V2X(…

PDF处理控件Aspose.PDF教程:以编程方式合并PDF文档

合并 PDF 文档是常见的需求——无论您是整理报告、合并发票还是整合扫描页面。单一、统一的文件更易于在个人、学术或专业用途中共享、存储和管理。 本文将向您展示如何使用 Aspose.PDF在C#、Java 和 Python中以编程方式合并 PDf 文件。 Aspose.PDF最新版下载 为什么使用 As…

.gitignore 的基本用法

.gitignore 文件是 Git 版本控制系统中一个非常重要的配置文件&#xff0c;用于指定哪些文件或目录应该被 Git 忽略&#xff0c;不纳入版本控制。合理使用 .gitignore 可以避免将临时文件、编译产物、敏感信息等不必要的文件提交到代码仓库中。 1. .gitignore 的基本用法 &…

华为OD机试真题——分糖果(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

通过chrome插件自动生成博客评论,高效发外链

最近crazy cattle 3d这个词爆火&#xff0c;很多人都在做&#xff0c;竞争异常激烈&#xff0c;甚至可以说是惨不忍睹。 从最近的数据看&#xff0c;胜出的主要是crazycattle3d.com, crazycattle3d.io, crazy-cattle-3d.com这几个&#xff0c;流量最高的crazycattle3d.com已经…

创建一个简易的风扇动画界面:基于 WPF 和 XAML 的实现教程

在本教程中&#xff0c;我们将通过使用 WPF (Windows Presentation Foundation) 和 XAML (Extensible Application Markup Language) 创建一个简单的“台式风扇”界面。我们将使用 XAML 绘制风扇的外观&#xff0c;包含风扇叶片、风扇框架、支架和按钮等元素&#xff0c;并通过…

VPet虚拟桌宠,一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊

&#x1f4cc; 大家好&#xff0c;我是智界工具库&#xff0c;每天分享好用实用且智能的开源项目&#xff0c;以及在JAVA语言开发中遇到的问题&#xff0c;如果本篇文章对您有所帮助&#xff0c;请帮我点个小赞小收藏小关注吧&#xff0c;谢谢喲&#xff01;&#x1f618; 工具…

HTTP Digest 认证:原理剖析与服务端实现详解

HTTP Digest 认证&#xff1a;原理剖析与服务端实现详解 HTTP 协议中的 Digest 认证&#xff08;摘要认证&#xff09;是一种比 Basic 认证更安全的身份验证机制&#xff0c;其核心设计是避免密码明文传输&#xff0c;并通过动态随机数&#xff08;Nonce&#xff09;防范重放攻…

PDF 表单按钮动态边框效果

问题描述 用户在 Acrobat X 中创建 PDF 表单时遇到一个需求&#xff1a;表单以网格形式列出多个选项&#xff0c;当点击某个选项时&#xff0c;需要在选项周围显示边框&#xff08;圆形或方形&#xff09;&#xff0c;再次点击时边框消失。 试过的解决方案 在文本上方放置透…