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 }
  • 相关阅读:
    muduo 库解析之四:TimeZone
    muduo 库解析之三:Date
    muduo 库解析之九:Condition
    muduo 库解析之八:Mutex
    muduo 库解析之七:Atomic
    [linux]查看文件目录是否为硬链接
    [go] 解决:concurrent write to websocket connection
    [windows] 保存浏览器网页长截图
    [项目] 系统迁移的几个注意点
    [MySQL] order by field 自定义排序
  • 原文地址:https://www.cnblogs.com/phoenixdsg/p/6236663.html
Copyright © 2011-2022 走看看