使用vtk面绘制dicom医学断层图像

一 运行环境及工具:

linux ubuntu 14.04 desktop

vtk6.1.0

cmake 2.8.12


二 使用vtk面绘制需要用到较多的vtk components,必须在cmake编译时加进去,否则会出现ld 链接错误: 典型的如undefined reference to vtkOutlineFilter::New()。

我的CMakeLists.txt全文如下

cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)

PROJECT (Medical)

find_package(VTK COMPONENTS
  vtkFiltersGeometry
  vtkFiltersModeling
  vtkIOImage
  vtkIOXML
  vtkImagingStatistics
  vtkInteractionStyle
  vtkRenderingVolumeOpenGL
  vtkTestingRendering
  vtksys
)
include(${VTK_USE_FILE})

add_executable(m1c MACOSX_BUNDLE m1c.cc)

target_link_libraries(m1c ${VTK_LIBRARIES})

这里我的源文件为m1c.cc

三 编写源文件

源文件可参考vtk Medical 例子,但文件格式等内容不同。 其部分内容也可能不同,关键取决于实际应用,如皮肤的ct值为500,就不需改变。但其他选项可能需要调整,不一一说明。

#include <vtkRenderer.h>
#include <vtkRenderWindow
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Vue中使用vtk.js显示DICOM图像,可以按照以下步骤进行操作: 1. 安装vtk.js库 在Vue项目中,可以使用npm命令安装vtk.js库: ``` npm install vtk.js ``` 2. 加载DICOM数据 加载DICOM数据需要使用`vtk.js`提供的DICOM模块。可以使用以下代码加载DICOM数据: ```javascript import vtkDICOMImageReader from 'vtk.js/Sources/IO/Misc/DICOMImageReader'; const reader = vtkDICOMImageReader.newInstance(); reader.setUrl('path/to/dicom/folder'); reader.setFileNames(files); reader.onReady(() => { const imageData = reader.getOutputData(); // Use the imageData to create the vtkImageMapper and vtkActor }); reader.update(); ``` 3. 创建vtkImageMapper和vtkActor 使用vtk.js的vtkImageMapper和vtkActor来显示DICOM图像。可以参考以下代码: ```javascript import vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData'; import vtkImageMapper from 'vtk.js/Sources/Rendering/Core/ImageMapper'; import vtkActor from 'vtk.js/Sources/Rendering/Core/Actor'; // Create the vtkImageData from the DICOM imageData const imageData = vtkImageData.newInstance(reader.getOutputData()); const mapper = vtkImageMapper.newInstance(); mapper.setInputData(imageData); const actor = vtkActor.newInstance(); actor.setMapper(mapper); ``` 4. 创建vtkRenderer和vtkRenderWindow 使用vtk.js的vtkRenderer和vtkRenderWindow来创建一个渲染器和渲染窗口。可以参考以下代码: ```javascript import vtkRenderer from 'vtk.js/Sources/Rendering/Core/Renderer'; import vtkRenderWindow from 'vtk.js/Sources/Rendering/Core/RenderWindow'; // Create a vtkRenderer and set the background color to white const renderer = vtkRenderer.newInstance(); renderer.setBackground(1, 1, 1); // Create the vtkRenderWindow and add the renderer to it const renderWindow = vtkRenderWindow.newInstance(); renderWindow.addRenderer(renderer); // Set the size of the render window renderWindow.setSize(400, 400); ``` 5. 将vtkRenderWindow添加到Vue组件中 在Vue组件的`mounted()`方法中将vtkRenderWindow添加到DOM中。可以参考以下代码: ```javascript mounted() { // Add the vtkRenderWindow to the DOM const container = this.$refs.container; const el = renderWindow.getContainer(); container.appendChild(el); // Start rendering the scene renderWindow.render(); } ``` 完整的代码示例可以参考vtk.js的官方文档:https://kitware.github.io/vtk-js/docs/develop/guide/dicom.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值