1. #ifndef INITIAL_OPENGL
  1. #define INITIAL_OPENGL
  1. #include <vtkAutoInit.h>
  1. VTK_MODULE_INIT(vtkRenderingOpenGL)
  1. VTK_MODULE_INIT(vtkInteractionStyle)
  1. #endif
  1.  
  1. #include <iostream>
  1. using namespace std;
  1. #include <vtkVersion.h>
  1. #include <vtkPolyData.h>
  1. #include <vtkProperty.h>
  1. #include <vtkMath.h>
  1. #include <vtkSmartPointer.h>
  1. #include <vtkPolyDataMapper.h>
  1. #include <vtkActor.h>
  1. #include <vtkRenderWindow.h>
  1. #include <vtkRenderer.h>
  1. #include <vtkRenderWindowInteractor.h>
  1. #include <vtkImageData.h>
  1. #include <vtkGreedyTerrainDecimation.h>
  1. #include <vtkInteractorStyleTrackballCamera.h>
  1. #include <vtkInteractionWidgetsModule.h>
  1.  
  1. void myShow(vtkGreedyTerrainDecimation* anInput)
  1. {
  1.  
  1. vtkSmartPointer<vtkPolyDataMapper> aMapper=vtkSmartPointer<vtkPolyDataMapper>::New();
  1. aMapper->SetInputConnection(anInput->GetOutputPort());
  1. aMapper->ScalarVisibilityOn();
  1.  
  1. vtkSmartPointer<vtkActor> anActor=vtkSmartPointer<vtkActor>::New();
  1. anActor->SetMapper(aMapper);
  1. anActor->GetProperty()->SetInterpolationToFlat();
  1. anActor->GetProperty()->EdgeVisibilityOn();
  1. anActor->GetProperty()->SetEdgeColor(1,0,0);
  1.  
  1. vtkSmartPointer<vtkRenderer> ren1=vtkSmartPointer<vtkRenderer>::New();
  1. vtkSmartPointer<vtkRenderWindow> renWin=vtkSmartPointer<vtkRenderWindow>::New();
  1. ren1->AddActor(anActor);
  1. ren1->ResetCamera();
  1. ren1->SetBackground(1,1,1);
  1. renWin->AddRenderer(ren1);
  1. renWin->SetSize(512,512);
  1.  
  1. vtkSmartPointer<vtkRenderWindowInteractor> iren=vtkSmartPointer<vtkRenderWindowInteractor>::New();
  1. vtkSmartPointer<vtkInteractorStyleTrackballCamera> style=vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
  1. iren->SetRenderWindow(renWin);
  1. iren->SetInteractorStyle(style);
  1. iren->Start();
  1. }
  1. int main()
  1. {
  1. vtkSmartPointer<vtkImageData> image=vtkSmartPointer<vtkImageData>::New();
  1. image->SetDimensions(20,20,1);//头两个参数分别是沿x、y方向的取样点数,第三个参数是z方向的取样点数
  1. image->AllocateScalars(VTK_UNSIGNED_CHAR,1);
  1. int dims[3];
  1. image->GetDimensions(dims);
  1. for(double i=0;i<dims[0];i++)
  1. {
  1. for(double j=0;j<dims[1];j++)
  1. {
  1. unsigned char* pixel=static_cast<unsigned char*>(image->GetScalarPointer(i,j,0));
  1. pixel[0]=vtkMath::Round(vtkMath::Random(0,5));//在(i,j)位置上的“高”
  1. }
  1. }
  1. vtkSmartPointer<vtkGreedyTerrainDecimation>decimation=vtkSmartPointer<vtkGreedyTerrainDecimation>::New();
  1. decimation->SetInputData(image);
  1. decimation->Update();
  1. //可视化
  1. myShow(decimation);
  1. return 0;
  1. }
  1.  
  1.  

VTK初学一,a Mesh from vtkImageData的更多相关文章

  1. VTK初学一,a Mesh from vtkImageData—球冠

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

  2. VTK初学一,比较常见的错误2

    我的开发环境: 系统:win8.1 QT:5.4.2MinGW版 VTK:6.3 按照教程生成一个球体显示在,Qt的QVTKWidget控件中,出现如下ERROR: ERROR: In D:\VTK6 ...

  3. VTK初学一,c_Line_CellArray线段的CellArray绘制

    VTK窗口默认坐标方向: #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE ...

  4. VTK初学一,a_Vertex图形点的绘制

    系统:Win8.1 QT版本:2.4.2,Mingw VTK版本:6.3 2. main.cpp #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #incl ...

  5. VTK初学一,动画加AVI录制终于做出来了

      #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRe ...

  6. VTK初学一,vtkDelaunay2D创建球冠曲面

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

  7. VTK初学一,比较常见的错误1

      错误原因: 通常是在文件头部没有初始化 #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> V ...

  8. VTK初学一,Pro文件的配置

    1. pro文件的配置 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG += qt QT += core gui greate ...

  9. VTK初学一,b_PolyVertex_CellArray多个点的绘制

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

随机推荐

  1. C#皮肤制作

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  2. Guava 学习计划

    Guava这个框架,我想参加过工作了Java程序员都应该不会陌生,这个框架甚至比Apache Commons Lang3框架更受Java程序员的喜欢.但是遗憾的是怎么优秀和成熟的框架,在国内我居然没有 ...

  3. HD1160FatMouse's Speed(最长单调递增子序列)

    FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. 添加css的方式:link与@import区别

    如何在html中添加css? 在html中设置css共有三种方式,分别是: 行内式 内嵌式 导入式-link 导入式-@import 1.行内式.即在html标签中的style属性中设置css,值得注 ...

  5. js023-离线应用与客户端存储

    js023-离线应用与客户端存储 本章内容: 进行离线检测 使用离线缓存 在浏览器中保存数据 23.1 离线检测 第一步:知道设备是在线还是离线:navigator.Online属性.该值为true表 ...

  6. MVC过滤器之 OnActionExcuted

    Controller里 [SendMessage] public Action SendSmsMessage() { var resultExtendInfo=new ResultExtendInfo ...

  7. CodeForces 701C They Are Everywhere (滑动窗口)

    题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度. 利用“滑动窗口”解题 解题思路: 1. 遍历 ...

  8. Centos6.5安装和使用docker

    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install docke ...

  9. Python + OpenCV2 系列:1 - 配置

    Python+OpenCV2+Eclipse+Windos 8.1(32bits): 最初的目的是做图像处理,opencv强大的社区支持,让我想从matlab转到opencv框架下进行试验,而Pyth ...

  10. 新创建一个git远程仓库

    1.git 服务器项目初始化已经完毕,请把相关的资料和源码上传到git服务器. 2.第一次需要clone,执行命令:git clone git@192.168.10.184:listenbox_mc_ ...