vue + vtk.js读取CT序列,显示3d影像(三个面显示)

vtk.js官网示例中,显示CT序列,都是以vti文件格式为例进行读取。但是在实际项目中,一般都是以.dcm为后缀的dicom影像,目前在vtk.js官网中,没有找到直接读取dicom序列的API。故,需要用到itk.js(itk-wasm)来读取dicom序列,vtk.js渲染显示影像。

itk-wasm[vue + vtkJs + itkJs进行dcom影像预览]一文中有配置说明

效果图

在这里插入图片描述

在这里插入图片描述

代码:

/** html  */
<template>
  <div class="posrel wh100" :style="{ background: '#000' }">
    <input ref="3dFile" type="file" multiple name="" id="" class="posabs" :style="{ 'z-index': 2 }" @change="handleFile">
    <div class="posabs r-0 p-20" :style="{ background: '#fff', width: '300px', 'z-index': 2 }">
      <div class="flex align_items_center">
        <span :style="{ width: '110px' }">Slice I</span>
        <el-slider class="flex_1" v-model="sliceI.val" :min="sliceI.min" :max="sliceI.max" @input="updateSliceI"></el-slider>
      </div>
      <div class="flex align_items_center">
        <span :style="{ width: '110px' }">Slice J</span>
        <el-slider class="flex_1" v-model="sliceJ.val" :min="sliceJ.min" :max="sliceJ.max" @input="updateSliceJ"></el-slider>
      </div>
      <div class="flex align_items_center">
        <span :style="{ width: '110px' }">Slice K</span>
        <el-slider class="flex_1" v-model="sliceK.val" :min="sliceK.min" :max="sliceK.max" @input="updateSliceK"></el-slider>
      </div>
      <div class="flex align_items_center">
        <span :style="{ width: '110px' }">Color level</span>
        <el-slider class=
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用vtk.js读取CT序列显示3D影像,可以按照以下步骤进行操作: 1. 安装必要的依赖项 需要安装Vuevtk.js和其他必要的依赖项。可以使用npm或yarn命令进行安装。 ``` npm install vue vtk-js vtk.js axios ``` 2. 安装VTKLoader VTKLoader是一个用于加载VTK格式文件的JavaScript库。可以使用npm或yarn命令进行安装。 ``` npm install vtkloader ``` 3. 创建Vue组件 在Vue组件中创建一个div元素来显示3D影像。使用vtk.js创建一个Renderer和一个RenderWindow,并将Renderer添加到RenderWindow中。然后使用VTKLoader加载CT序列,并将其添加到Renderer中。 ```html <template> <div ref="container"></div> </template> <script> import vtk from 'vtk.js'; import vtkLoader from 'vtkloader'; export default { name: 'CTViewer', mounted() { const container = this.$refs.container; // Create a renderer and a render window const renderer = vtk.Rendering.Core.vtkRenderer.newInstance(); const renderWindow = vtk.Rendering.Core.vtkRenderWindow.newInstance(); renderWindow.addRenderer(renderer); // Set the size of the render window renderWindow.setSize(container.offsetWidth, container.offsetHeight); // Add the render window to the container renderWindow.setContainer(container); // Load the CT sequence using VTKLoader vtkLoader.loadDataSet('path/to/ct/sequence.vtk').then((ct) => { // Add the CT sequence to the renderer renderer.addVolume(ct); renderer.resetCamera(); renderWindow.render(); }); }, }; </script> ``` 4. 使用Vue组件 将Vue组件添加到Vue应用程序中并使用它来显示CT序列3D影像。 ```html <template> <div> <CTViewer /> </div> </template> <script> import CTViewer from '@/components/CTViewer'; export default { name: 'App', components: { CTViewer, }, }; </script> ``` 这样就可以使用Vuevtk.js读取CT序列显示3D影像了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值