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 }