当前位置: 首页 > news >正文

基于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类中的函数

可参考前面章节

相关文章:

  • 仓储物流场景下国标GB28181视频平台EasyGBS视频实时监控系统应用解决方案
  • 互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案-2
  • [BUG]Debian/Linux操作系统中 安装 curl等软件显示无候选安装(E: 软件包 curl 没有可安装候选)
  • noc多核芯片设计:booksim仿真从入门到精通2Router 类型及路由算法修改
  • MPI与多线程(如OpenMP)混合编程注意事项与性能优化
  • 【运维】Zerotier删除节点后的恢复操作指南
  • 【登录优化】redis删除旧token
  • PLC 与变频器通讯接线与控制技巧
  • 深入Linux网络栈:套接字接口工作机制与端到端通信开发
  • 无法访问Docker官网,国内如何合规高效安装Docker软件
  • 质检LIMS系统优化检测资源调度 节省设备采购成本策略
  • 鸿蒙OSUniApp 制作自定义的进度条组件#三方框架 #Uniapp
  • Trae中使用mcp连接MariaDB
  • adb.exe: more than one device/emulator
  • Python pandas 将列索引(A,B,C)转为(1,2,3)
  • IP 网段
  • UE5 C++动态调用函数方法、按键输入绑定 ,地址前加修饰符
  • SmartSoftHelp 图片资源技术保护可执行添加水印方案---深度优化版:SmartSoftHelp DeepCore XSuite
  • LSTM+Transformer混合模型架构文档
  • 精益数据分析(85/126):营收阶段的核心指标与盈利模型优化——从数据到商业决策的落地
  • 网站如何去分析/公众号推广渠道
  • wordpress仿豆瓣/seo超级外链工具免费
  • jsp企业网站源码/网络工程师
  • 网站建设太金手指六六十一/电子商务网页制作
  • 学校网站建设要多少钱/软文推广服务
  • 深圳做网站设计的公司/今日最新国内新闻