在vs中配置好vtk之后,新建项目,然后加入如下代码。

#include "stdafx.h"
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkInteractionStyle);
#include "vtkVolume16Reader.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkMarchingCubes.h"
#include "vtkStripper.h"
#include "vtkActor.h"
#include "vtkPolyDataMapper.h"
#include "vtkProperty.h"
#include "vtkCamera.h"
//#include "vtkBoxWidget.h"
#include "vtkPolyData.h"
#include <iostream>
#include "vtkContourFilter.h"
#include "vtkPolyDataWriter.h"
#include "vtkSTLWriter.h"
#include "vtkDICOMImageReader.h"
#include "vtkOBJExporter.h"
int main()
{//读取二维切片数据序列vtkSmartPointer<vtkDICOMImageReader> reader;reader = vtkSmartPointer<vtkDICOMImageReader>::New();//读取Dicom图片reader->SetDataByteOrderToLittleEndian();reader->SetDirectoryName("D:\\document\\measurement\\DICOM");reader->Update();//抽取等值面为骨头的信息vtkMarchingCubes *boneExtractor = vtkMarchingCubes::New();boneExtractor->SetInputConnection(reader->GetOutputPort());boneExtractor->SetValue(0, 500); //设置提取的等值信息//剔除旧的或废除的数据单元,提高绘制速度vtkStripper *boneStripper = vtkStripper::New(); //三角带连接                                     boneStripper->SetInputConnection(boneExtractor->GetOutputPort());//建立映射vtkPolyDataMapper *boneMapper = vtkPolyDataMapper::New();boneMapper->SetInputConnection(boneStripper->GetOutputPort());//建立角色vtkActor *bone = vtkActor::New();bone->SetMapper(boneMapper);bone->GetProperty()->SetDiffuseColor(.1, .94, .52);bone->GetProperty()->SetSpecular(.3);bone->GetProperty()->SetSpecularPower(20);//定义绘制器vtkRenderer *aRenderer = vtkRenderer::New();//定义绘制窗口vtkRenderWindow *renWin = vtkRenderWindow::New();renWin->AddRenderer(aRenderer);//定义窗口交互器vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();iren->SetRenderWindow(renWin);//创建一个cameravtkCamera *aCamera = vtkCamera::New();aCamera->SetViewUp(0, 0, -1);aCamera->SetPosition(0, 1, 0);aCamera->SetFocalPoint(0, 0, 0);aRenderer->AddActor(bone);aRenderer->SetActiveCamera(aCamera);aRenderer->ResetCamera();aCamera->Dolly(1.5);aRenderer->SetBackground(0, 0, 0);aRenderer->ResetCameraClippingRange();//保存VTK文件//vtkSmartPointer<vtkPolyDataWriter> vtkWriter = vtkSmartPointer<vtkPolyDataWriter>::New();//vtkWriter->SetInputData(boneExtractor->GetOutput());//vtkWriter->SetFileName("test.vtk");//vtkWriter->Write();/*以下测试保存为obj格式的文件*/vtkSmartPointer<vtkOBJExporter> porter = vtkSmartPointer<vtkOBJExporter>::New();porter->SetFilePrefix("D:\\download\\PolyDataWriter");porter->SetInput(renWin);porter->Write();iren->Initialize();iren->Start();reader->Delete();iren->Delete();return 0;}


VTK读取dicom序列,并保存成vtk和obj格式的3D格式文件相关推荐

  1. DCMTK、ITK、VTK读取dicom信息

    DCMTK.ITK.VTK读取dicom影像数据的方法 直接上代码,调用不同的医学影像库读取dicom影像信息 1. DCMTK读取影像中的pixelData //参数 list:为输入的图像文件名列 ...

  2. python读取dicom序列_python读取dicom图像(SimpleITK和dicom包实现)

    1. 用SimpleITK读取dicom序列: import SimpleITK as sitk import numpy as np img_path='F:\\dataset\\pancreas\ ...

  3. ITK安装与读取DICOM序列

    一:ITK功能 ITK 与 OpenCV 主打功能相似,都是面向于图像处理,但是两者在领域应用方面有一定的差别:ITK主要用于医学图像的分割与配准(有c++与python版本).OPENCV是计算机视 ...

  4. (超详细)读取mnist数据集并保存成图片

    mnist数据集介绍.读取.保存成图片 1.mnist数据集介绍: MNIST数据集是一个手写体数据集,简单说就是一堆这样东西  MNIST的官网地址是 MNIST; 通过阅读官网我们可以知道,这个数 ...

  5. threejs 导出obj_Three.js保存导出.ply、.obj、.GLTF等格式三维模型

    Three.js保存导出.ply..obj..GLTF等格式三维模型 无论Three.js加载的任意格式三维模型,还是通过Threejs的API创建的一个三维模型,都可以导出为一个文件保存三维场景的数 ...

  6. itk和c++读取dicom序列

    前言 使用c++版的itk读取存储在文件夹中的dicom序列 工具:visual studio 2022 community 代码 CommonF.h #pragma once #include< ...

  7. python读取ply格式的3D模型文件

    在研究生的一些项目中,会用python语言读取3D模型,3D模型通常有很多种类,但我的研究领域,通常用到ply格式的文件,因此,我今天晚上写一个博客来实现用python读取3D模型. 我的项目是位姿估 ...

  8. python读取dicom序列_用原生Python解析DICOM文件

    如果你想了解DICOM格式,Oleg Pianykh的<医学数字成像与通信(DICOM):实用介绍与生存指南>(DICOM:A Practical Introduction and Sur ...

  9. Python-opencv读取视频流处理后保存成mp4格式的视频源码

    源码 import cv2 def main():cap1 = cv2.VideoCapture("1.mp4") # 打开摄像头fourcc1 = cv2.VideoWriter ...

最新文章

  1. eclipse 的习惯配置
  2. mysql高并发下主键冲突
  3. xp python35.dll_python35.dll
  4. 微软开源新字体Cascadia Code,源于Windows Terminal
  5. java独步寻花,小班语言《江畔独步寻花》
  6. python爬取苏州天气并用excel来保存
  7. 爬虫第四章 单线程+多任务异步协程
  8. python爬网页html乱码问题
  9. 人群密度估计最新数据集NWPU-Crowd 最新研究进展
  10. 为啥Java程序员工资高,却很多人想转行,这4点原很现实
  11. PS怎么做出旧电视图像故障视觉特效
  12. GEO数据库学习二(ID转换)
  13. 根据出生日期获取农历信息
  14. Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
  15. 写论文第一步——查文献的方法
  16. burpsuite代理监听
  17. java 调用飞信发短信(转)
  18. 基于Highcharts箱线图实现k线图
  19. SpringBoot实现企业微信上传图片
  20. python编程基础张勇答案_2020智慧职教云课堂Python编程基础答案完整满分课后作业答案...

热门文章

  1. Centos7.9安装宝塔
  2. 关于微服务下的负载均衡
  3. 当代大学生常见痛点调研
  4. 网站图标如何设置详细过程
  5. “京东云合伙人”围堵京东:本想年入百万,结果被割了韭菜
  6. AlertDialog
  7. \ \t 什么意思 ?
  8. 第3章 感受(一)——3.1. Hello world 经典版
  9. [附源码]计算机毕业设计JAVAjsp网上蛋糕订购系统
  10. HCIE-RS-14139