首页 > 代码库 > vtk点云数据的显示[转]

vtk点云数据的显示[转]

#include "vtkActor.h"#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkProperty.h"#include "vtkInteractorStyleTrackballCamera.h"#include "vtkPoints.h"#include "vtkPolyVertex.h"#include "vtkUnstructuredGrid.h"#include "vtkDataSetMapper.h"int main(int argc, char* argv[]){    FILE *fp = NULL;    if (argc==1)    {        if ((fp=fopen("venus.asc","r"))== NULL)        {            printf("Error in open file mbr.asc\n");            return 1;        }    }    else    {        if ((fp=fopen(argv[1],"r"))== NULL)        {            printf("Error in open file %s\n", argv[1]);            return 1;        }    }    vtkRenderer *ren=vtkRenderer::New();    double arr[3];    vtkPoints * points = vtkPoints::New();    int n=0;    while(!feof(fp))//首先读取点云数据到点表points同时指定点对应的id:    {        int ret=fscanf(fp,"%lf %lf %lf",&arr[0],&arr[1],&arr[2]);        if(ret!=3)            break;             points->InsertPoint(n,arr[0],arr[1],arr[2]);        n++;    }    printf("%d\n", n);    fclose(fp);    vtkPolyVertex * polyvertex = vtkPolyVertex::New();    polyvertex->GetPointIds()->SetNumberOfIds(n);    int i=0;    for(i=0;i<n;i++)//建立拓扑关系    {        polyvertex->GetPointIds()->SetId(i,i);    }    vtkUnstructuredGrid * grid=vtkUnstructuredGrid::New();    grid->SetPoints(points);    grid->InsertNextCell(polyvertex->GetCellType(),            polyvertex->GetPointIds());    vtkDataSetMapper *map1 = vtkDataSetMapper::New();    map1->SetInput(grid);    vtkActor *actor1 = vtkActor::New();    actor1->SetMapper(map1);    actor1->GetProperty()->SetColor(0.194,0.562, 0.75);    ren->AddActor(actor1);    ren->SetBackground(1, 1, 1);    vtkRenderWindow* win=vtkRenderWindow::New();    win->AddRenderer(ren);    win->SetSize(400,400);    win->BordersOn();    //win->FullScreenOn();    //win->HideCursor();    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();    iren->SetRenderWindow(win);    vtkInteractorStyleTrackballCamera *style =        vtkInteractorStyleTrackballCamera::New();    iren->SetInteractorStyle(style);       iren->Start();    ren->Delete();    win->Delete();    iren->Delete();    return 0;}

 

编译命令为        gcc -o 可执行文件名 源文件名 -I 头文件目录 需要的库文件 -Wno-dprecated:                       gcc -o cloud cloud.cxx -I /usr/include/vtk-5.0 /usr/lib/libvtkRendering.so -Wno-deprecated                                      运行:        ./cloud venus.asc //数据文件

转为:http://www.cnblogs.com/lilun/archive/2013/06/10/3131240.html