海拔高度图*.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 }

 

posted @ 2016-12-30 13:57  凤凰_1  阅读(1516)  评论(0编辑  收藏  举报