vtk体绘制-例子
来源:互联网 发布:rtx mac 2009 编辑:程序博客网 时间:2024/05/19 02:27
#include <Windows.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkPolyDataMapper.h>
#include <vtkMarchingCubes.h>
#include <vtkVolume16Reader.h>
#include <vtkActor.h>
#include <vtkPolyDataMapper.h>
#include <vtkPolyData.h>
#include <vtkProperty.h>
#include <vtkTriangleFilter.h>
#include <vtkSmoothPolyDataFilter.h>
#include <vtkDecimatePro.h>
#include <vtkSTLWriter.h>
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//读取raw图片
vtkVolume16Reader *reader = vtkVolume16Reader::New();
reader->SetDataDimensions(64, 64);
reader->SetDataByteOrderToLittleEndian();
reader->SetFilePrefix("D://headsq/quarter");
reader->SetImageRange(1, 93);
reader->SetDataSpacing(3.2, 3.2, 1.5);
vtkMarchingCubes *boneExtractor = vtkMarchingCubes::New();
boneExtractor->SetInput((vtkDataObject*)reader->GetOutput());
boneExtractor->SetValue(0, 500);
//将原始拓扑结果全部转化为三角面片结构
vtkTriangleFilter *triangleFilter = vtkTriangleFilter::New();
//设置输入
triangleFilter->SetInput(boneExtractor->GetOutput());
//做简化
vtkDecimatePro *deciFilter = vtkDecimatePro::New();
//设置输入
deciFilter->SetInputConnection(triangleFilter->GetOutputPort());
//简化为原来的10%
deciFilter->SetTargetReduction(0.1);
//保持原始网格拓扑结构
deciFilter->PreserveTopologyOn();
//做平滑
vtkSmoothPolyDataFilter *smoothFilter = vtkSmoothPolyDataFilter::New();
//设置输入
smoothFilter->SetInputConnection(deciFilter->GetOutputPort());
//设置平滑的次数
smoothFilter->SetNumberOfIterations(800);
//开启尖锐特征平滑
smoothFilter->FeatureEdgeSmoothingOn();
vtkPolyDataMapper *boneMapper = vtkPolyDataMapper::New();
//boneMapper->SetInput(triangleFilter->GetOutput());
//boneMapper->SetInput(deciFilter->GetOutput());
boneMapper->SetInput(smoothFilter->GetOutput());
vtkSTLWriter *face = vtkSTLWriter::New();
face->SetInputConnection(smoothFilter->GetOutputPort());
face->SetFileName("d://face.stl");
face->Update();
face->Write();
vtkActor *bone = vtkActor::New();
bone->SetMapper(boneMapper);
bone->GetProperty()->SetDiffuseColor(0.1, 0.94, 0.52);
bone->GetProperty()->SetSpecular(0.3);
bone->GetProperty()->SetSpecularPower(20);
vtkRenderer *ren = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
ren->AddActor(bone);
ren->Render();
iren->Initialize();
iren->Start();
boneExtractor->Delete();
triangleFilter->Delete();
deciFilter->Delete();
smoothFilter->Delete();
face->Delete();
boneMapper->Delete();
bone->Delete();
ren->Delete();
renWin->Delete();
reader->Delete();
iren->Delete();
return 0;
}
- vtk体绘制-例子
- vtk读取raw数据的一个例子(体绘制)
- VTK GPU体绘制
- vtk 体绘制小结
- 体绘制函数 vtk
- VTK之体绘制
- vtk体绘制
- vtk 体绘制
- VTK体绘制
- VTK:读入DICOM,体绘制
- VTK中的体绘制方法
- 【VTK】三维体绘制方法
- VTK中体绘制方法
- vtk体绘制交互问题的解决方案
- 基于VTK的体绘制系统实现
- vtk中体绘制源码分析
- VTK:读取raw图片格式进行体绘制
- VTK 三维重建 面绘制
- 博客计划
- 关于BAPI
- 《sql 语言艺术》 概要
- spec文件
- linux块设备分析与使用(转的)
- vtk体绘制-例子
- 描述一个正确的IP地址
- 常见内存泄露及解决方案(转)
- 在windows server 2008上,.net 应用程序调用c++ dll时会发生崩溃
- ASP.NET 调用存储过程访问数据库
- ORACLE外连接小结~
- 坚定要贡献下去
- 性的短暂而致真情永失
- mtk