码迷,mamicode.com
首页 > 其他好文 > 详细

vtk点云数据的显示[转]

时间:2014-06-28 13:53:13      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   get   文件   


#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

vtk点云数据的显示[转],布布扣,bubuko.com

vtk点云数据的显示[转]

标签:style   blog   http   color   get   文件   

原文地址:http://www.cnblogs.com/vranger/p/3798445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!