zoukankan      html  css  js  c++  java
  • 海拔高度图*.dem文件的读取—vtkDEMReader

     vtkDEMReader reads digital elevation files and creates image data. Digital elevation files are produced by the US Geological Survey. A complete description of the DEM file is located at the USGS site. The reader reads the entire dem file and create a vtkImageData that contains a single scalar component that is the elevation in meters. The spacing is also expressed in meters. A number of get methods provide access to fields on the header.

      vtkDEMReader 用于读入数字海拔图像文件,并创建图像数据(image data)。数字海拔图形文件,是由US Geological Survey美国的创建。DEM文件的完整描述参见 USGS site。vtkDEMReader类读取完整的dem文件,并创建vtkImageData类对象,在该类对象中包含有一个简单的scalar标量值,该值是以米为单位的海拔高度。空间间隔或间距(spacing)也是以米为单位。在头文件中,有许多get方法可以访问这些参数。

     1 #ifndef INITIAL_OPENGL
     2 #define INITIAL_OPENGL
     3 #include <vtkAutoInit.h>
     4 VTK_MODULE_INIT(vtkRenderingOpenGL)
     5 VTK_MODULE_INIT(vtkInteractionStyle)
     6 #endif
     7 #include <iostream>
     8 using namespace std;
     9 #include "vtkSmartPointer.h"
    10 #include <vtkSmartPointer.h>
    11 #include <vtkImageActor.h>
    12 #include <vtkImageMapToColors.h>
    13 #include <vtkLookupTable.h>
    14 #include <vtkDEMReader.h>
    15 #include <vtkImageData.h>
    16 #include <vtkImageMapper3D.h>
    17 #include <vtkRenderWindow.h>
    18 #include <vtkRenderWindowInteractor.h>
    19 #include <vtkInteractorStyleImage.h>
    20 #include <vtkRenderer.h>
    21 
    22 int main()
    23 {
    24     // Read the file
    25       vtkSmartPointer<vtkDEMReader> reader = vtkSmartPointer<vtkDEMReader>::New();
    26       reader->SetFileName("D:/Qt/VTK6.3.0/vtkExampleModelFiles/SainteHelens.dem");
    27       reader->Update();
    28 
    29       vtkSmartPointer<vtkLookupTable> lut = vtkSmartPointer<vtkLookupTable>::New();
    30       lut->SetHueRange(0.6, 0);
    31       lut->SetSaturationRange(1.0, 0);
    32       lut->SetValueRange(0.5, 1.0);
    33       lut->SetTableRange(reader->GetOutput()->GetScalarRange());
    34       // Visualize
    35       vtkSmartPointer<vtkImageMapToColors> mapColors = vtkSmartPointer<vtkImageMapToColors>::New();
    36       mapColors->SetLookupTable(lut);
    37       mapColors->SetInputConnection(reader->GetOutputPort());
    38       // Create an actor
    39       vtkSmartPointer<vtkImageActor> actor =vtkSmartPointer<vtkImageActor>::New();
    40       actor->GetMapper()->SetInputConnection(mapColors->GetOutputPort());
    41       // Setup renderer
    42       vtkSmartPointer<vtkRenderer> renderer =vtkSmartPointer<vtkRenderer>::New();
    43       renderer->AddActor(actor);
    44       renderer->ResetCamera();
    45       // Setup render window
    46       vtkSmartPointer<vtkRenderWindow> renderWindow =vtkSmartPointer<vtkRenderWindow>::New();
    47       renderWindow->AddRenderer(renderer);
    48       // Setup render window interactor
    49       vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =vtkSmartPointer<vtkRenderWindowInteractor>::New();
    50       vtkSmartPointer<vtkInteractorStyleImage> style =vtkSmartPointer<vtkInteractorStyleImage>::New();
    51       renderWindowInteractor->SetInteractorStyle(style);
    52       // Render and start interaction
    53       renderWindowInteractor->SetRenderWindow(renderWindow);
    54       renderWindowInteractor->Initialize();
    55       renderWindowInteractor->Start();
    56     return 0;
    57 }
  • 相关阅读:
    前端与算法 leetcode 344. 反转字符串
    JavaScript闭包使用姿势指南
    前端与算法 leetcode 48. 旋转图像
    前端与算法 leetcode 36. 有效的数独
    前端与算法 leetcode 1. 两数之和
    前端与算法 leetcode 283. 移动零
    前端与编译原理 用js去运行js代码 js2run
    前端与算法 leetcode 66. 加一
    前端与算法 leetcode 350. 两个数组的交集 II
    前端与算法 leetcode 26. 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/phoenixdsg/p/6236663.html
Copyright © 2011-2022 走看看